function __construct($groupid) { $this->groupid = $groupid; $this->memberlist = get_groupmembers($this->groupid); $this->balanceArr = $this->get_graph_balance_array(); $this->membersById(); $this->memberExpenseCount(); $this->createPositionsArray(); $this->getAchievementList(); $this->updateAchievements(); $this->updateEventAchievements(); $this->save(); }
$paid['users'][$row['userid']]['total'] = number_format($paid['users'][$row['userid']]['total'], DECIMALS, DSEP, TSEP); $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
function print_expenselist_excel($array, $groupid) { // http://www.appservnetwork.com/modules.php?name=News&file=article&sid=8 $members = get_groupmembers($groupid); $mcount = count($members); // construct array to hold all expense id's per member for ($j = 0; $j < $mcount; $j++) { $expids[$members[$j]['user_id']] = get_user_expenses_idonly($members[$j]['user_id']); } // Send Header header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Disposition: attachment;filename=test.xls "); header("Content-Transfer-Encoding: binary "); // XLS Data Cell $result = mysql_db_query($dbname, "select id,prename,name,sname,grade from appdata where course='{$courseid}' and sec='{$section}'"); xlsBOF(); xlsWriteLabel(0, 0, "ID"); xlsWriteLabel(0, 1, "Date"); xlsWriteLabel(0, 2, "Type"); xlsWriteLabel(0, 3, "Description"); xlsWriteLabel(0, 4, "Amount"); xlsWriteLabel(0, 5, "Paid by"); for ($j = 0; $j < $mcount; $j++) { if (!empty($members[$j]['username'])) { $uname = " (" . $members[$j]['username'] . ")"; } else { $uname = ""; } xlsWriteLabel(0, 6 + $j, $members[$j]['realname'] . $uname); } $xlsRow = 1; $count = count($array); for ($i = 0; $i < $count; $i++) { if (!empty($array[$i]['username'])) { $uname = " (" . $array[$i]['username'] . ")"; } else { $uname = ""; } xlsWriteNumber($xlsRow, 0, $array[$i]['expense_id']); xlsWriteLabel($xlsRow, 1, $array[$i]['date']); xlsWriteLabel($xlsRow, 2, $array[$i]['type_name']); xlsWriteLabel($xlsRow, 3, $array[$i]['description']); xlsWriteNumber($xlsRow, 4, $array[$i]['amount']); xlsWriteLabel($xlsRow, 5, $array[$i]['realname'] . $uname); $x = 0; for ($j = 0; $j < $mcount; $j++) { // check number of participants for the expense if (in_array($array[$i]['expense_id'], $expids[$members[$j]['user_id']])) { $x += 1; } } for ($j = 0; $j < $mcount; $j++) { // write expense/person for each member if (in_array($array[$i]['expense_id'], $expids[$members[$j]['user_id']])) { xlsWriteNumber($xlsRow, 6 + $j, number_format($array[$i]['amount'] / $x, DECIMALS, DSEP, TSEP)); } else { xlsWriteLabel($xlsRow, 6 + $j, ""); } } $xlsRow++; } xlsEOF(); exit; }
// $name = "Group Deposit"; // print_topbutton_html ($name, $url); // } } // Upcoming event /* $event[$row['event_id']]['event_id'] = $row['event_id']; $event[$row['event_id']]['event_name'] = $row['event_name']; $event[$row['event_id']]['description'] = $row['event_description']; $event[$row['event_id']]['organizer'] = $row['organizer_id']; $event[$row['event_id']]['date'] = date("j M Y", $row['date']); $event[$row['event_id']]['expense_type'] = $row['expense_type_id']; */ $events = get_upcoming_events($groupdetails['group_id']); if ($events) { print_upcoming_events_html($events, $groupdetails['group_id']); } $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[$i]['link'] = "http://" . $_SERVER['HTTP_HOST'] . DIR . "profile.php?uid=" . $memberlist[$i]['user_id']; //$listarray[$i]['name'] = $memberlist[$i]['realname'] . $uname; $listarray[$i]['name'] = format_name($user, $memberlist[$i]['username'], $memberlist[$i]['realname']);
fatal_error("No expense specified"); } // Get group for expense $groupid = get_groupid_by_expenseid($expid); // get permisssions for group $permissions = group_permissions($groupid, $user->data['user_id']); if (!$permissions || !array_key_exists(5, $permissions)) { fatal_error("No permissions for this expense"); } // get message if (isset($_GET['msg'])) { $message = get_msg($_GET['msg']); } $details = get_expensedetails($expid, $user->data['user_id']); $expense_types = get_expense_types(); $members = get_groupmembers($groupid); $members_size = count($members); foreach ($details['members'] as $key => $value) { $emembers[] = $key; } switch ($mode) { case "show": $show = true; break; case "edit": if (array_key_exists(4, $permissions) || $details['ownerid'] == $user->data['user_id']) { $showmembers = true; $edit = true; } else { fatal_error("No permission to edit this expense"); }