255 lines
9.4 KiB
PHP
255 lines
9.4 KiB
PHP
<?php
|
|
$ValidAccess = 2010;
|
|
require_once("include/globals.php");
|
|
|
|
|
|
$moduleName = "ajax.DataRecord.Fetch.php";
|
|
// if ($_SESSION['UserInfo']['type'] == 'SuperUser') startLog($moduleName);
|
|
|
|
|
|
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();
|
|
|
|
|
|
// 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");
|
|
writeLog("table_name: $table_name");
|
|
if (isset($record_num)) writeLog("record_num: $record_num");
|
|
|
|
|
|
// Validate parameters
|
|
if (strlen($table_name) == 0) logExit("Invalid Access");
|
|
|
|
|
|
// Ensure numeric parameters are numeric
|
|
if (!isset($record_num) || !is_numeric($record_num)) logExit("Invalid Access");
|
|
if ($record_num == 0) logExit("record_num is zero");
|
|
|
|
|
|
$resultsRow = array();
|
|
|
|
// Get data record
|
|
switch ($table_name) {
|
|
case '_form_actions':
|
|
case '_form_fields':
|
|
case '_form_permission':
|
|
case 'schools':
|
|
case 'resellers':
|
|
$query = "SELECT * FROM $table_name WHERE record_num = $record_num";
|
|
break;
|
|
|
|
case 'people':
|
|
case 'users':
|
|
$query = "SELECT * FROM $table_name WHERE school_num = $base_school_num AND 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");
|
|
|
|
$results = db_query($query);
|
|
if (db_num_rows($results)) {
|
|
$resultsRow = db_fetch_assoc($results);
|
|
$resultsRow['ajax_return_code'] = 1;
|
|
$resultsRow['delete_flag'] = 'Y';
|
|
|
|
//
|
|
// Get additional data if necessary or perform post-processing
|
|
//
|
|
switch ($table_name) {
|
|
case 'staff':
|
|
if ($resultsRow['entry_type'] == 'Staff') {
|
|
$user_num = $resultsRow['user_num'];
|
|
$query = "SELECT type FROM users WHERE school_num = $base_school_num AND record_num = $user_num";
|
|
writeLog("query: $query");
|
|
$resultsRow['user_type'] = db_getVal($query);
|
|
}
|
|
break;
|
|
|
|
case 'users':
|
|
if ($resultsRow['type'] == 'Parent') {
|
|
$user_num = $resultsRow['record_num'];
|
|
$query = "SELECT count(*) FROM people WHERE school_num = $base_school_num AND user_num = $user_num AND people_type = 'Student'";
|
|
$resultsRow['num_students'] = db_getVal($query);
|
|
if ($resultsRow['num_students'] > 0) $resultsRow['delete_flag'] = 'N';
|
|
}
|
|
|
|
// Get people allergies
|
|
$query = "SELECT * FROM user_sites WHERE school_num = $base_school_num AND user_num = $record_num";
|
|
$results = db_query($query);
|
|
$user_sites = array();
|
|
while ($r = db_fetch_assoc($results)) {
|
|
$user_sites[] = $r['site_num'];
|
|
}
|
|
$resultsRow['selected_user_sites'] = $user_sites;
|
|
break;
|
|
|
|
case 'people':
|
|
if (!array_key_exists('class_info', $resultsRow)) $resultsRow['class_info'] = '';
|
|
if (!array_key_exists('status_info', $resultsRow)) $resultsRow['status_info'] = '';
|
|
if (!array_key_exists('people_num', $resultsRow)) $resultsRow['people_num'] = $record_num;
|
|
|
|
writeLog($resultsRow['people_type']);
|
|
writeLog("class_name: ".$resultsRow['class_num']);
|
|
writeLog("meal_location: ".$resultsRow['meal_location']);
|
|
|
|
if ($resultsRow['people_type'] == 'Student') {
|
|
if (array_key_exists('class_num', $resultsRow) && intval($resultsRow['class_num']) > 0) {
|
|
$resultsRow['class-info'] = getClassInfo(intval($resultsRow['class_num']));
|
|
}
|
|
else {
|
|
$resultsRow['class_num'] = 3;
|
|
}
|
|
$resultsRow['status-info'] = $resultsRow['status'];
|
|
|
|
// Get people allergies
|
|
$query = "SELECT * FROM allergies WHERE school_num = $school_num AND people_num = $record_num";
|
|
$results = db_query($query);
|
|
$allergies = array();
|
|
while ($r = db_fetch_assoc($results)) {
|
|
$allergies[] = $r['allergen_num'];
|
|
}
|
|
$resultsRow['student_allergies'] = $allergies;
|
|
|
|
// Get people categories
|
|
$query = "SELECT * FROM people_categories WHERE school_num = $school_num AND people_num = $record_num";
|
|
$results = db_query($query);
|
|
$student_categories = array();
|
|
while ($r = db_fetch_assoc($results)) {
|
|
$student_categories[] = $r['category_num'];
|
|
}
|
|
$resultsRow['student_categories'] = $student_categories;
|
|
|
|
$orders = '';
|
|
$results = db_query("SELECT * FROM hotlunch_order_header WHERE school_num = $school_num AND ordered_by_num = $record_num ORDER BY added_time");
|
|
if (db_num_rows($results)) {
|
|
$orders .= "<table width='98%' cellpadding='2' cellspacing='1' class='content-table' align='center'>";
|
|
$orders .= "<tr class='heading'>";
|
|
$orders .= "<td align='left' width='230'><b>".getLanguageText('TEXT-SCHEDULE')."</b></td>";
|
|
$orders .= "<td align='right'><b>".getLanguageText('TEXT-TOTAL')."</b></td>";
|
|
$orders .= "<td align='center'><b>".getLanguageText('TEXT-STATUS')."</b></td>";
|
|
$orders .= "</tr>";
|
|
|
|
while ($r = db_fetch_assoc($results)) {
|
|
$schedule_num = $r['schedule_num'];
|
|
$schedule_name = db_getVal("SELECT schedule_name FROM hotlunch_schedules WHERE school_num = $school_num AND record_num = $schedule_num");
|
|
$order_total = '$'.number_format($r['order_total'],2);
|
|
$order_status = $r['status'];
|
|
|
|
$orders .= "<tr>";
|
|
$orders .= "<td align='left'>$schedule_name</td>";
|
|
$orders .= "<td align='right'>$order_total</td>";
|
|
$orders .= "<td align='center'>$order_status</td>";
|
|
$orders .= "</tr>";
|
|
}
|
|
|
|
$orders .= "</table>";
|
|
}
|
|
$resultsRow['student_orders'] = $orders;
|
|
}
|
|
// writeLog(print_r($resultsRow, true));
|
|
break;
|
|
|
|
case 'formatted_content':
|
|
$resultsRow['content_id_display'] = getLanguageText('ID-'.$resultsRow['content_id']);
|
|
$resultsRow['content'] = str_replace('admin/','',html_entity_decode($resultsRow['content']));
|
|
break;
|
|
|
|
case 'suppliers':
|
|
$query = "SELECT * FROM users WHERE school_num = $base_school_num AND supplier_num = $record_num";
|
|
writeLog($query);
|
|
$results = db_query($query);
|
|
writeLog(db_num_rows($results));
|
|
if (db_num_rows($results)) {
|
|
$user = db_fetch_assoc($results);
|
|
$resultsRow['supplier_userid'] = $user['userid'];
|
|
writeLog($resultsRow['supplier_userid']);
|
|
}
|
|
break;
|
|
|
|
case 'hotlunch_menu_dates':
|
|
$resultsRow['select_classes'] = 'AllClasses';
|
|
$selected_classes = array();
|
|
$query = "SELECT * FROM hotlunch_menu_dates_classes WHERE school_num = $school_num AND menu_num = $record_num";
|
|
$results = db_query($query);
|
|
while ($r = db_fetch_assoc($results)) {
|
|
$selected_classes[] = $r['class_num'];
|
|
}
|
|
$resultsRow['selected_classes'] = $selected_classes;
|
|
if (count($selected_classes)) $resultsRow['select_classes'] = 'SelectedClasses';
|
|
writeLog(print_r($resultsRow, true));
|
|
break;
|
|
|
|
case 'hotlunch_menu_items':
|
|
// startLog('hotlunch_menu_items fetch');
|
|
$query = "SELECT * FROM hotlunch_menu_products " .
|
|
"WHERE school_num IN ($supplier_school_num,$school_num) " .
|
|
"AND menu_item_num = $record_num " .
|
|
"ORDER BY product_sequence";
|
|
writeLog($query);
|
|
$item_products = db_query($query);
|
|
$count = 0;
|
|
while ($r = db_fetch_assoc($item_products)) {
|
|
$resultsRow["qty$count"] = $r['supplier_product_qty'];
|
|
$resultsRow["product$count"] = $r['supplier_product_num'];
|
|
$count++;
|
|
}
|
|
|
|
$resultsRow['num_alt_prices'] = $resultsRow['number_of_alternate_prices'];
|
|
writeLog(print_r($resultsRow,true));
|
|
break;
|
|
|
|
case 'schools':
|
|
$error = false;
|
|
$url = $resultsRow['url'];
|
|
$resultsRow['url'] = $url;
|
|
|
|
if ($url == 'hotlunches.hotlunches.net' || $url == 'www.hotlunches.net') {
|
|
$resultsRow['ajax_return_code'] = -1;
|
|
$resultsRow['ajax_return_message'] = "Unable to process school - Invalid URL: $url";
|
|
$error = true;
|
|
}
|
|
|
|
// Check for a duplicate URL
|
|
if (!$error) {
|
|
$rnum = $resultsRow['record_num'];
|
|
$url = db_escape_string($url);
|
|
$results = db_query("SELECT * FROM schools WHERE url = '$url' AND record_num != $rnum AND status IN ('Active','Special')");
|
|
if (db_num_rows($results) > 0) {
|
|
$resultsRow['ajax_return_code'] = -1;
|
|
$resultsRow['ajax_return_message'] = "Unable to process school - Duplicate URL: $url";
|
|
$error = true;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
else {
|
|
$resultsRow['ajax_return_code'] = 0;
|
|
}
|
|
|
|
echo(json_encode($resultsRow));
|
|
writeLog("completed");
|
|
|
|
?>
|