function get_group_balance_list($groupdetails) { $memberlist = get_groupmembers($groupdetails['group_id']); $groupmemberids = get_groupmember_ids($memberlist); $user_expenses = get_user_expenses($groupmemberids); $user_paid_expenses = get_user_paid_expenses($groupmemberids); $size = count($memberlist); for ($i = 0; $i < $size; $i++) { if (!empty($memberlist[$i]['username'])) { $uname = " (" . $memberlist[$i]['username'] . ")"; } else { $uname = ""; } $uexpense = $user_expenses['users'][$memberlist[$i]['user_id']]['groups'][$groupdetails['group_id']]['group_total']; $upaid = $user_paid_expenses['users'][$memberlist[$i]['user_id']]['groups'][$groupdetails['group_id']]['group_total']; $listarray[$memberlist[$i]['user_id']]['link'] = "http://" . $_SERVER['HTTP_HOST'] . DIR . "profile.php?uid=" . $memberlist[$i]['user_id']; //$listarray[$i]['name'] = $memberlist[$i]['realname'] . $uname; //$listarray[$memberlist[$i]['user_id']]['name'] = format_name($user,$memberlist[$i]['username'],$memberlist[$i]['realname']); $listarray[$memberlist[$i]['user_id']]['balance'] = number_format($upaid - $uexpense, DECIMALS, DSEP, TSEP); $listarray[$memberlist[$i]['user_id']]['unformatted_balance'] = $upaid - $uexpense; $listarray[$memberlist[$i]['user_id']]['user_id'] = $memberlist[$i]['user_id']; } return $listarray; }
$paid['users'][$row['userid']]['groups'][$row['group_id']][$row['exid']]['running_total'] += $row['amount'] + $last_running[$row['userid']][$row['group_id']]; $last_running[$row['userid']][$row['group_id']] = $paid['users'][$row['userid']]['groups'][$row['group_id']][$row['exid']]['running_total']; } $paid['total'] = number_format($total, DECIMALS, DSEP, TSEP); } // array structure: ['users'][$userid]['groups'][$groupid][$expenseid]['amount|expense_date|description'] return $paid; } $a = 1; //$dump = new array_dump(); $a = 1; $groupexp = get_groupexpenses($groupid); // reverse array so earliest expense first $groupexp = array_reverse($groupexp); $memberlist = get_groupmembers($groupid); $groupmemberids = get_groupmember_ids($memberlist); $user_expenses = get_user_expenses_test($groupmemberids); $user_paid_expenses = get_user_paid_expenses_test($groupmemberids); $size = count($memberlist); $expcount = count($groupexp); foreach ($groupexp as $key => $value) { foreach ($groupmemberids as $keyy => $memberid) { if ($balance_array[$lastkey]['balance_member'][$memberid]) { // previous key exists for this member, use that balance $balance = $balance_array[$lastkey]['balance_member'][$memberid]; } else { // no key for this member, balance = 0; $balance = 0; } // get last key balance, substract current expense and add paid $balance_array[$key]['balance_member'][$memberid] = round($balance - $user_expenses['users'][$memberid]['groups'][$groupid][$value['expense_id']]['per_person'] + $user_paid_expenses['users'][$memberid]['groups'][$groupid][$value['expense_id']]['amount'], 2);
function get_graph_balance_array($groupid, $memberlist) { $groupexp = get_groupexpenses($groupid, false, false, false, true); // reverse array so earliest expense first $groupexp = array_reverse($groupexp); $groupmemberids = get_groupmember_ids($memberlist); $user_expenses = get_user_expenses_test($groupmemberids); $user_paid_expenses = get_user_paid_expenses_test($groupmemberids); $size = count($memberlist); $expcount = count($groupexp); $balance_array = array(); foreach ($groupexp as $key => $value) { $a = 1; foreach ($groupmemberids as $keyy => $memberid) { if (isset($lastkey) && $balance_array[$lastkey]['balance_member'][$memberid]) { // previous key exists for this member, use that balance $balance = $balance_array[$lastkey]['balance_member'][$memberid]; } else { // no key for this member, balance = 0; $balance = 0; } // get last key balance, substract current expense and add paid $_curexp = isset($user_expenses['users'][$memberid]['groups'][$groupid][$value['expense_id']]['per_person']) ? $user_expenses['users'][$memberid]['groups'][$groupid][$value['expense_id']]['per_person'] : 0; $_curpay = isset($user_paid_expenses['users'][$memberid]['groups'][$groupid][$value['expense_id']]['amount']) ? $user_paid_expenses['users'][$memberid]['groups'][$groupid][$value['expense_id']]['amount'] : 0; $balance_array[$key]['balance_member'][$memberid] = round($balance - $_curexp + $_curpay, 2); $balance_array[$key]['expense_id'] = $value['expense_id']; $balance_array[$key]['date_time'] = $value['date']; $balance_array[$key]['date'] = substr($value['date'], 0, 10); $balance_array[$key]['isodate'] = dutchDate2iso($balance_array[$key]['date']); // if ($memberid == 3) { // //echo "Key: $key, expense_id: " . $value['expense_id'] . "Balance: " . $balance_array[$key]['balance_member'][$memberid] . " ==> $balance - " . // $user_expenses['users'][$memberid]['groups'][$groupid][$value['expense_id']]['per_person'] . " + " . $user_paid_expenses['users'][$memberid]['groups'][$groupid][$value['expense_id']]['amount'] . "<br>"; // } } $lastkey = $key; } return $balance_array; }