Division by zero

Hello,

I'm using Cospend 0.0.9 on Nextcloud 15.0.2.

It was working smoothly, but after I changed the weight of a member to 0 - the member with the name Z - everything broke apart.

Now, when I open Cospend I get the error message Failed to get projects with the following log in Nextcloud:

{"reqId":"45wtpviXAoZQnkEMFtFF","level":3,"time":"2019-04-07T14:20:52+00:00","remoteAddr":"172.31.0.2","user":"moath","app":"PHP","method":"POST","url":"\/apps\/cospend\/getProjects","message":"Division by zero at \/var\/www\/html\/custom_apps\/cospend\/controller\/pagecontroller.php#1594","userAgent":"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/73.0.3683.86 Safari\/537.36","version":"15.0.2.0"}
{"reqId":"45wtpviXAoZQnkEMFtFF","level":3,"time":"2019-04-07T14:20:52+00:00","remoteAddr":"172.31.0.2","user":"moath","app":"index","method":"POST","url":"\/apps\/cospend\/getProjects","message":{"Exception":"Exception","Message":"Could not json_encode due to invalid non UTF-8 characters in the array: array (\n  0 => \n  array (\n    'name' => 'My project name',\n    'contact_email' => 'moath.m.zaghdad@gmail.com',\n    'id' => 'myProjectId',\n    'active_members' => \n    array (\n      0 => \n      array (\n        'activated' => true,\n        'name' => 'Amer',\n        'id' => 3,\n        'weight' => 1.0,\n      ),\n      1 => \n      array (\n        'activated' => true,\n        'name' => 'Mo\\'ath',\n        'id' => 2,\n        'weight' => 1.0,\n      ),\n      2 => \n      array (\n        'activated' => true,\n        'name' => 'Z',\n        'id' => 4,\n        'weight' => 0.0,\n      ),\n    ),\n    'members' => \n    array (\n      0 => \n      array (\n        'activated' => true,\n        'name' => 'Amer',\n        'id' => 3,\n        'weight' => 1.0,\n      ),\n      1 => \n      array (\n        'activated' => true,\n        'name' => 'Mo\\'ath',\n        'id' => 2,\n        'weight' => 1.0,\n      ),\n      2 => \n      array (\n        'activated' => true,\n        'name' => 'Z',\n        'id' => 4,\n        'weight' => 0.0,\n      ),\n    ),\n    'balance' => \n    array (\n      3 => -20.0,\n      2 => 75.0,\n      4 => NAN,\n    ),\n    'shares' => \n    array (\n    ),\n    'group_shares' => \n    array (\n    ),\n  ),\n  1 => \n  array (\n    'name' => 'My project name',\n    'contact_email' => 'moath.m.zaghdad@gmail.com',\n    'id' => 'pro',\n    'active_members' => \n    array (\n      0 => \n      array (\n        'activated' => true,\n        'name' => 'One',\n        'id' => 5,\n        'weight' => 1.0,\n      ),\n      1 => \n      array (\n        'activated' => true,\n        'name' => 'Two',\n        'id' => 6,\n        'weight' => 0.0,\n      ),\n    ),\n    'members' => \n    array (\n      0 => \n      array (\n        'activated' => true,\n        'name' => 'One',\n        'id' => 5,\n        'weight' => 1.0,\n      ),\n      1 => \n      array (\n        'activated' => true,\n        'name' => 'Two',\n        'id' => 6,\n        'weight' => 0.0,\n      ),\n    ),\n    'balance' => \n    array (\n      5 => 0.0,\n      6 => 0.0,\n    ),\n    'shares' => \n    array (\n    ),\n    'group_shares' => \n    array (\n    ),\n  ),\n  2 => \n  array (\n    'name' => 'My project name',\n    'contact_email' => 'moath.m.zaghdad@gmail.com',\n    'id' => 'H',\n    'active_members' => \n    array (\n    ),\n    'members' => \n    array (\n    ),\n    'balance' => \n    array (\n    ),\n    'shares' => \n    array (\n    ),\n    'group_shares' => \n    array (\n    ),\n  ),\n  3 => \n  array (\n    'name' => 'someproject',\n    'contact_email' => 'moath.m.zaghdad@gmail.com',\n    'id' => 'xyz',\n    'active_members' => \n    array (\n      0 => \n      array (\n        'activated' => true,\n        'name' => 'Amer',\n        'id' => 8,\n        'weight' => 1.0,\n      ),\n      1 => \n      array (\n        'activated' => true,\n        'name' => 'Moath',\n        'id' => 7,\n        'weight' => 1.0,\n      ),\n    ),\n    'members' => \n    array (\n      0 => \n      array (\n        'activated' => true,\n        'name' => 'Amer',\n        'id' => 8,\n        'weight' => 1.0,\n      ),\n      1 => \n      array (\n        'activated' => true,\n        'name' => 'Moath',\n        'id' => 7,\n        'weight' => 1.0,\n      ),\n    ),\n    'balance' => \n    array (\n      8 => -20.0,\n      7 => 20.0,\n    ),\n    'shares' => \n    array (\n    ),\n    'group_shares' => \n    array (\n    ),\n  ),\n)","Code":0,"Trace":[{"file":"\/var\/www\/html\/lib\/private\/AppFramework\/Http\/Dispatcher.php","line":119,"function":"render","class":"OCP\\AppFramework\\Http\\JSONResponse","type":"->","args":[]},{"file":"\/var\/www\/html\/lib\/private\/AppFramework\/App.php","line":118,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Cospend\\Controller\\PageController"},"webGetProjects"]},{"file":"\/var\/www\/html\/lib\/private\/AppFramework\/Routing\/RouteActionHandler.php","line":47,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["PageController","webGetProjects",{"__class__":"OC\\AppFramework\\DependencyInjection\\DIContainer"},{"_route":"cospend.page.webGetProjects"}]},{"function":"__invoke","class":"OC\\AppFramework\\Routing\\RouteActionHandler","type":"->","args":[{"_route":"cospend.page.webGetProjects"}]},{"file":"\/var\/www\/html\/lib\/private\/Route\/Router.php","line":297,"function":"call_user_func","args":[{"__class__":"OC\\AppFramework\\Routing\\RouteActionHandler"},{"_route":"cospend.page.webGetProjects"}]},{"file":"\/var\/www\/html\/lib\/base.php","line":987,"function":"match","class":"OC\\Route\\Router","type":"->","args":["\/apps\/cospend\/getProjects"]},{"file":"\/var\/www\/html\/index.php","line":42,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"\/var\/www\/html\/lib\/public\/AppFramework\/Http\/JSONResponse.php","Line":71,"CustomMessage":"--"},"userAgent":"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/73.0.3683.86 Safari\/537.36","version":"15.0.2.0"}

I tried removing Cospend and reinstalling it but it didn't work.

Though the logs show that the error is on this line I think it's because it accepted a zero-weight on the first place.

I can create new projects and add members and bills, but when I refresh the page everything disappears and I got the same message Failed to get projects.