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();
 }
Exemplo n.º 2
0
            $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
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
0
     //      $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']);
Exemplo n.º 5
0
    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");
        }