Files
HotLunches/ajax/ajax.ClearUserBalances.php
T
2026-10-19 15:22:52 -07:00

126 lines
4.0 KiB
PHP

<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$moduleName = "ajax.ClearUserBalances.php";
// startLog($moduleName);
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active\n");
exit;
}
include "include/ajax.csrfToken.php";
// Get parameters
$school_num = intval($_GET['selected_school_num']);
$selected_balance = db_escape_string($_GET['selected_balance']);
$posting_message = db_escape_string($_GET['posting_message']);
// Ensure parameters are valid
if (!is_numeric($school_num)) logExit("School num is not numeric\n");
if ($school_num == 0) logExit("school_num is zero\n");
writeLog("school_num: $school_num\n");
writeLog("selected_balance: $selected_balance\n");
writeLog("posting_message: $posting_message\n");
// Get selected records
switch ($selected_balance) {
case 'All':
$query = "SELECT ua.school_num,userid,first_name,last_name,u.record_num AS user_num, SUM(ua.transaction_amount) AS balance " .
"FROM users AS u, user_account AS ua " .
"WHERE u.school_num = $base_school_num " .
"AND ua.school_num = $school_num " .
"AND ua.user_num = u.record_num " .
"AND (deleted != 'Y' OR deleted IS NULL) " .
"GROUP BY 1,2,3,4,5 " .
"HAVING SUM(ua.transaction_amount) != 0 " .
"ORDER BY last_name, first_name";
break;
case 'Debit':
$query = "SELECT ua.school_num,userid,first_name,last_name,u.record_num AS user_num, SUM(ua.transaction_amount) AS balance " .
"FROM users AS u, user_account AS ua " .
"WHERE u.school_num = $base_school_num " .
"AND ua.school_num = $school_num " .
"AND ua.user_num = u.record_num " .
"AND (deleted != 'Y' OR deleted IS NULL) " .
"GROUP BY 1,2,3,4,5 " .
"HAVING SUM(ua.transaction_amount) > 0 " .
"ORDER BY last_name, first_name";
break;
case 'Credit':
$query = "SELECT ua.school_num,userid,first_name,last_name,u.record_num AS user_num, SUM(ua.transaction_amount) AS balance " .
"FROM users AS u, user_account AS ua " .
"WHERE u.school_num = $base_school_num " .
"AND ua.school_num = $school_num " .
"AND ua.user_num = u.record_num " .
"AND (deleted != 'Y' OR deleted IS NULL) " .
"GROUP BY 1,2,3,4,5 " .
"HAVING SUM(ua.transaction_amount) < 0 " .
"ORDER BY last_name, first_name";
break;
}
writeLog("query: $query\n");
$accounts = db_query($query);
$numRecords = db_num_rows($accounts);
writeLog("numRecords: $numRecords\n");
if ($numRecords) {
$trxRecord = array();
$trxRecord['schedule_num'] = 0;
$trxRecord['order_num'] = 0;
$trxRecord['people_num'] = 0;
$trxRecord['transaction_datetime'] = date("Y-m-d H:i:s",time());
$trxRecord['transaction_status'] = 'Closed';
while ($row = db_fetch_assoc($accounts)) {
extract($row);
$trxRecord['school_num'] = $school_num;
$trxRecord['user_num'] = $user_num;
writeLog("-------------------------------------------\n");
writeLog("-- $moduleName --\n");
writeLog("userid: $userid\n");
writeLog("user_num: $user_num\n");
writeLog("balance: $balance\n");
$transaction_type = "Credit Adjustment";
$transaction_amount = -1 * abs($balance);
if ($balance < 0) {
$transaction_type = "Charge Adjustment";
$transaction_amount = abs($balance);
}
$trxRecord['transaction_type'] = $transaction_type;
$trxRecord['transaction_amount'] = $transaction_amount;
$trxRecord['note'] = $posting_message;
// Insert user_account entry
postTransaction($trxRecord);
}
}
writeLog("completed\n");
?>