Exemplo n.º 1
0
    <?php 
// AGGREGATE DEBTS
// Initialize debt array of all other users, setting value to 0
$other_users = User::getAllOthers($user_id);
$debt_aggs = array();
foreach ($other_users as $other) {
    $debt_aggs[$other] = 0;
}
// Add in other's debt to current user
$db_debt_arr = $debtObj->getOwedTo($user_id);
foreach ($db_debt_arr as $db_debt_id) {
    $debtObj->setId($db_debt_id);
    $debtObj->load();
    $debt_ower = $debtObj->getOwed_by();
    $debt_aggs[$debt_ower] += $debtObj->getAmount();
}
// Subtract debts the current user owes others
$db_owed_arr = $debtObj->getOwedBy($user_id);
foreach ($db_owed_arr as $owed_id) {
    $debtObj->setId($owed_id);
    $debtObj->load();
    $debt_owee = $debtObj->getOwed_to();
    $debt_aggs[$debt_owee] -= $debtObj->getAmount();
}
// Split aggregated array into 'owed by' and 'owed to' arrays
$debt_arr = $owed_arr = array();
foreach ($debt_aggs as $user => $amount) {
    if ($amount > 0) {
        $debt_arr[$user] = $amount;
    } else {