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

171 lines
5.7 KiB
PHP

<?php
$ValidAccess = 2010;
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.DataRecord.Delete.php";
// startLog($moduleName);
// 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 'supplier_products':
$query = "UPDATE supplier_products SET status = 'Inactive' WHERE school_num = $school_num AND record_num = $record_num";
break;
case 'people':
case 'users':
$query = "DELETE FROM $table_name WHERE school_num = $base_school_num AND record_num = $record_num";
break;
case 'school_documents':
$query = "SELECT * FROM school_documents WHERE school_num = $school_num AND record_num = $record_num";
$results = db_query($query);
$row = db_fetch_assoc($results);
$doc_path = sprintf("%08d",$school_num);
$output_dir = "files/$doc_path/image/";
if (file_exists($output_dir . $row['document_name'])) unlink($output_dir . $row['document_name']);
// Delete record
$query = "DELETE FROM school_documents WHERE school_num = $school_num AND record_num = $record_num";
writeLog("query: $query");
break;
case 'resellers':
$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);
//
// Post processing
//
switch ($table_name) {
case 'people':
db_query("UPDATE classes SET teacher1 = NULL WHERE school_num = $school_num AND teacher1 = $record_num");
db_query("UPDATE classes SET teacher2 = NULL WHERE school_num = $school_num AND teacher2 = $record_num");
db_query("UPDATE classes SET teacher3 = NULL WHERE school_num = $school_num AND teacher3 = $record_num");
db_query("UPDATE classes SET teacher4 = NULL WHERE school_num = $school_num AND teacher4 = $record_num");
db_query("UPDATE classes SET teacher5 = NULL WHERE school_num = $school_num AND teacher5 = $record_num");
break;
case 'users':
db_query("DELETE FROM contacts WHERE school_num = $school_num AND user_num = $record_num");
break;
case 'hotlunch_menu_dates':
$query = "DELETE FROM hotlunch_menu_products " .
"WHERE school_num = $school_num " .
"AND menu_item_num IN (SELECT record_num FROM hotlunch_menu_items WHERE school_num = $school_num AND menu_num = $record_num)";
db_query($query);
db_query("DELETE FROM hotlunch_menu_items WHERE school_num = $school_num AND menu_num = $record_num");
break;
case 'hotlunch_menu_items':
$menu_item_num = $record_num;
writeLog("menu_item_num: $menu_item_num");
$query = "SELECT * FROM hotlunch_menu_items WHERE school_num = $school_num AND record_num = $menu_item_num";
writeLog($query);
$results = db_query($query);
$row = db_fetch_assoc($results);
// Log record value changes
$row['logged_datetime'] = date("Y-m-d H:i:s",time());
$row['original_record_num'] = $record_num;
$row['record_action'] = 'Delete';
if (!array_key_exists('food_category', $row)) $row['food_category'] = 'General';
$ltable = new Table("hotlunch_menu_items_log");
$query = $ltable->BuildInsert($row);
writeLog($query);
db_query($query);
// Delete all menu products
$query = "DELETE FROM hotlunch_menu_products " .
"WHERE school_num = $school_num " .
"AND (menu_item_num = $menu_item_num " .
"OR menu_item_num IN (SELECT record_num FROM hotlunch_menu_items " .
"WHERE school_num = $school_num " .
"AND source_item = $menu_item_num))";
writeLog($query);
db_query($query);
// Delete menu items
$query = "DELETE FROM hotlunch_menu_items " .
"WHERE school_num = $school_num " .
"AND (record_num = $menu_item_num " .
"OR source_item = $menu_item_num)";
writeLog($query);
db_query($query);
break;
case 'classes':
db_query("UPDATE people SET class_num = 0 WHERE school_num = $school_num AND class_num = $record_num");
break;
case 'student_categories':
db_query("DELETE FROM people_categories WHERE school_num = $school_num AND category_num = $record_num");
break;
}
writeLog("$moduleName: complete\n");
$row['ajax_return_code'] = 1;
echo(json_encode($row));
?>