171 lines
5.7 KiB
PHP
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));
|
|
|
|
?>
|