First Commit

This commit is contained in:
mark committed 2026-10-19 15:22:52 -07:00
1 parent 5eb9dd037d
commit 2e62c0e60b
11877 files changed
+2035312

No files matched your search

+185
View File
@@ -0,0 +1,185 @@
<?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();
$sequence_flag = 'N';
$moduleName = "ajax.ApplyCredit.php";
// startLog($moduleName);
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active\n");
exit;
}
include "include/ajax.csrfToken.php";
// Get parameters
extract($_REQUEST);
// Validate parameters
// Ensure numeric parameters are numeric
if (!is_numeric($payment_trx)) logExit("Payment TRX num is not numeric\n");
if (!is_numeric($trx_num)) logExit("Charge TRX num is not numeric\n");
if (!is_numeric($user_num)) logExit("User num is not numeric\n");
$payment_trx = intval($payment_trx);
$trx_num = intval($trx_num);
$user_num = intval($user_num);
$school_num = $school_record['record_num'];
// Error logging
writeLog("payment_trx: $payment_trx\n");
writeLog("trx_num: $trx_num\n");
writeLog("user_num: $user_num\n");
// Get unallocated payment entry
$query = "SELECT * FROM user_account_detail " .
"WHERE school_num = $school_num " .
"AND user_num = $user_num " .
"AND posted_to_transaction = 0 " .
"AND posted_amount > 0 " .
"AND deleted != 'Y' " .
"AND transaction_num = $payment_trx " .
"ORDER BY record_num LIMIT 0,1";
writeLog("query: $query\n");
$results = db_query($query);
$row = db_fetch_assoc($results);
$unallocated_amount = $row['posted_amount'];
$unallocated_trx = $row['transaction_num'];
$unallocated_rnum = $row['record_num'];
writeLog("unallocated_amount: $unallocated_amount\n");
writeLog("unallocated_trx: $unallocated_trx\n");
writeLog("unallocated_rnum: $unallocated_rnum\n");
// Get payment transaction
$query = "SELECT * FROM user_account " .
"WHERE school_num = $school_num " .
"AND user_num = $user_num " .
"AND record_num = $payment_trx";
writeLog("query: $query\n");
$results = db_query($query);
$row = db_fetch_assoc($results);
$transaction_type = $row['transaction_type'];
$payment_method = $row['payment_method'];
if ($transaction_type != 'Payment') $payment_method = $transaction_type;
// Get the transaction to post to
$query = "SELECT * FROM user_account " .
"WHERE school_num = $school_num " .
"AND user_num = $user_num " .
"AND record_num = $trx_num";
writeLog("query: $query\n");
$results = db_query($query);
$row = db_fetch_assoc($results);
$transaction_amount = $row['transaction_amount'];
$amount_paid = $row['amount_paid'];
$transaction_type = $row['transaction_type'];
$order_num = $row['order_num'];
$owing = $transaction_amount - $amount_paid;
writeLog("transaction_amount: $transaction_amount\n");
writeLog("amount_paid: $amount_paid\n");
writeLog("owing: $owing\n");
$now = time();
if ($owing > $unallocated_amount) {
// Update existing detail transaction
$query = "UPDATE user_account_detail " .
"SET posted_to_transaction = $trx_num, " .
"entered_time = $now " .
"WHERE school_num = $school_num " .
"AND record_num = $unallocated_rnum";
writeLog("query: $query\n");
db_query($query);
// Update user account transaction
$query = "UPDATE user_account " .
"SET amount_paid = amount_paid + $unallocated_amount " .
"WHERE school_num = $school_num " .
"AND record_num = $trx_num";
writeLog("query: $query\n");
db_query($query);
// Update order header
if ($transaction_type == 'Order' && $order_num > 0) {
$today = date("Y-m-d",$now);
$query = "UPDATE hotlunch_order_header " .
"SET paid_date = '$today', " .
"payment_method = '$payment_method', " .
"amount_paid = amount_paid + $unallocated_amount " .
"WHERE school_num = $school_num " .
"AND record_num = $order_num";
writeLog("query: $query\n");
db_query($query);
}
$return_data["account_balance"] = 0;
}
else {
// Update existing detail transaction
$query = "UPDATE user_account_detail " .
"SET posted_to_transaction = $trx_num, " .
"posted_amount = $owing, " .
"entered_time = $now " .
"WHERE school_num = $school_num " .
"AND record_num = $unallocated_rnum";
writeLog("query: $query\n");
db_query($query);
// Save remaining balance
$balance = $unallocated_amount - $owing;
$query = "INSERT INTO user_account_detail (school_num,user_num,transaction_num,posted_to_transaction,posted_amount,posted_schedule,entered_time,deleted) " .
"VALUES ($school_num, $user_num, $trx_num, 0, $balance, 0, $now, 'N')";
// Close the transaction
$query = "UPDATE user_account " .
"SET amount_paid = amount_paid + $owing, " .
"transaction_status = 'Closed' " .
"WHERE school_num = $school_num " .
"AND record_num = $trx_num";
writeLog("query: $query\n");
db_query($query);
// Update order header
if ($transaction_type == 'Order' && $order_num > 0) {
$today = date("Y-m-d",$now);
$query = "UPDATE hotlunch_order_header " .
"SET paid_date = '$today', " .
"payment_method = '$payment_method', " .
"amount_paid = order_total, " .
"status = 'Paid' " .
"WHERE school_num = $school_num " .
"AND record_num = $order_num";
writeLog("query: $query\n");
db_query($query);
}
$return_data["account_balance"] = $balance;
}
writeLog("complete\n");
echo(json_encode($return_data));
?>
+123
View File
@@ -0,0 +1,123 @@
<?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");
?>
+125
View File
@@ -0,0 +1,125 @@
<?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");
?>
+76
View File
@@ -0,0 +1,76 @@
<?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.DataRecord.Delete.php";
// startLog($moduleName);
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active\n");
exit;
}
include "include/ajax.csrfToken.php";
// Get parameters
if (array_key_exists('table_name', $_GET)) $table_name = db_escape_string($_GET['table_name']);
if (array_key_exists('record_num', $_GET)) $record_num = intval($_GET['record_num']);
// Validate parameters
if (strlen($table_name) == 0) logExit("table_name undefined\n");
// Ensure numeric parameters are numeric
if (!is_numeric($record_num)) logExit("record_num is not numeric\n");
if ($record_num == 0) logExit("record_num is zero\n");
// Error logging
writeLog("$moduleName: school_num: $school_num\n");
writeLog("$moduleName: table_name: $table_name\n");
writeLog("$moduleName: record_num: $record_num\n");
$row = array();
// Create query statement
switch ($table_name) {
case 'people_categories':
$cnum = intval($_GET['cnum']);
$query = "DELETE FROM $table_name WHERE school_num = $school_num AND people_num = $record_num AND category_num = $cnum";
break;
case '_form_action':
case '_form_fields':
$query = "DELETE FROM $table_name WHERE record_num = $record_num";
break;
default:
$query = "DELETE FROM $table_name WHERE school_num = $school_num AND record_num = $record_num";
if ($table_name == 'hotlunch_order_header') logOrderChange($record_num, "ORDER DELETED", "ajax.DataRecord.Delete.php");
break;
}
// Error logging
writeLog("$moduleName: query: $query\n");
db_query($query);
writeLog("$moduleName: complete\n");
$row['ajax_return_code'] = 1;
echo(json_encode($row));
?>
+79
View File
@@ -0,0 +1,79 @@
<?php
$ValidAccess = 2010;
include "include/globals.php";
session_name($sessionName);
session_start();
include "include/ajax.csrfToken.php";
$return_data = array();
$moduleName = "ajax.DataRecord.Fetch.php";
// startLog($moduleName);
// Get parameters
$table_name = db_escape_string($_GET['table_name']);
$record_num = $_GET['record_num'];
// Error logging
writeLog("school_num: $school_num\n");
writeLog("table_name: $table_name\n");
writeLog("record_num: $record_num\n");
// Validate parameters
if (strlen($table_name) == 0) exit("Invalid Access\n");
// Ensure numeric parameters are numeric
if (!is_numeric($record_num)) exit("Invalid Access\n");
$row = array();
// Get data record
switch ($table_name) {
case 'sms_gateways':
case 'language_text':
$query = "SELECT * FROM $table_name WHERE record_num = $record_num";
break;
default:
$query = "SELECT * FROM $table_name WHERE school_num = $school_num AND record_num = $record_num";
break;
}
writeLog("query: $query\n");
$results = db_query($query);
if (db_num_rows($results)) {
$row = db_fetch_assoc($results);
$row['ajax_return_code'] = 1;
//
// Get additional data if necessary
//
switch ($table_name) {
case 'staff':
if ($row['entry_type'] == 'Staff') {
$user_num = $row['user_num'];
$query = "SELECT type FROM users WHERE school_num = $school_num AND record_num = $user_num";
writeLog("query: $query\n");
$row['user_type'] = db_getVal($query);
}
break;
case 'schedule_times':
$row['start_date'] = substr($row['start_time'],0,10);
$row['start_time'] = date($school_record['time_format'],strtotime($row['start_time']));
$row['end_time'] = date($school_record['time_format'],strtotime($row['end_time']));
break;
}
}
else {
$row['ajax_return_code'] = 0;
}
echo(json_encode($row));
?>
+93
View File
@@ -0,0 +1,93 @@
<?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.DataRecord.Fetch.php";
// startLog($moduleName);
// CSRF token validation
include "include/ajax.csrfToken.php";
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active\n");
exit;
}
include "include/ajax.csrfToken.php";
// Get parameters
if (array_key_exists('table_name', $_GET)) $table_name = db_escape_string($_GET['table_name']);
if (array_key_exists('record_num', $_GET)) $record_num = intval($_GET['record_num']);
// Error logging
writeLog("school_num: $school_num\n");
writeLog("table_name: $table_name\n");
writeLog("record_num: $record_num\n");
// Validate parameters
if (strlen($table_name) == 0) exit("Invalid Access\n");
// Ensure numeric parameters are numeric
if (!is_numeric($record_num)) exit("Invalid Access\n");
if ($record_num == 0) logExit("record_num is zero\n");
$row = array();
// Get data record
switch ($table_name) {
case '_form_actions':
case '_form_fields':
$query = "SELECT * FROM $table_name WHERE record_num = $record_num";
break;
default:
$query = "SELECT * FROM $table_name WHERE school_num = $school_num AND record_num = $record_num";
break;
}
writeLog("query: $query\n");
$results = db_query($query);
if (db_num_rows($results)) {
$row = db_fetch_assoc($results);
$row['ajax_return_code'] = 1;
//
// Get additional data if necessary
//
switch ($table_name) {
case 'staff':
if ($row['entry_type'] == 'Staff') {
$user_num = $row['user_num'];
$query = "SELECT type FROM users WHERE school_num = $school_num AND record_num = $user_num";
writeLog("query: $query\n");
$row['user_type'] = db_getVal($query);
}
break;
}
}
else {
$row['ajax_return_code'] = 0;
}
echo(json_encode($row));
writeLog("completed\n");
?>
+180
View File
@@ -0,0 +1,180 @@
<?php
uopz_allow_exit(true);
$ValidAccess = 2010;
require_once("include/globals.php");
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
$moduleName = "ajax.DataRecord.Update.php";
// if ($_SESSION['UserInfo']['type'] == 'SuperUser') startLog($moduleName);
startLog($moduleName);
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active\n");
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$sequence_flag = 'N';
unset($template);
// Get parameters
extract($_REQUEST);
$parameters = $_REQUEST;
// Validate parameters
if (strlen($table_name) == 0) logExit("Table name is undefined\n");
if (strstr($table_name,' ') !== FALSE) logExit("Invalid table name\n");
writeLog("table_name: $table_name");
switch ($table_name) {
case 'invoice_header':
if ($_SESSION['UserInfo']['type'] != 'SuperUser') {
logExit("Invalid user access to table $table_name");
}
break;
case 'schools':
if ($_SESSION['UserInfo']['type'] != 'SuperUser' && $_SESSION['UserInfo']['type'] != 'Administrator') {
logExit("Invalid user access to table $table_name");
}
break;
}
writeLog("-- $record_num --\n");
// Ensure numeric parameters are numeric
if (!is_numeric($record_num)) logExit("Record num is not numeric\n");
$record_num = intval($record_num);
$parameters['record_num'] = $record_num;
// Sanitize parameters
$table_name = db_escape_string($table_name);
$sequence_flag = db_escape_string($sequence_flag);
$school_num = $school_record['record_num'];
if (array_key_exists('school_num',$_REQUEST)) $school_num = $_REQUEST['school_num'];
$parameters['school_num'] = $school_num;
// Check for custom validation
$validationScript = "ajax.validation." . $table_name . ".php";
if (array_key_exists('userid',$_REQUEST)) {
if (!isset($Validation) || $Validation != 'N') {
if (is_file($validationScript)) {
writeLog("validationScript: $validationScript found\n");
include $validationScript;
$msg = dataValidation($_REQUEST);
if ($msg !== 0) logExit("$moduleName: validation failure - $msg\n");
}
}
}
// Reformat phone number fields
if (isset($phone) && strlen($phone)) $parameters['phone'] = formatPhoneNumber($phone,$school_record['country']);
if (isset($cell_phone) && strlen($cell_phone)) $parameters['cell_phone'] = formatPhoneNumber($cell_phone,$school_record['country']);
if (isset($contact_phone) && strlen($contact_phone)) $parameters['contact_phone'] = formatPhoneNumber($contact_phone,$school_record['country']);
if (isset($contact_cell) && strlen($contact_cell)) $parameters['contact_cell'] = formatPhoneNumber($contact_cell,$school_record['country']);
// Error logging
writeLog("table_name: $table_name\n");
writeLog("record_num: $record_num\n");
writeLog("sequence_flag: $sequence_flag\n");
// Defaults
$parameters['date_updated'] = date("Y-m-d",time());
$table = new Table($table_name);
// Create insert query if record_num is zero or else update
if ($record_num == 0) {
// Defaults
$parameters['date_added'] = date("Y-m-d",time());
// Get next sequence number
if (isset($sequence_flag) && $sequence_flag == 'Y') {
switch ($table_name) {
case '_form_fields':
$parameters['sequence'] = intval(db_getVal("SELECT max(sequence) FROM $table_name")) + 1;
break;
default:
$parameters['sequence'] = intval(db_getVal("SELECT max(sequence) FROM $table_name WHERE school_num = $school_num")) + 1;
break;
}
}
$query = $table->BuildInsert($parameters);
writeLog("query: $query\n");
db_query($query);
$record_num = db_insert_id();
}
else {
$query = $table->BuildUpdate($parameters);
writeLog("query: $query\n");
db_query($query);
// Update all orders to status paid if there is a credit
if ($table_name == 'hotlunch_order_header' && isset($UpdateAll) && $UpdateAll == 'Yes') {
$query = "SELECT ordered_by_num FROM hotlunch_order_header WHERE school_num = $school_num AND record_num = $record_num";
$ordered_by = db_getVal($query);
if ($ordered_by > 0) {
$query = "SELECT user_num FROM people WHERE school_num = $school_num AND record_num = $ordered_by";
$user_num = db_getVal($query);
if ($user_num > 0) {
$results = db_query("SELECT * FROM people WHERE school_num = $school_num AND user_num = $user_num");
if (db_num_rows($results)) {
while ($row = db_fetch_assoc($results)) {
$ordered_by .= "," . $row['record_num'];
}
}
// Update all orders to Paid status
$query = "UPDATE hotlunch_order_header SET amount_paid = order_total, payment_method = '$payment_method', paid_date = '$paid_date', status = 'Paid' " .
"WHERE school_num = $school_num " .
"AND status IN ('Unpaid','Inactive') " .
"AND ordered_by_num IN ($ordered_by)";
db_query($query);
// Update all user transactions to Closed status
$query = "UPDATE user_account SET transaction_status = 'Closed' WHERE school_num = $school_num AND user_num = $user_num";
db_query($query);
}
}
}
// Update orders if payment method is being updated
if ($table_name == 'user_account' && isset($action) && $action == 'edit-payment-method') {
}
}
writeLog("complete\n");
$return_data["record_num"] = $record_num;
echo(json_encode($return_data));
?>
+48
View File
@@ -0,0 +1,48 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active\n");
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$moduleName = "ajax.EventsCopy.php";
// startLog($moduleName);
// Get parameters
$source_school = intval($_GET['source_school']);
$start_date = db_escape_string($_GET['start_date']);
writeLog("source_school: $source_school\n");
writeLog("start_date: $start_date\n");
$query = "SELECT * FROM event_calendar WHERE school_num = $source_school AND start_date >= '$start_date'";
writeLog("query: $query\n");
$events = db_query($query);
$eventTable = new Table("event_calendar");
while ($row = db_fetch_assoc($events)) {
$row['school_num'] = $school_num;
$query = $eventTable->BuildInsert($row);
db_query($query);
}
?>
+40
View File
@@ -0,0 +1,40 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active\n");
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$moduleName = "ajax.PendingStudent.Update.php";
// startLog($moduleName);
// Get parameters
$flag = db_escape_string($_GET['flag']);
$snum = db_escape_string($_GET['sn']);
$record_num = intval($_GET['record_num']);
writeLog("flag: $flag record_num: $record_num\n");
$query = "UPDATE people_csv SET create_flag = '$flag' WHERE record_num = $record_num";
writeLog("query: $query\n");
db_query($query);
?>
+112
View File
@@ -0,0 +1,112 @@
<?php
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active");
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
$moduleName = "ajax.PostEZS.php";
// startLog($moduleName);
$return_data = array();
// Get parameters
$school_num = intval($_GET['school_num']);
$invoice_num = intval($_GET['invoice_num']);
// Ensure parameters are valid
if (!is_numeric($school_num)) logExit("School num is not numeric");
if (!is_numeric($invoice_num)) logExit("Invoice num is not numeric");
if ($school_num == 0) logExit("school_num is zero");
writeLog("school_num: $school_num");
writeLog("invoice_num: $invoice_num");
// Get school name
$query = "SELECT * FROM schools WHERE record_num = $school_num";
writeLog("query: $query");
$results = db_query($query);
$school = db_fetch_assoc($results);
$school_name = $school['school_name'];
$currency = 'CAD';
if ($school['country'] == 'USA') $currency = 'USD';
// Get invoice record
$query = "SELECT * FROM invoice_header WHERE school_num = $school_num AND record_num = $invoice_num";
writeLog("query: $query");
$results = db_query($query);
$invoice = db_fetch_assoc($results);
$db_host = "polarbear2";
$db_uname = "ezssoftwaredb";
$db_pass = "ezs7785422700@@";
writeLog("db_uname: $db_uname");
writeLog("db_pass: $db_pass");
db_close($_DB);
$_DB = mysql_connect($db_host,$db_uname,$db_pass);
db_query("SET NAMES utf8");
db_query("SET CHARACTER SET utf8");
db_query("USE schoolappointments");
$payments = new Table("invoice_payments");
$note = $school_name;
$application = "Hot Lunches";
$invoice_subtotal = $invoice['subtotal'];
$invoice_gst = $invoice['gst'];
$invoice_total = $invoice['total'];
$entered = time();
$payment_date = date("Y-m-d",$entered);
$amount = $invoice_total;
$group_with_next = 'N';
$batch_num = 0;
$company = 'EZS Software';
$query = $payments->BuildInsert();
writeLog("query: $query");
db_query($query);
// Check for an open batch
$batch_message = "";
$numOpen = db_getVal("SELECT count(*) FROM invoice_payments WHERE batch_num = 0");
if ($numOpen > 0) {
$amount = db_getVal("SELECT sum(amount) FROM invoice_payments WHERE batch_num = 0");
$batch_message = "There is an Open Batch with $numOpen Cheques - $currencySymbol".number_format($amount,2);
}
$return_data['form_message'] = $batch_message;
echo(json_encode($return_data));
writeLog("completed");
return(0);
?>
+182
View File
@@ -0,0 +1,182 @@
<?php
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active",$moduleName);
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
$moduleName = "ajax.PostPaid.php";
// startLog($moduleName);
$return_data = array();
// Get parameters
$school_num = intval($_GET['school_num']);
$invoice_num = intval($_GET['invoice_num']);
$method = db_escape_string($_GET['method']);
// Ensure parameters are valid
if (!is_numeric($school_num)) logExit("School num is not numeric",$moduleName);
if (!is_numeric($invoice_num)) logExit("Invoice num is not numeric",$moduleName);
if ($school_num == 0) logExit("school_num is zero",$moduleName);
writeLog("school_num: $school_num");
writeLog("invoice_num: $invoice_num");
// Get school name
$query = "SELECT * FROM schools WHERE record_num = $school_num";
writeLog("query: $query");
$results = db_query($query);
$school = db_fetch_assoc($results);
$school_name = $school['school_name'];
$currency = 'CAD';
if ($school['country'] == 'USA') $currency = 'USD';
// Get invoice record
$query = "SELECT * FROM invoice_header WHERE school_num = $school_num AND record_num = $invoice_num";
writeLog("query: $query");
$results = db_query($query);
$invoice = db_fetch_assoc($results);
$renewal_date = $invoice['renewal_date'];
$school_num = $invoice['school_num'];
$amount = $invoice['total'];
$invoice_record_num = $invoice['record_num'];
$today = date("Y-m-d",time());
$query = "UPDATE invoice_header SET amount_paid = total, status = 'Paid', payment_date = '$today', payment_method = '$method' WHERE record_num = $invoice_record_num";
writeLog($query);
db_query($query);
// Update the renewal date for the school
$renewal_date = date("Y-m-d",strtotime($renewal_date) - 60 * 60 * 12);
writeLog("renewal_date: $renewal_date");
$edate = db_getVal("SELECT expiry_date FROM schools WHERE record_num = $school_num");
writeLog("edate: $edate");
if ($renewal_date > $edate) {
$query = "UPDATE schools SET expiry_date = '$renewal_date' WHERE record_num = $school_num";
writeLog($query);
db_query($query);
}
// Update school record that the invoice has been paid
$query = "UPDATE schools SET renewal_invoice_paid = 'Y' WHERE record_num = $school_num";
writeLog($query);
db_query($query);
// Get country
$school_country = db_getVal("SELECT country FROM schools WHERE record_num = $school_num");
$currency = 'CAD';
if ($school_country == 'USA') $currency = 'USD';
//
// Save payment info for deposit report
//
$table = new Table("invoice_payments");
$invoice_num = $invoice_record_num + 500;
$entered = time();
$payment_date = date("Y-m-d",$entered);
$batch_num = 0;
$entry = array();
$entry['school_num'] = $school_num;
$entry['invoice_num'] = $invoice_num;
$entry['payment_date'] = $payment_date;
$entry['entered'] = $entered;
$entry['amount'] = $amount;
$entry['currency'] = $currency;
$entry['group_with_next'] = 'N';
$entry['batch_num'] = 0;
$entry['batch_closed_date'] = NULL;
$entry['method'] = $method;
$entry['user_ip'] = $_SERVER["REMOTE_ADDR"];
$query = $table->BuildInsert($entry);
db_query($query);
// Get school info
$results = db_query("SELECT * FROM schools WHERE record_num = $school_num");
$row = db_fetch_array($results);
$school_name = $row['school_name'];
$school_status = $row['status'];
$expiry_date = $row['expiry_date'];
$system_configuration = $row['system_configuration'];
// Send thank you to school
include "include/queuemail.php";
// Get school contacts
$contacts = db_query("SELECT * FROM school_contact_list WHERE school_num = $school_num AND contact_email != '' AND contact_email IS NOT NULL ORDER BY sequence");
$count = 0;
while ($row = db_fetch_assoc($contacts)) {
extract($row,MYSQL_ASSOC);
$emailMessage = "Hello $contact_name,\n" .
"\n" .
"Your payment has been received and posted to your account.\n" .
"\n" .
"Do not hesitate to send me an email with any questions or suggestions that you may have.\n" .
"\n" .
"School Name: $school_name\n" .
"School Status: $school_status\n" .
"Renewal Date: $renewal_date\n" .
"Configuration: $system_configuration\n" .
"\n" .
"Thank You\n" .
"\n" .
"Hot Lunches On-Line\n" .
"(604)996-7181" . "\n" .
"1-888-9HOTLUNCH (1-888-946-8586)" . "\n" .
"\n" .
"support@hotlunches.net\n" .
"http://www.hotlunches.net/\n\n";
$emailRecipient = $contact_name;
$emailTo = $contact_email;
$emailReply = "Hot Lunches On-Line";
$emailFrom = "support@hotlunches.net";
$emailSubject = "HotLunches.net Payment Received From $school_name";
QueueEmail($emailTo, $emailFrom, $emailSubject, $emailMessage, $emailReply, $emailRecipient);
if ($count == 0) {
$emailRecipient = "Hot Lunches Online";
$emailTo = "support@hotlunches.net";
QueueEmail($emailTo, $emailFrom, $emailSubject, $emailMessage, $emailReply, $emailRecipient);
}
$count++;
}
writeLog("completed");
?>
+56
View File
@@ -0,0 +1,56 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active",$moduleName);
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$moduleName = "ajax.RecalcUserDetail.php";
// startLog($moduleName);
// Get parameters
$school_num = intval($_GET['school_num']);
// 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");
adjustUserAccountDetails(0,$school_num);
writeLog("query: $query\n");
db_query($query);
writeLog("completed\n");
$timezone = $school_record['timezone'];
writeLog("timezone: $timezone\n");
date_default_timezone_set($timezone);
$data = array();
$data['completed'] = date($school_record['date_format'].' '.$school_record['time_format'],time());
writeLog("time: " . $data['completed'] . "\n");
$data['ajax_return_code'] = 1;
echo(json_encode($data));
?>
+58
View File
@@ -0,0 +1,58 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active",$moduleName);
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$sequence_flag = 'N';
$moduleName = "ajax.ResellerRenewal.Update.php";
// startLog($moduleName);
unset($template);
// Get parameters
extract($_REQUEST);
// Validate parameters
// Sanitize parameters
$rsid = db_escape_string($rsid);
$expiry_date = db_escape_string($expiry_date);
// Error logging
writeLog("rsid: $table_name\n");
writeLog("expiry_date: $expiry_date\n");
$table = new Table("schools");
$query = "UPDATE schools SET expiry_date = '$expiry_date' WHERE reseller = '$rsid' AND status IN ('Special','Active')";
db_query($query);
writeLog("complete\n");
echo(json_encode($return_data));
?>
+243
View File
@@ -0,0 +1,243 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active",$moduleName);
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$moduleName = "ajax.ScheduleCopy.php";
startLog($moduleName);
// CSRF token validation
include "include/ajax.csrfToken.php";
// Get parameters
$source_schedule_num = intval($_GET['source_schedule']);
$schedule_title = db_escape_string($_GET['schedule_title']);
$order_start = db_escape_string($_GET['order_start']);
$order_end = db_escape_string($_GET['order_end']);
$schedule_start = db_escape_string($_GET['schedule_start']);
writeLog("source_schedule_num: $source_schedule_num\n");
writeLog("schedule_title: $schedule_title\n");
writeLog("order_start: $order_start\n");
writeLog("order_end: $order_end\n");
writeLog("schedule_start: $schedule_start\n");
// Get source schedule
$query = "SELECT * FROM hotlunch_schedules WHERE record_num = $source_schedule_num";
$results = db_query($query);
if (db_num_rows($results) == 0) {
$return_data['ajax_return_code'] = -1;
$return_data['ajax_message'] = getLanguageText('ERRORMSG-INVALID-SCHEDULE');
echo(json_encode($return_data));
exit;
}
$schedule = db_fetch_assoc($results);
$source_school_num = $schedule['school_num'];
$schedule_type = $schedule['schedule_type'];
$schedule_start_date = $schedule['schedule_start_date'];
$schedule_end_date = $schedule['schedule_end_date'];
$schedule_offset = strtotime("$schedule_start 12:00:00") - strtotime("$schedule_start_date 12:00:00");
$schedule['schedule_end_date'] = date("Y-m-d",strtotime("$schedule_end_date 12:00:00") + $schedule_offset);
// Get menu dates
switch ($schedule_type) {
case 'Hot Lunch':
case 'Date Sensitive':
$query = "SELECT * FROM hotlunch_menu_dates " .
"WHERE school_num = $source_school_num " .
"AND schedule_num = $source_schedule_num " .
"ORDER BY menu_date";
$DateSensitive = true;
break;
default:
$query = "SELECT * FROM hotlunch_menu_dates " .
"WHERE school_num = $source_school_num " .
"AND schedule_num = $source_schedule_num " .
"ORDER BY sequence";
$DateSensitive = false;
break;
}
$results = db_query($query);
if (db_num_rows($results) == 0) {
$return_data['ajax_return_code'] = -1;
$return_data['ajax_message'] = getLanguageText('ERRORMSG-INVALID-SCHEDULE');
echo(json_encode($return_data));
exit;
}
$menuDates = array();
while ($row = db_fetch_assoc($results)) {
$menuDates[] = $row;
}
// Check start date for date sensitive schedules
if ($DateSensitive) {
writeLog("Date Sensitive");
$first_menu_date = $menuDates[0]['menu_date'];
$swday = date("D",strtotime($first_menu_date));
$nwday = date("D",strtotime($schedule_start));
if ($swday != $nwday) {
$return_data['ajax_return_code'] = -1;
$return_data['ajax_message'] = getLanguageText('ERRORMSG-SCHEDULE-START-DATE-MISMATCH') . "<br />$swday -> $nwday";
echo(json_encode($return_data));
exit;
}
$offset = strtotime("$schedule_start 12:00:00") - strtotime("$first_menu_date 12:00:00");
for ($i = 0; $i < count($menuDates); $i++) {
$mdate = $menuDates[$i]['menu_date'];
$newdate = date("Y-m-d",strtotime($mdate) + $offset);
$menuDates[$i]['menu_date'] = $newdate;
}
}
$schedulesTable = new Table("hotlunch_schedules");
$schedule['school_num'] = $school_num;
$schedule['schedule_name'] = $schedule_title;
$schedule['sequence'] = intval(db_getVal("SELECT max(sequence) FROM hotlunch_schedules WHERE school_num = $school_num")) + 1;
$schedule['start_order_datetime'] = $order_start;
$schedule['end_order_datetime'] = $order_end;
$schedule['schedule_start_date'] = $schedule_start;
$query = $schedulesTable->BuildInsert($schedule);
db_query($query);
$newSchedule = db_insert_id();
$menudatesTable = new Table("hotlunch_menu_dates");
$menuitemsTable = new Table("hotlunch_menu_items");
$menuproductsTable = new Table("hotlunch_menu_products");
$scheduleclassesTable = new Table("hotlunch_schedules_classes");
$menudatesclassesTable = new Table("hotlunch_menu_dates_classes");
$menuitemsclassesTable = new Table("hotlunch_menu_items_classes");
// Copy each menu date to new schedule
for ($i = 0; $i < count($menuDates); $i++) {
$entry = $menuDates[$i];
$entry['school_num'] = $school_num;
$entry['schedule_num'] = $newSchedule;
$source_menu_num = $entry['record_num'];
$query = $menudatesTable->BuildInsert($entry);
db_query($query);
$newMenu = db_insert_id();
// Get and copy menu items to new menu date
$query = "SELECT * FROM hotlunch_menu_items WHERE school_num = $source_school_num AND menu_num = $source_menu_num";
$items = db_query($query);
while ($row = db_fetch_assoc($items)) {
$source_item_num = $row['record_num'];
$row['school_num'] = $school_num;
$row['menu_num'] = $newMenu;
$query = $menuitemsTable->BuildInsert($row);
db_query($query);
$newItem = db_insert_id();
// Get and copy menu products to new menu item
$query = "SELECT * FROM hotlunch_menu_products WHERE school_num = $source_school_num AND menu_item_num = $source_item_num";
$products = db_query($query);
while ($row = db_fetch_assoc($products)) {
$row['school_num'] = $school_num;
$row['menu_item_num'] = $newItem;
$query = $menuproductsTable->BuildInsert($row);
db_query($query);
}
// Process any menu_items_classes
if ($school_num == $source_school) {
$query = "SELECT * FROM hotlunch_menu_items_classes " .
"WHERE school_num = $source_school_num " .
"AND schedule_num = $source_schedule_num " .
"AND menu_num = $source_menu_num " .
"AND menu_item_num = $source_item_num";
$results = db_query($query);
while ($row = db_fetch_assoc($results)) {
$row['school_num'] = $school_num;
$row['schedule_num'] = $newSchedule;
$row['menu_num'] = $newMenu;
$row['menu_item_num'] = $newItem;
$query = $menuitemsclassesTable->BuildInsert($row);
db_query($query);
}
}
}
// Process any menu_dates_classes entries
if ($school_num == $source_school) {
$query = "SELECT * FROM hotlunch_menu_dates_classes " .
"WHERE school_num = $source_school_num " .
"AND schedule_num = $source_schedule_num " .
"AND menu_num = $source_menu_num";
$results = db_query($query);
while ($row = db_fetch_assoc($results)) {
$row['school_num'] = $school_num;
$row['schedule_num'] = $newSchedule;
$row['menu_num'] = $newMenu;
$query = $menudatesclassesTable->BuildInsert($row);
db_query($query);
}
}
}
// Process any schedules_classes entries
if ($school_num == $source_school) {
$query = "SELECT * FROM hotlunch_schedules_classes " .
"WHERE school_num = $source_school_num " .
"AND schedule_num = $source_schedule_num";
$results = db_query($query);
while ($row = db_fetch_assoc($results)) {
$row['school_num'] = $school_num;
$row['schedule_num'] = $newSchedule;
$query = $scheduleclassesTable->BuildInsert($row);
db_query($query);
}
}
$return_data['ajax_return_code'] = 0;
$return_data['ajax_message'] = "";
$return_data['schedule_num'] = $newSchedule;
echo(json_encode($return_data));
?>
+82
View File
@@ -0,0 +1,82 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active\n");
exit;
}
include "include/ajax.csrfToken.php";
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$moduleName = "ajax.SearchDBFields.php";
startLog($moduleName);
// Get parameters
if (array_key_exists('table_name', $_GET)) $table_name = db_escape_string($_GET['table_name']);
if (array_key_exists('field_names', $_GET)) $field_names = db_escape_string($_GET['field_names']);
if (array_key_exists('term', $_GET)) $term = db_escape_string($_GET['term']);
// 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");
if (!isset($table_name)) logExit("ajax.SearchDBFields.php - table_name is not set");
if (!isset($field_names)) logExit("ajax.SearchDBFields.php - field_names is not set");
writeLog("table_name: $table_name\n");
writeLog("field_names: $field_names\n");
writeLog("term: $term\n");
$fields = explode(',', $field_names);
$where = "";
for ($i = 0; $i < count($fields); $i++) {
$field = $fields[$i];
if (strlen($where)) $where .= "OR ";
$where .= "$field LIKE '%$term%' ";
}
$query = "SELECT * FROM $table_name WHERE school_num = $school_num AND ($where)";
writeLog($query);
$results = db_query($query);
// Format data for return
$return_data = array();
$num_records = db_num_rows($results);
if ($num_records > 0) {
writeLog("records: $num_records\n");
$return_data[] = array();
while ($row = db_fetch_assoc($results)) {
$text = "";
for ($i = 0; $i < count($fields); $i++) {
$field = $fields[$i];
$text .= $row[$field].' ';
}
$text = trim($text);
$record_num = $row['record_num'];
$return_data[] = array(
"value" => $text,
"record_num" => $record_num
);
}
}
writeLog("completed\n");
echo(json_encode($return_data));
?>
+94
View File
@@ -0,0 +1,94 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active",$moduleName);
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$moduleName = "ajax.SequenceRecords.php";
startLog($moduleName);
// Get parameters
$table_name = db_escape_string($_GET['table']);
$dset = "";
if (array_key_exists('dset', $_GET)) $dset = db_escape_string($_GET['dset']);
writeLog("table_name: $table_name");
writeLog("dset: $dset");
if (!isset($dset) || strlen($dset) == 0) $dset = "row_ids";
$row_ids = $_GET[$dset];
if (array_key_exists('$school_num',$_GET)) $school_num = intval($_GET['school_num']);
if (!isset($school_num) || $school_num == 0) $school_num = $school_record['record_num'];
// Ensure parameters are valid
if (strlen($table_name) == 0) logExit("Table name is undefined\n");
// Map table name if required
if ($table_name == 'form-fields') $table_name = '_form_fields';
if (strstr($table_name,' ') !== FALSE) logExit("Invalid table name\n");
if (!is_array($row_ids)) logExit("Invalid Access\n");
$numRows = count($row_ids);
writeLog("count: $numRows\n");
// Sequence records
$sequence = 1;
for ($i = 0; $i < $numRows; $i++) {
$rowid = $row_ids[$i];
if (strlen($rowid)) {
$rnum = intval(str_replace("row_","",$rowid));
switch ($table_name) {
case 'how_to_guides':
case 'how_to_guide_categories':
case 'videos':
case '_form_fields':
$query = "UPDATE $table_name SET sequence = $sequence WHERE record_num = $rnum";
writeLog("query: $query\n");
db_query($query);
break;
case 'hotlunch_menu_items':
$query = "UPDATE $table_name SET sequence = $sequence WHERE school_num = $school_num AND record_num = $rnum";
writeLog("query: $query\n");
db_query($query);
// Update linked menus
$query = "update $table_name set sequence = $sequence where school_num = $school_num AND source_item = $rnum";
writeLog("query: $query\n");
db_query($query);
break;
default:
$query = "UPDATE $table_name SET sequence = $sequence WHERE school_num = $school_num AND record_num = $rnum";
writeLog("query: $query\n");
db_query($query);
break;
}
$sequence++;
}
}
?>
+58
View File
@@ -0,0 +1,58 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active",$moduleName);
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$moduleName = "ajax.ServerTime.php";
// startLog($moduleName);
// Get parameters
$school_num = intval($_GET['school_num']);
$query = "SELECT * FROM schools WHERE record_num = $school_num";
writeLog("query: $query\n");
$results = db_query($query);
$school_record = db_fetch_assoc($results);
$timezone = $school_record['timezone'];
writeLog("timezone: $timezone\n");
date_default_timezone_set($timezone);
$t = time();
$time = array("default" => date("Y-m-d H:i:s",$t),
"default_date" => date("Y-m-d",$t),
"default_time" => date("H:i:s",$t),
"timezone" => $school_record['timezone'],
"date_format" => $school_record['date_format'],
"time_format" => $school_record['time_format'],
"school" => date($school_record['date_format'].' '.$school_record['time_format'],$t),
"school_date" => date($school_record['date_format'],$t),
"school_time" => date($school_record['time_format'],$t),
);
writeLog("completed\n");
echo(json_encode($time));
?>
+79
View File
@@ -0,0 +1,79 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active",$moduleName);
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$moduleName = "ajax.StaffLocationUpdate.php";
// startLog($moduleName);
// Get parameters
$set = db_escape_string($_REQUEST['set']);
$location = intval($_REQUEST['location']);
// Validate parameters
$school_num = $school_record['record_num'];
// Error logging
writeLog("set: $set\n");
writeLog("location: $location\n");
switch ($set) {
case 'all':
$query = "UPDATE people " .
"SET meal_location = $location " .
"WHERE school_num = $school_num " .
"AND people_type = 'Staff'";
writeLog("query: $query\n");
db_query($query);
break;
case 'selected':
$query = "UPDATE people " .
"SET meal_location = $location " .
"WHERE school_num = $school_num " .
"AND (meal_location = 0 OR meal_location IS NULL) " .
"AND people_type = 'Staff'";
writeLog("query: $query\n");
db_query($query);
break;
case 'classroom':
$query = "UPDATE people " .
"SET meal_location = class_num " .
"WHERE school_num = $school_num " .
"AND class_num > 0 " .
"AND people_type = 'Staff'";
writeLog("query: $query\n");
db_query($query);
break;
}
writeLog("complete\n");
echo(json_encode($return_data));
?>
+68
View File
@@ -0,0 +1,68 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active",$moduleName);
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$moduleName = "ajax.ToggleActiveFlag.php";
// startLog($moduleName);
// Get parameters
$table_name = db_escape_string($_GET['table_name']);
$record_num = intval($_GET['rnum']);
// Ensure parameters are valid
if (strlen($table_name) == 0) logExit("table_name is not set\n");
if (!is_numeric($record_num)) logExit("Record num is not numeric\n");
if ($record_num == 0) logExit("record_num is zero\n");
writeLog("school_num: $school_num\n");
writeLog("table_name: $table_name\n");
// Get current setting
$query = "SELECT active FROM $table_name WHERE record_num = $record_num";
writeLog("query: $query\n");
$active = db_getVal($query);
switch ($active) {
case 'Y':
default:
$query = "UPDATE $table_name SET active = 'N' WHERE record_num = $record_num";
$row['rval'] = 'N';
break;
case 'N':
$query = "UPDATE $table_name SET active = 'Y' WHERE record_num = $record_num";
$row['rval'] = 'Y';
break;
}
writeLog("query: $query\n");
db_query($query);
echo(json_encode($row));
writeLog("completed\n");
?>
+61
View File
@@ -0,0 +1,61 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active",$moduleName);
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$moduleName = "ajax.ToggleReporting.php";
// startLog($moduleName);
// Get parameters
$school_num = intval($_GET['school_num']);
// 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");
// Get current setting
$query = "SELECT rep FROM schools WHERE record_num = $school_num";
writeLog("query: $query\n");
$rep = db_getVal($query);
switch ($rep) {
case 'R':
default:
$query = "UPDATE schools SET rep = 'N' WHERE record_num = $school_num";
break;
case 'N':
$query = "UPDATE schools SET rep = 'R' WHERE record_num = $school_num";
break;
}
writeLog("query: $query\n");
db_query($query);
writeLog("completed\n");
?>
+64
View File
@@ -0,0 +1,64 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active",$moduleName);
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$moduleName = "ajax.ToggleSentFlag.php";
// startLog($moduleName);
// Get parameters
$sent_flag = $_GET['sent_flag'];
$record_num = intval($_GET['record_num']);
// 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("record_num: $record_num\n");
writeLog("sent_flag: $sent_flag\n");
switch ($sent_flag) {
case 'Y':
$flag = 'N';
$query = "UPDATE payment_message_queue SET sent_flag = 'N' WHERE record_num = $record_num";
break;
case 'N':
default:
$flag = 'Y';
$query = "UPDATE payment_message_queue SET sent_flag = 'Y' WHERE record_num = $record_num";
break;
}
writeLog("query: $query\n");
db_query($query);
writeLog("completed\n");
$return_data["flag"] = $flag;
echo(json_encode($return_data));
?>
+58
View File
@@ -0,0 +1,58 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active\n");
exit;
}
include "include/ajax.csrfToken.php";
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$moduleName = "ajax.UpdateDBField.php";
startLog($moduleName);
// Get parameters
if (array_key_exists('table_name', $_GET)) $table_name = db_escape_string($_GET['table_name']);
if (array_key_exists('field_name', $_GET)) $field_name = db_escape_string($_GET['field_name']);
if (array_key_exists('field_value', $_GET)) $field_value = db_escape_string($_GET['field_value']);
if (array_key_exists('record_num', $_GET)) $record_num = intval($_GET['record_num']);
// 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");
if (!isset($table_name)) logExit("ajax.UpdateDBField.php - table_name is not set");
if (!isset($field_name)) logExit("ajax.UpdateDBField.php - field_name is not set");
$field_name = str_replace('-','_',$field_name);
writeLog("table_name: $table_name\n");
writeLog("field_name: $field_name\n");
writeLog("field_value: $field_value\n");
writeLog("record_num: $record_num\n");
$query = "UPDATE $table_name SET $field_name = '$field_value' WHERE record_num = $record_num";
writeLog("query: $query\n");
db_query($query);
$return_data['rows_updated'] = db_affected_rows();
writeLog("completed\n");
$return_data["flag"] = $field_value;
echo(json_encode($return_data));
?>
+60
View File
@@ -0,0 +1,60 @@
<?php
$ValidAccess = 2010;
include "include/globals.php";
session_name($sessionName);
session_start();
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active");
exit;
}
include "include/ajax.csrfToken.php";
$school_num = intval($_GET['school_num']);
$user_num = intval($_GET['record_num']);
$return_data = array();
$moduleName = "ajax.UserPassword.Update.php";
startLog($moduleName);
// Error logging
writeLog("school_num: $school_num\n");
writeLog("user_num: $user_num\n");
// Get user record
$query = "SELECT * FROM users WHERE school_num = $school_num AND record_num = $user_num";
writeLog("query: $query\n");
$r = db_query($query);
$user = db_fetch_assoc($r);
// writeLog(print_r($user,true));
if (!is_array($user)) exit;
extract($user);
writeLog($userid);
$userid = str_replace(' ','',$userid);
writeLog($userid);
$password = $userid;
$password_crypt = crypt($password,$date_added);
$password_crypt = crypt(db_escape_string($password),$user['date_added']);
writeLog("password: $password\n");
writeLog("date_added: $date_added\n");
writeLog("password_crypt: $password_crypt\n");
$query = "UPDATE users SET userid = '$userid', password = '$password', password_crypt = '$password_crypt' " .
"WHERE school_num = $school_num AND record_num = $user_num";
writeLog("query: $query\n");
db_query($query);
writeLog("complete\n\n");
?>
+72
View File
@@ -0,0 +1,72 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active");
exit;
}
include "include/ajax.csrfToken.php";
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$sequence_flag = 'N';
$moduleName = "ajax.UserUpdate.php";
// startLog($moduleName);
// Get parameters
extract($_REQUEST);
// Validate parameters
// Ensure numeric parameters are numeric
if (!is_numeric($amount)) logExit("Amount is not numeric\n");
$school_num = $school_record['record_num'];
// Error logging
writeLog("amount: $user_num\n");
switch ($naction) {
case 'Clear':
$query = "UPDATE users " .
"SET can_order = 'Y' " .
"WHERE school_num = $school_num " .
"AND balance_owing <= $amount";
writeLog("query: $query\n");
db_query($query);
break;
case 'Block':
default:
$query = "UPDATE users " .
"SET can_order = 'B' " .
"WHERE school_num = $school_num " .
"AND balance_owing >= $amount";
writeLog("query: $query\n");
db_query($query);
break;
}
writeLog("complete\n");
echo(json_encode($return_data));
?>
+93
View File
@@ -0,0 +1,93 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
header("Location: /?error_message=" . urlencode(getLanguageText('ERRORMSG-SESSION-EXPIRED')));
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
startLog("ajax.imageUploader.php");
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
writeLog("_FILES['file']: ".$_FILES['file']);
writeLog("_FILES['file']['error']: ".$_FILES['file']['error']);
// Set defaults
$maxImageSize = 900;
$thumbWidth = 200;
// A list of permitted file extensions
$allowed = array('png', 'jpg', 'gif', 'jpeg');
if(isset($_FILES['file']) && $_FILES['file']['error'] == 0){
$mimetype = mime_content_type($_FILES['file']['tmp_name']);
if (strpos($mimetype, "image") !== 0) {
echo '{"status":"error"}';
writeLog("Not an Image: $mimetype");
return;
}
$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
writeLog("extension: $extension");
if(!in_array(strtolower($extension), $allowed)){
echo '{"status":"error"}';
writeLog("Invalid Extension");
exit;
}
writeLog($_FILES['file']['tmp_name']);
writeLog($_FILES['file']['name']);
$image_name = $_FILES['file']['name'];
$file_name = trim($image_name);
$file_name = str_replace(' ','_',$file_name);
$file_name = str_replace('%20','_',$file_name);
$file_name = str_replace('"','',$file_name);
$file_name = str_replace("'",'',$file_name);
$file_name = str_replace('$','',$file_name);
$file_name = str_replace('/','',$file_name);
$file_name = str_replace('\\','',$file_name);
$file_name = str_replace('(','.',$file_name);
$file_name = str_replace(')','',$file_name);
$file_name = str_replace('[','',$file_name);
$file_name = str_replace(']','',$file_name);
$file_name = str_replace('&','_and_',$file_name);
$file_name = str_replace(';','_and_',$file_name);
$file_name = preg_replace('/[^[:print:]]/', '', $file_name);
$image_name = $file_name;
$image_path = "files/$subpath/image";
$image_target = "$image_path/$file_name";
writeLog("image_target: $image_target");
if (is_file($image_target)) unlink($image_target);
if (move_uploaded_file($_FILES['file']['tmp_name'],$image_target)){
writeLog("Move completed");
// Resize image and create thumbnail
resizeImage($image_name, $image_path, $maxImageSize, $thumbWidth);
echo($image_target);
writeLog("Done");
exit;
}
}
echo '{"status":"error"}';
exit;
?>
+168
View File
@@ -0,0 +1,168 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active",$moduleName);
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
$moduleName = "ajax.schoolSearch.php";
// startLog($moduleName);
// Get search text
$text = trim(strtolower($_GET['term']));
$words = explode(' ',$text);
writeLog("text: $text\n");
// School status options
$schoolStatus = "'Active','Special','Deleted','Inactive','Linked'";
$schoolStatus = "'','Active','Special','Linked'";
$schoolStatus = "'','Active','Special'";
// Format where clause
$swhere = "";
for ($i = 0; $i < count($words); $i++) {
$word = db_escape_string($words[$i]);
if (preg_match("/^#/",$word) || is_numeric($word)) {
$num = intval(preg_replace("/^#/","",$word));
// Check for an invoice number
$inv = $num - 500;
if ($inv > 0) {
$query = "SELECT * FROM invoice_header WHERE record_num = $inv";
$results = db_query($query);
if (db_num_rows($results)) {
$row = db_fetch_assoc($results);
$num = $row['school_num'];
}
}
$swhere = "AND record_num = $num ";
$cwhere = "AND s.record_num = $num ";
$schoolStatus = "'Active','Special'";
}
else {
$num = 0;
if (is_numeric($word)) $num = intval($word);
$swhere .= "AND (school_name LIKE '%$word%' " .
"OR city LIKE '$word%' " .
"OR principal LIKE '%$word%' " .
"OR principal_email LIKE '%$word%' " .
"OR phone LIKE '%$word%' " .
"OR default_url_code LIKE '%$word%' " .
"OR url LIKE '%$word%' " .
"OR reseller LIKE '$word%' " .
"OR reply_email LIKE '%$word%' " .
"OR support_email LIKE '%$word%' " .
"OR volunteer_reminder_email LIKE '%$word%' " .
"OR record_num = $num) ";
$cwhere .= "AND (sc.contact_name LIKE '%$word%' OR sc.contact_email LIKE '%$word%' OR sc.contact_phone LIKE '%$word%' OR sc.contact_cell LIKE '%$word%' OR s.record_num = $num) ";
}
}
// Get matching school records
$query = "SELECT DISTINCT school_name,city,province,status,url,reseller,record_num FROM schools WHERE status IN ($schoolStatus) $swhere ORDER BY school_name";
writeLog("query: $query\n");
$results = db_query($query);
$query = "SELECT DISTINCT school_name,city,province,status,url,reseller,record_num FROM schools WHERE status IN ('Linked') $swhere ORDER BY school_name";
writeLog("query: $query\n");
$results2 = db_query($query);
$query = "SELECT DISTINCT school_name,city,province,status,url,reseller,record_num FROM schools WHERE status IN ('Inactive','Deleted') $swhere ORDER BY school_name";
writeLog("query: $query\n");
$results3 = db_query($query);
// Format data for return
$return_data = array();
$num_records = db_num_rows($results) + db_num_rows($results2) + db_num_rows($results3);
if ($num_records > 0) {
writeLog("records: $num_records\n");
if (db_num_rows($results)) {
$return_data[] = array("value" => "-- ACTIVE SCHOOLS ------------",
"school_name" => '',
"school_num" => 0);
while ($row = db_fetch_assoc($results)) {
extract($row);
$r = "";
if ($reseller != 'hotlunch') $r = " ($reseller)";
$school_status = " ($status/$record_num)";
$return_data[] = array("value" => $school_name.' - '.$city.', '.$province.$r."$school_status - $url",
"school_name" => $school_name,
"school_num" => $record_num);
}
}
if (db_num_rows($results2)) {
$return_data[] = array("value" => "-- LINKED SCHOOLS ------------",
"school_name" => '',
"school_num" => 0);
while ($row = db_fetch_assoc($results2)) {
extract($row);
$r = "";
if ($reseller != 'hotlunch') $r = " ($reseller)";
$school_status = " ($status/$record_num)";
$return_data[] = array("value" => $school_name.' - '.$city.', '.$province.$r."$school_status - $url",
"school_name" => $school_name,
"school_num" => $record_num);
}
}
if (db_num_rows($results3)) {
$return_data[] = array("value" => "-- INACTIVE / DELETED SCHOOLS ------------",
"school_name" => '',
"school_num" => 0);
while ($row = db_fetch_assoc($results3)) {
extract($row);
$r = "";
if ($reseller != 'hotlunch') $r = " ($reseller)";
$school_status = " ($status/$record_num)";
$return_data[] = array("value" => $school_name.' - '.$city.', '.$province.$r."$school_status - $url",
"school_name" => $school_name,
"school_num" => $record_num);
}
}
}
// Get matching contact records
$query = "SELECT DISTINCT school_name,city,province,s.record_num,sc.contact_name,sc.contact_phone " .
"FROM schools AS s,school_contact_list AS sc " .
"WHERE status IN ('Active','Special') AND s.record_num = sc.school_num $cwhere " .
"ORDER BY school_name";
writeLog("query: $query\n");
$results = db_query($query);
// Format data for return
$num_records = db_num_rows($results);
if ($num_records > 0) {
writeLog("records: $num_records\n");
$return_data[] = array("value" => "-- CONTACTS ------------",
"school_name" => '',
"school_num" => 0);
while ($row = db_fetch_assoc($results)) {
extract($row);
$return_data[] = array("value" => $school_name.' - '.$contact_name,
"school_name" => $school_name,
"school_num" => $record_num);
}
}
writeLog("completed\n");
echo(json_encode($return_data));
return false;
?>
+65
View File
@@ -0,0 +1,65 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active",$moduleName);
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
$moduleName = "ajax.studentSearch.php";
// startLog($moduleName);
// Get search text
$text = trim(strtolower($_GET['term']));
$words = explode(' ',$text);
writeLog("text: $text\n");
// Format where clause
$swhere = "";
for ($i = 0; $i < count($words); $i++) {
$word = db_escape_string($words[$i]);
$uwhere .= "AND (people.first_name LIKE '$word%' " .
"OR people.last_name LIKE '$word%') ";
}
// Get matching user records
$query = "SELECT DISTINCT people.first_name,people.last_name,user_num,people.record_num,users.first_name AS parent_first_name,users.last_name AS parent_last_name FROM people,users " .
"WHERE people.school_num = $school_num " .
"AND users.school_num = $school_num " .
"AND people.user_num = users.record_num " .
$uwhere .
"ORDER BY last_name,first_name";
writeLog("query: $query\n");
$results = db_query($query);
// Format data for return
$return_data = array();
$num_records = db_num_rows($results);
if ($num_records > 0) {
writeLog("records: $num_records\n");
$return_data[] = array();
while ($row = db_fetch_assoc($results)) {
extract($row);
$num = db_getVal("SELECT count(*) FROM hotlunch_order_header WHERE school_num = $school_num AND ordered_by_num = $record_num AND status NOT IN ('Pending','Deleted')");
$return_data[] = array("value" => "$first_name $last_name ($num) - $parent_first_name $parent_last_name",
"student_num" => $record_num);
}
}
writeLog("completed\n");
echo(json_encode($return_data));
return false;
?>
+72
View File
@@ -0,0 +1,72 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active",$moduleName);
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
$moduleName = "ajax.supplierSearch.php";
// startLog($moduleName);
// Get search text
$text = trim(strtolower($_GET['term']));
$words = explode(' ',$text);
writeLog("text: $text\n");
// Format where clause
$swhere = "";
for ($i = 0; $i < count($words); $i++) {
$word = db_escape_string($words[$i]);
$num = 0;
if (is_numeric($word)) $num = intval($word);
$swhere .= "AND (school_name LIKE '%$word%' " .
"OR suppliers.supplier_name LIKE '%$word%' " .
"OR suppliers.city LIKE '$word%' " .
"OR suppliers.contact_name LIKE '%$word%' " .
"OR suppliers.province LIKE '%$word%') ";
}
// Get matching records
$query = "SELECT DISTINCT supplier_name,suppliers.contact_name,suppliers.city,suppliers.province,school_name,suppliers.record_num " .
"FROM suppliers,schools " .
"WHERE suppliers.status = 'Active' " .
"AND suppliers.school_num = schools.record_num " .
$swhere .
"ORDER BY supplier_name";
writeLog("query: $query\n");
$results = db_query($query);
// Format data for return
$return_data = array();
$num_records = db_num_rows($results);
if ($num_records > 0) {
writeLog("records: $num_records\n");
while ($row = db_fetch_assoc($results)) {
extract($row);
$name = "$supplier_name, $city, $province - $school_name";
$return_data[] = array("value" => $name,
"supplier_name" => $supplier_name,
"supplier_num" => $record_num);
}
}
writeLog("completed\n");
echo(json_encode($return_data));
return false;
?>
+93
View File
@@ -0,0 +1,93 @@
<?php
//
// Process all requests for pages in the secure area
//
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active",$moduleName);
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
// Start the template and output buffering
startTemplate();
$templatePageTitle = "AJAX Test";
$headerArgs = "";
$menuInclude = "menu.admin.php";
header('Content-type: text/html; charset=iso-8859-1');
?>
<style type="text/css">
<!--
div.autocomplete {
position:absolute;
width:500px;
background-color:white;
border:1px solid #888;
margin:0;
padding:0;
}
div.autocomplete ul {
list-style-type:none;
margin:0;
padding:0;
}
div.autocomplete ul li.selected { background-color: #ffb;}
div.autocomplete ul li {
list-style-type:none;
display:block;
margin:0;
padding:2px;
height:15px;
cursor:pointer;
}
-->
</style>
<form method='post'>
<table width='600'>
<tr>
<td align='right'>Name:</td>
<td>
<input type="text" id="last_name" name="last_name" size='40' /><br />
<div id="last_name_choices" class="autocomplete"></div>
</td>
</tr>
<tr>
<td align='right'>People Num:</td>
<td><input type='text' id='people_num' name='people_num'></td>
</tr>
</table>
</form>
<SCRIPT TYPE="text/javascript" LANGUAGE="javascript">
// <![CDATA[
new Ajax.Autocompleter("last_name", "last_name_choices", "ajaxGetNames.php", {
paramName: "nameText",
minChars: 1,
frequence: 0.4,
parameters: 'sn=1&sch=1413',
afterUpdateElement : getSelectionId
});
function getSelectionId(text, li) {
alert(li.id);
}
// ]]>
</SCRIPT>
<?php
endTemplate();
?>
+80
View File
@@ -0,0 +1,80 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active");
exit;
}
include "include/ajax.csrfToken.php";
// Set default timezone
date_default_timezone_set("Canada/Pacific");
$now = date("Y-m-d H:i:s",time());
$return_data = array();
$moduleName = "ajax.updateGrade.php";
// startLog($moduleName);
// Get parameters
$record_num = intval($_GET['record_num']);
$class_num = intval($_GET['class_num']);
$gfield = $_GET['gfield'];
// Ensure parameters are valid
writeLog("record_num: $record_num");
writeLog("class_num: $class_num");
writeLog("gfield: $gfield");
if (!is_numeric($record_num)) logExit("record_num is not numeric\n");
if (!is_numeric($class_num)) logExit("class_num is not numeric\n");
if ($record_num == 0) logExit("record_num is zero\n");
if ($class_num == 0) logExit("class_num is zero\n");
// Validate the class
$class = "";
switch ($class_num) {
case 1:
$class = getLanguageText('TEXT-STAFF');
break;
case 2:
$class = getLanguageText('TEXT-PARENT');
break;
default:
$query = "SELECT * FROM classes WHERE school_num = $school_num AND record_num = $class_num";
writeLog($query);
$r = db_query($query);
if (db_num_rows($r)) {
$row = db_fetch_assoc($r);
$class = $row[$gfield];
}
break;
}
writeLog("Class: $class");
if (strlen($class)) {
// Update people entry
$query = "UPDATE people SET class_num = $class_num WHERE school_num = $school_num AND record_num = $record_num";
writeLog("query: $query\n");
db_query($query);
}
$return['ajax_return_code'] = 0;
$return['class'] = $class;
echo(json_encode($return));
writeLog("completed");
?>
+68
View File
@@ -0,0 +1,68 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active");
exit;
}
include "include/ajax.csrfToken.php";
$moduleName = "ajax.userSearch.php";
// startLog($moduleName);
// Get search text
$text = trim(strtolower($_GET['term']));
$words = explode(' ',$text);
writeLog("text: $text\n");
// Format where clause
$swhere = "";
for ($i = 0; $i < count($words); $i++) {
$word = db_escape_string($words[$i]);
$uwhere .= "AND (userid LIKE '$word%' " .
"OR first_name LIKE '$word%' " .
"OR last_name LIKE '$word%' " .
"OR email LIKE '$word%' " .
"OR schools.city LIKE '$word%' " .
"OR schools.province LIKE '$word%' " .
"OR phone LIKE '%$word%') ";
}
// Get matching user records
$query = "SELECT DISTINCT school_num,userid,first_name,last_name,school_name,schools.province,users.record_num FROM users,schools " .
"WHERE users.school_num = schools.record_num " .
"AND schools.status IN ('Active','Inactive','Special') " .
$uwhere .
"ORDER BY last_name,first_name";
writeLog("query: $query\n");
$results = db_query($query);
// Format data for return
$return_data = array();
$num_records = db_num_rows($results);
if ($num_records > 0) {
writeLog("records: $num_records\n");
$return_data[] = array();
while ($row = db_fetch_assoc($results)) {
extract($row);
$num = db_getVal("SELECT count(*) FROM people WHERE school_num = $school_num AND user_num = $record_num");
$return_data[] = array("value" => "$first_name $last_name ($num) - $school_name ($province)",
"user_num" => $record_num);
}
}
writeLog("completed\n");
echo(json_encode($return_data));
return false;
?>
+53
View File
@@ -0,0 +1,53 @@
<?php
function dataValidation($request) {
global $school_num;
extract($request,EXTR_PREFIX_ALL,"P");
$error_message = "";
// Check if the user id is provided
if (strlen($P_userid) == 0) {
$error_message = getLanguageText('ERRORMSG-USER-ID-REQUIRED') . " - $P_userid";
return($error_message);
}
// Check for an invalid user id
if ($P_userid != db_escape_string($P_userid)) {
$error_message = getLanguageText('ERRORMSG-RESTRICTED-USER-ID');
return($error_message);
}
if (strpos($userid,' ') !== false) {
$error_message = getLanguageText('ERRORMSG-INVALID-USER-ID');
return($error_message);
}
if ($userid == 'superuser' || $userid == 'admin') {
$error_message = getLanguageText('ERRORMSG-RESTRICTED-USER-ID');
return($error_message);
}
// Check if the user id is already in use
$userid = db_escape_string($P_userid);
$query = "select * from users " .
"where school_num = $school_num " .
"and userid = '" . db_escape_string($userid) . "'";
$results = db_query($query);
if (db_num_rows($results) > 0) {
$error_message = getLanguageText('ERRORMSG-USER-ID-NOT-AVAILABLE');
return($error_message);
}
// Check for missing fields
$requiredFields = array('password','type','status');
for ($i = 0; $i < count($requiredFields); $i++) {
$field = $requiredFields[$i];
if (strlen($request[$field]) == 0) {
$error_message = getLanguageText('ERRORMSG-MISSING-DATA');
return($error_message);
}
}
return(0);
}
?>
+59
View File
@@ -0,0 +1,59 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active\n");
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
$searchTerm = db_escape_string(urldecode($_REQUEST['nameText']));
$schoolId = db_escape_string($_REQUEST['sn']);
$scheduleNum = db_escape_string($_REQUEST['sch']);
// find all matching students
$rconds = "p.school_num='{$schoolId}' AND p.user_num = u.record_num AND";
if (strlen($searchTerm) == 1) {
$sText = "'{$searchTerm}%'";
} else {
$sText = "'%{$searchTerm}%'";
$sText = "'{$searchTerm}%'";
}
$conds = "$rconds (p.first_name LIKE $sText OR p.last_name LIKE $sText OR u.last_name LIKE $sText OR u.home_phone LIKE $sText)";
$order = "p.last_name ASC, p.first_name ASC";
$r = db_query("SELECT p.* FROM people AS p, users AS u WHERE {$conds} ORDER BY $order");
$results = "<ul>\n";
while ($d = db_fetch_array($r, MYSQL_ASSOC)) {
extract($d, EXTR_PREFIX_ALL, 's');
if ($s_people_type == 'Student') {
$u = db_query("SELECT * FROM users WHERE record_num = $s_user_num");
$ur = db_fetch_array($u, MYSQL_ASSOC);
extract($ur, EXTR_PREFIX_ALL, 'u');
}
// Check if this person has an order
$query = "SELECT count(*) FROM hotlunch_order_header " .
"WHERE school_num = $schoolId " .
"AND ordered_by_num = $s_record_num " .
"AND schedule_num = $scheduleNum";
$num_orders = db_getVal($query);
$has_order = "No";
if ($num_orders == 1) $has_order = "Yes";
$results .= "<li id='$s_record_num'>$s_first_name $s_last_name</li>\n";
}
$results .= "</ul>\n";
echo($results);
?>
+64
View File
@@ -0,0 +1,64 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active",$moduleName);
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
if (!in_array($_SESSION['UserInfo']['type'],array('SuperUser','System Administrator','Application Administrator','Schedule Team','Financial','Financial Team'))) {
logExit("Invalid user access\n");
exit;
}
$searchTerm = db_escape_string(urldecode($_GET['s']));
$schoolId = db_escape_string($_GET['sn']);
$scheduleNum = db_escape_string($_GET['sch']);
$results = array();
// find all matching students
$words = explode(' ',$searchTerm);
$conds = "";
for ($i = 0; $i < count($words); $i++) {
$word = db_escape_string(trim($words[$i]));
$searchSql = "{$word}%";
$conds = "type='Parent' AND school_num='{$schoolId}' AND (last_name LIKE \"{$searchSql}\" OR userid LIKE \"{$searchSql}\" OR email LIKE \"{$searchSql}\")";
}
$order = "last_name ASC, first_name ASC";
$r = db_query("SELECT * FROM users WHERE {$conds} ORDER BY $order");
while ($d = db_fetch_array($r, MYSQL_ASSOC)) {
extract($d, EXTR_PREFIX_ALL, 'p');
// Encode the values for transmission
$p_first_name = preg_replace('/\+/',' ',urlencode($p_first_name));
$p_last_name = preg_replace('/\+/',' ',urlencode($p_last_name));
$p_userid = preg_replace('/\+/',' ',urlencode($p_userid));
// Encode the users array
$d['first_name'] = preg_replace('/\+/',' ',urlencode($d['first_name']));
$d['last_name'] = preg_replace('/\+/',' ',urlencode($d['last_name']));
$d['userid'] = preg_replace('/\+/',' ',urlencode($d['userid']));
$results[] = array_merge($d, array(
'id' => $p_record_num,
'account' => $p_userid,
'name' => trim("{$p_first_name} {$p_last_name}"),
'email' => $p_email,
'phone' => $p_home_phone
));
}
echo(json_encode($results));
?>
+126
View File
@@ -0,0 +1,126 @@
<?php
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active",$moduleName);
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
if (!in_array($_SESSION['UserInfo']['type'],array('SuperUser','System Administrator','Application Administrator','Schedule Team','Financial','Financial Team'))) {
logExit("Invalid user access\n");
exit;
}
$moduleName = "ajaxSearchStudents.php";
// startLog($moduleName);
$searchTerm = db_escape_string(urldecode($_GET['s']));
$schoolId = db_escape_string($_GET['sn']);
$baseSchool = db_escape_string(urldecode($_GET['bn']));
$scheduleNum = db_escape_string($_GET['sch']);
$results = array();
// find all matching students
$rconds = "p.school_num='{$baseSchool}' AND p.user_num = u.record_num ";
$rconds = "p.school_num='{$baseSchool}' ";
if (strlen($searchTerm) == 1) {
$sText = "'" . db_escape_string($searchTerm) . "%'";
$sTextB = "'" . db_escape_string($searchTerm) . "%'";
$nconds = "";
if (is_numeric($searchTerm)) $nconds = " OR p.record_num = $searchTerm";
// $conds = "AND (p.first_name LIKE $sText OR p.last_name LIKE $sText OR u.last_name LIKE $sText OR u.home_phone LIKE $sTextB OR student_number LIKE $sText $nconds) ";
$conds = "AND (p.first_name LIKE $sText OR p.last_name LIKE $sText OR student_number LIKE $sText $nconds) ";
} else {
$words = explode(' ',$searchTerm);
$conds = "";
for ($i = 0; $i < count($words); $i++) {
$word = trim($words[$i]);
$sText = "'" . db_escape_string($word) . "%'";
$sTextB = "'%" . db_escape_string($word) . "%'";
$nconds = "";
if (is_numeric($word)) $nconds = " OR p.record_num = $word";
// $conds .= "AND (p.first_name LIKE $sText OR p.last_name LIKE $sText OR u.last_name LIKE $sText OR u.home_phone LIKE $sTextB OR student_number LIKE $sText $nconds) ";
$conds .= "AND (p.first_name LIKE $sText OR p.last_name LIKE $sText OR student_number LIKE $sText $nconds) ";
}
}
$conds = "$rconds $conds";
$order = "p.last_name ASC, p.first_name ASC";
$q = "SELECT p.* FROM people AS p LEFT JOIN users AS u ON p.user_num = u.record_num WHERE p.status != 'Inactive' AND {$conds} ORDER BY $order";
// writeLog("query: $q\n");
$r = db_query($q);
while ($d = db_fetch_array($r, MYSQL_ASSOC)) {
extract($d, EXTR_PREFIX_ALL, 's');
$ur = array();
if ($s_people_type == 'Student') {
$s_user_num = intval($s_user_num);
$u = db_query("SELECT * FROM users WHERE record_num = $s_user_num");
if (db_num_rows($u)) {
$ur = db_fetch_array($u, MYSQL_ASSOC);
extract($ur, EXTR_PREFIX_ALL, 'u');
}
}
// Check if this person has an order
if ($scheduleNum > 0) {
$query = "SELECT count(*) FROM hotlunch_order_header " .
"WHERE school_num = $schoolId " .
"AND ordered_by_num = $s_record_num " .
"AND schedule_num = $scheduleNum";
$num_orders = db_getVal($query);
$has_order = false;
if ($num_orders == 1) $has_order = true;
}
// Encode the name and user id for transmission
$s_first_name = preg_replace('/\+/',' ',urlencode($s_first_name));
$s_last_name = preg_replace('/\+/',' ',urlencode($s_last_name));
$u_userid = preg_replace('/\+/',' ',urlencode($u_userid));
// Encode the user array values
$parent = preg_replace('/\+/',' ',urlencode($ur['first_name'] . ' ' . $ur['last_name']));
$ur['first_name'] = preg_replace('/\+/',' ',urlencode($ur['first_name']));
$ur['last_name'] = preg_replace('/\+/',' ',urlencode($ur['last_name']));
if ($s_people_type == 'Staff') $parent = "Staff";
// Encode the people array values
$d['first_name'] = preg_replace('/\+/',' ',urlencode($d['first_name']));
$d['last_name'] = preg_replace('/\+/',' ',urlencode($d['last_name']));
// Ensure that a price category is returned
if (strlen($s_menu_price_category) == 0) $s_menu_price_category = 'Regular';
$results[] = array_merge($d, array(
'user' => $ur,
'id' => $s_record_num,
'name' => "{$s_first_name} {$s_last_name}",
'parent' => $parent,
'phone' => $u_home_phone,
'hasOrder' => $has_order,
'balance' => $u_balance,
'birthdate' => $s_birthdate,
'age' => $s_age,
'sex' => $s_sex,
'grade' => $s_school_grade,
'student_number' => $s_student_number,
'price_category' => $s_menu_price_category
));
}
echo(json_encode($results));
?>
+78
View File
@@ -0,0 +1,78 @@
<?php
// include("db.php");
$ValidAccess = 2010;
$sessionName = 'hotlunch';
session_name($sessionName);
session_start();
include "include/globals.php";
if (SessionActive() != 1 || ! UserLoggedIn()) {
logExit("Session is not active",$moduleName);
exit;
}
// CSRF token validation
include "include/ajax.csrfToken.php";
if (!in_array($_SESSION['UserInfo']['type'],array('SuperUser','System Administrator','Application Administrator','Schedule Team','Financial','Financial Team'))) {
logExit("Invalid user access\n");
exit;
}
$searchTerm = db_escape_string(urldecode($_GET['s']));
$schoolId = db_escape_string($_GET['sn']);
$baseSchool = db_escape_string(urldecode($_GET['bn']));
$results = array();
// find all matching students
$rconds = "u.school_num='{$baseSchool}' AND";
if (strlen($searchTerm) == 1) {
$sText = "'" . db_escape_string($searchTerm) . "%'";
$sTextB = $sText;
} else {
$sTextB = "'%" . db_escape_string($searchTerm) . "%'";
$sText = "'" . db_escape_string($searchTerm) . "%'";
}
$nConds = "";
if (is_numeric($searchTerm)) $nConds = "OR u.record_num = $searchTerm";
$conds = "$rconds (u.first_name LIKE $sText OR u.last_name LIKE $sText OR u.userid LIKE $sTextB OR u.email LIKE $sTextB OR u.email2 LIKE $sTextB OR u.email3 LIKE $sTextB OR u.home_phone LIKE $sTextB $nConds)";
$order = "u.last_name ASC, u.first_name ASC";
$r = db_query("SELECT u.* FROM users AS u WHERE {$conds} ORDER BY $order");
while ($d = db_fetch_array($r, MYSQL_ASSOC)) {
extract($d, EXTR_PREFIX_ALL, 'u');
$num_students = db_getVal("SELECT count(*) FROM people WHERE school_num = $baseSchool AND user_num = $u_record_num");
// Encode the name and user id for transmission
$u_name = preg_replace('/\+/',' ',urlencode($u_first_name.' '.$u_last_name));
$u_userid = preg_replace('/\+/',' ',urlencode($u_userid));
// Encode the user array values
$parent = preg_replace('/\+/',' ',urlencode($ur['first_name'] . ' ' . $ur['last_name']));
$ur['first_name'] = preg_replace('/\+/',' ',urlencode($ur['first_name']));
$ur['last_name'] = preg_replace('/\+/',' ',urlencode($ur['last_name']));
if ($s_people_type == 'Staff') $parent = "Staff";
// Encode the people array values
$d['first_name'] = preg_replace('/\+/',' ',urlencode($d['first_name']));
$d['last_name'] = preg_replace('/\+/',' ',urlencode($d['last_name']));
$results[] = array(
'record_num' => $u_record_num,
'name' => $u_name,
'userid' => $u_userid,
'phone' => $u_home_phone,
'type' => $u_type,
'students' => $num_students
);
}
echo(json_encode($results));
?>