0) {
$query = "SELECT * FROM user_account " .
"WHERE school_num = $school_num " .
"AND user_num = $original_user_num " .
"AND transaction_status = 'Open' " .
"AND transaction_amount > 0 " .
"AND abs(amount_paid) < transaction_amount";
$trx = db_query($query);
$trx_history = "";
while ($row = db_fetch_assoc($trx)) {
extract($row);
$sname = "";
if ($schedule_num > 0) {
$sname = "(" . db_getVal("SELECT schedule_name FROM hotlunch_schedules WHERE school_num = $school_num AND record_num = $schedule_num") . ") ";
}
$transaction_amount = '$' . number_format($transaction_amount,2);
$trx_history .= "$transaction_type: $transaction_amount - $sname$note\n";
}
}
$query = $ubs->BuildInsert();
writeLog($query);
writeLog("---------------------------");
db_query($query);
$count++;
}
}
$form_message = getLanguageText('MSG-USER-BALANCES-SAVED');
$naction = 'list';
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
exit();
case "delete":
$dTitle = getLanguageText('TEXT-ALL-RECORDS');
include "delete.form.php";
break;
case "delete-confirmed":
db_query("DELETE FROM $CurrentTable WHERE school_num = $school_num");
$form_message = getLanguageText('MSG-USER-BALANCES-DELETED');
$naction = 'list';
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
exit();
}
$cMonth = date("m",time());
switch ($cMonth) {
case '04':
case '05':
$days = 0;
break;
case '06':
case '07':
case '08':
case '09':
case '10':
$days = 150;
break;
case '11':
case '12':
$days = 210;
break;
case '01':
$days = 250;
break;
case '02':
$days = 270;
break;
case '03':
$days = 300;
break;
}
$cutoff = date("Y-m-d",time() - 60 * 60 * 24 * 5);
$numSaved = db_getVal("SELECT count(*) FROM user_balance_save WHERE school_num = $school_num");
$numPosted = db_getVal("SELECT count(*) FROM user_balance_save WHERE school_num = $school_num AND posted = 'Y'");
if ($numSaved > 0) $saved_date = db_getVal("SELECT max(saved_date) FROM user_balance_save WHERE school_num = $school_num");
if (isset($saved_date)) {
$numParents = db_getVal("SELECT count(*) FROM users WHERE school_num = $base_school_num AND type = 'Parent' AND date_added < '$saved_date'");
}
else {
$numParents = db_getVal("SELECT count(*) FROM users WHERE school_num = $base_school_num AND type = 'Parent' AND date_added < '$cutoff'");
$numParents = db_getVal("SELECT count(*) FROM users WHERE school_num = $base_school_num AND type = 'Parent'");
}
include "form.messages.php";
?>
" . getLanguageText('TEXT-USER-ACCOUNT-BALANCES') . ": $numSaved ($saved_date)
| 0) { ?> |
"); if ($school_record['previous_balances_post'] == 'Post Manually' || $_SESSION['UserInfo']['type'] == 'SuperUser') { $msg = getLanguageText('TEXT-USER-BALANCE-POST-MSG') . "\\n --> " . getLanguageText('TEXT-CONTINUE'); echo("" . getLanguageText('TEXT-POST-USER-BALANCES') . ""); if ($_SESSION['UserInfo']['type'] == 'SuperUser') { $cyear = date("Y",time()); $msg = "Clear balance posted flags for $cyear"; echo("Unpost Balances"); $msg = "Post Balances to Current DB"; if ($currentDBMode != 'Current') echo("Post Balances to Current DB"); } } echo("" . getLanguageText('TEXT-GENERATE-CSV') . ""); echo("
"); break; case "unpost": $cyear = date("Y",time()); $query = "UPDATE user_balance_save SET posted = 'N', posted_time = NULL WHERE school_num = $school_num"; logQuery($school_num,"user_balance_save",$query,"user-balances unpost"); db_query($query); break; case "post-forward": $balances = array(); $cyear = date("Y",time()); $query = "SELECT * FROM user_balance_save WHERE school_num = $school_num"; logQuery($school_num,"user_balance_save",$query,"user-balances post-forward"); $results = db_query($query); if (db_num_rows($results)) { while ($row = db_fetch_assoc($results)) { $balances[] = $row; } db_query("use hotlunch"); $table = new Table("user_balance_save"); db_query("DELETE FROM user_balance_save WHERE school_num = $school_num"); for ($i = 0; $i < count($balances); $i++) { extract($balances[$i]); $query = $table->BuildInsert($balances[$i]); $query .= " ON DUPLICATE KEY UPDATE balance = $balance, balance_year = '$balance_year'"; logQuery($school_num,"user_balance_save",$query,"user-balances post-forward"); db_query($query); } } header("Location: /?action=user-balances"); exit(); case "post-matching": $rwhere = ""; $rnum = 0; if (array_key_exists('rnum',$_GET)) $rnum = $_GET['rnum']; if ($rnum > 0) { $rwhere = "AND record_num = $rnum "; } $query = "SELECT original_userid,original_type,first_name,last_name,email,balance_year,balance,posted,posted_time,record_num " . "FROM user_balance_save " . "WHERE school_num = $school_num " . "AND posted = 'N' " . $rwhere . "ORDER BY $OrderBy"; logQuery($school_num,"user_balance_save",$query,"user-balances post-matching-users"); $balances = db_query($query); // User account defaults $ua = new Table("user_account"); $note = $school_record['previous_balances_post_message']; $entered_time = time(); $transaction_datetime = date("Y-m-d H:i:s",$entered_time); $data = array(); $count = 0; $posted_count = 0; while ($row = db_fetch_assoc($balances)) { extract($row); $rnum = $record_num; $name = "$first_name $last_name"; $ewhere = ""; if (strlen($email)) { $ewhere = "email = '".db_escape_string($email)."'"; $email = "$email"; } $fname = db_escape_string($first_name); $lname = db_escape_string($last_name); $fwhere = ""; if (strlen($fname) || strlen($lname)) $fwhere = "(first_name = '$fname' AND last_name = '$lname') "; if (strlen($fwhere)) $fwhere .= "OR "; $fwhere .= $ewhere; // Lookup in users table for a matching name or email $query = "SELECT * FROM users " . "WHERE school_num = $base_school_num " . "AND type IN ('Parent','Guest','Administration Team','Schedule Team','Financial Team','Staff') " . "AND ($fwhere)"; $results = db_query($query); $new_name = ""; $paction = ""; if (db_num_rows($results)) { $row = db_fetch_assoc($results); $user_num = $row['record_num']; $new_name = $row['first_name'] . ' ' . $row['last_name']; $paction = "->"; // Post saved balance $transaction_type = 'Charge Adjustment'; if ($balance < 0) $transaction_type = 'Credit Adjustment'; $transaction_amount = $balance; // Create a new transaction $query = $ua->BuildInsert(); db_query($query); $trx_num = db_insert_id(); // Update the saved balance record $query = "UPDATE user_balance_save SET posted = 'Y', posted_time = $entered_time, posted_method = 'Post', user_num = $user_num, trx_num = $trx_num " . "WHERE school_num = $school_num AND record_num = $rnum"; logQuery($school_num,"user_balance_save",$query,"user-balances post-matching-users"); db_query($query); if ($school_record['balance_post_limit'] > 0.00 && $balance > $school_record['balance_post_limit']) { $query = "UPDATE users SET can_order = 'Balance' WHERE school_num = $school_num AND record_num = $user_num"; db_query($query); } $posted_count++; } $data[$count] = array($original_type,$name,$email,$balance_year,$balance,$paction,$new_name); $count++; } echo("" . getLanguageText('TEXT-BALANCES-POSTED') . ": $posted_count
\n"); $columnHeaders = array('Type','Name','Email','Year','Balance','','New Name'); $columnAlign = array('left','left','left','center','right','center','left'); listDataCustom($data,$columnHeaders,$action,array(),'N',$columnAlign); break; case "flag": $rnum = $_GET['rnum']; $entered_time = time(); if ($rnum > 0) { $query = "SELECT * FROM user_balance_save WHERE school_num = $school_num AND record_num = $rnum"; $results = db_query($query); if (db_num_rows($results)) { $row = db_fetch_assoc($results); if ($row['posted'] != 'Y') { $query = "UPDATE user_balance_save SET posted = 'Y', posted_time = $entered_time, user_num = $user_num WHERE school_num = $school_num AND record_num = $rnum"; logQuery($school_num,"user_balance_save",$query,"user-balances flag-manually-y"); db_query($query); } else { $query = "UPDATE user_balance_save SET posted = 'N', posted_time = 0, user_num = 0 WHERE school_num = $school_num AND record_num = $rnum"; logQuery($school_num,"user_balance_save",$query,"user-balances flag-manually-n"); db_query($query); } } header("Location: /?action=user-balances&naction=list&form_message=".urlencode(getLanguageText('TEXT-TRANSACTION-POSTED'))); exit(); } break; } endTemplate(); ?>