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

124 lines
4.4 KiB
PHP

<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
include_once("include/queuemail.php");
// Set default timezone
date_default_timezone_set($school_record['timezone']);
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$moduleName = "ajax.ChargeAccount.php";
// startLog($moduleName);
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active\n");
exit;
}
include "include/ajax.csrfToken.php";
// Get parameters
$user_num = $_GET['user_num'];
$balance = $_GET['balance'];
$school_num = $school_record['record_num'];
// Ensure parameters are valid
writeLog("school_num: $school_num\n");
writeLog("user_num: $user_num\n");
writeLog("balance: $balance\n");
// Get account info
$results = db_query("SELECT * FROM users WHERE school_num = $school_num AND record_num = $user_num");
$user = db_fetch_assoc($results);
$user_email = $user['email'];
writeLog("user_email: $user_email\n");
// Get students in account
$results = db_query("SELECT * FROM people WHERE school_num = $school_num AND user_num = $user_num ORDER BY last_name,first_name");
$students = "";
while ($row = db_fetch_assoc($results)) {
$name = $row['first_name'] . ' ' . $row['last_name'];
if (strlen($students)) $students .= ", ";
$students .= $name;
}
// Get set of Unpaid Orders
$query = "SELECT hloh.* FROM hotlunch_order_header as hloh, people as p " .
"WHERE hloh.school_num = $school_num " .
"AND ordered_by_num = p.record_num " .
"AND p.user_num = $user_num " .
"AND hloh.status NOT IN ('Paid','Complimentary','Concession') " .
"ORDER BY record_num";
$orders = db_query($query);
writeLog("orders found: " . db_num_rows($orders) . "\n");
$order_payments = "";
$snum = 0;
if (db_num_rows($orders) > 0) {
while ($row = db_fetch_array($orders)) {
$onum = $row['record_num'];
$ototal = $row['order_total'];
$opaid = $row['amount_paid'];
$snum = $row['schedule_num'];
$amt = number_format($ototal - $opaid,2);
if (strlen($order_payments) > 0) $order_payments .= "|";
$order_payments .= "{" . $onum . ":" . $amt . "}";
$query = "UPDATE hotlunch_order_header " .
"SET amount_paid = order_total, " .
"status = 'Paid', " .
"paid_date = '$today', " .
"payment_method = 'PayPal' " .
"WHERE record_num = {$onum}";
db_query($query);
}
}
// Post payment to account
$amount = $balance * -1;
$entered_time = time();
$trx_time = date("Y-m-d H:i:s",$entered_time);
$query = "INSERT INTO user_account " .
"(school_num,user_num,schedule_num,transaction_datetime,transaction_type,note,transaction_amount,transaction_fee,payment_method,payment_reference,order_payments,deleted,entered_time) " .
"VALUES ($school_num,$user_num,$snum,'$trx_time','Payment','School Account Charge',$amount,0,'School Account','','$order_payments','N',$entered_time)";
writeLog("query: $query\n");
db_query($query);
// Send school account email notification
if (strlen($school_record['school_account_notification_email'])) {
$emailRecipient = $school_record['school_name'];
$emailTo = $school_record['school_account_notification_email'];
$emailFrom = setReplyAddress($school_record['reply_email']);
$emailReply = $school_record['school_name'];
$emailSubject = $school_record['school_name'] . ": " . getLanguageText('TEXT-SCHOOL-ACCOUNT-CHARGE');
$emailMessage = getLanguageText('TEXT-USER-ID') . ": " . $user['userid'] . "\n" .
getLanguageText('TEXT-NAME') . ": " . $user['first_name'] . ' ' . $user['last_name'] . "\n" .
getLanguageText('TEXT-PHONE') . ": " . $user['home_phone'] . "\n" .
getLanguageText('TEXT-EMAIL') . ": " . $user_email . "\n" .
$GlobalText['Students'] . ": " . $students . "\n" .
"\n" .
getLanguageText('TEXT-AMOUNT') . ": $currencySymbol" . number_format($balance,2) . "\n\n";
QueueEmail($emailTo, $emailFrom, $emailSubject, $emailMessage, $emailReply, $emailRecipient);
QueueEmail($user_email, $emailFrom, $emailSubject, $emailMessage, $emailReply, $emailRecipient);
QueueEmail("mark@fester.ca", $emailFrom, $emailSubject, $emailMessage, $emailReply, $emailRecipient);
}
writeLog("completed\n");
?>