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

149 lines
6.1 KiB
PHP

<?php
$BASEDIR = "/m/data1/app.hotlunches.net";
chdir($BASEDIR);
include "db.php";
include "include/school-functions.php";
include "include/queuemail.php";
$mode = "log-only";
$mode = "";
// Get text for email message
$orderNum = getLanguageText('TEXT-ORDER-NUMBER');
$orderedFor = getLanguageText('TEXT-ORDERED-FOR');
$scheduleTitle = getLanguageText('TEXT-SCHEDULE-TITLE');
$orderTotal = getLanguageText('TEXT-ORDER-TOTAL');
$orderDate = getLanguageText('TEXT-ORDER-DATE');
// Get set of schools to process
$query = "SELECT * FROM schools WHERE status IN ('Active','Linked') AND delete_inactive_orders_hours > 0 ORDER BY school_name";
$schools = db_query($query);
$time = time();
$cutoff_time = $time - 60 * 60 * 24 * 60;
$deleted_datetime = date("Y-m-d H:i:s",$time);
$deleteLog = "$deleted_datetime\n";
// Process each school
while ($row = db_fetch_assoc($schools)) {
extract($row);
$GLOBALS['school_record'] = $row;
$school_num = $record_num;
$base_school_num = $school_num;
$base_school_record = $row;
if ($status == 'Linked') {
$base_school_num = $linked_site;
$results = db_query("SELECT * FROM schools WHERE record_num = $base_school_num");
$base_school_record = db_fetch_array($results);
}
$emailFrom = setReplyAddress($support_email);
$fromName = $school_name . " - " . getLanguageText('TEXT-ORDER-DELETED');
$emailSubject = $delete_inactive_orders_email_subject;
$emailMessage = $delete_inactive_orders_email;
date_default_timezone_set($timezone);
$deleteLog .= "\n$delete_inactive_orders_hours - $school_name ($timezone)\n";
if (strlen($emailSubject) == 0) $emailSubject = getLanguageText('TEXT-ORDERS-DELETED-SUBJECT');
if (strlen($emailMessage) == 0) $emailMessage = getLanguageText('TEXT-ORDERS-DELETED-EMAIL');
$delete_time = $time - 60 * 60 * $delete_inactive_orders_hours;
// Get set of orders to delete
$query = "SELECT * FROM hotlunch_order_header WHERE school_num = $school_num AND status = 'Inactive' AND added_time BETWEEN $cutoff_time AND $delete_time";
$orders = db_query($query);
if (db_num_rows($orders)) {
$now = date($date_format.' '.$time_format,$time);
$msgLog = "$school_name\nOrders Deleted @ $now:\n";
$msgLog .= " - Delete Time: " . date("Y-m-d H:i",$delete_time) . "\n";
if ($mode == 'log-only') $msgLog .= " - $query\n";
// Process each order
while ($order = db_fetch_assoc($orders)) {
$order_num = $order['record_num'];
$ordered_by_num = $order['ordered_by_num'];
$schedule_num = $order['schedule_num'];
$added_time = $order['added_time'];
$order_total = $currency_symbol . $order['order_total'];
$added_datetime = date($date_format.' '.$time_format,$added_time);
$results = db_query("SELECT * FROM hotlunch_schedules WHERE school_num = $school_num AND record_num = $schedule_num");
$row = db_fetch_assoc($results);
$schedule_name = $row['schedule_name'];
$status = $row['status'];
if ($status != 'Active') continue;
$results = db_query("SELECT * FROM people WHERE school_num = $base_school_num AND record_num = $ordered_by_num");
$row = db_fetch_assoc($results);
$ordered_by = $row['first_name'] . ' ' . $row['last_name'];
$user_num = $row['user_num'];
if ($user_num > 0) {
$results = db_query("SELECT * FROM users WHERE school_num = $base_school_num AND record_num = $user_num");
$row = db_fetch_assoc($results);
$emailTo = $row['email'];
$emailRecipient = $row['first_name'] . ' ' . $row['last_name'];
$emailMessage = $delete_inactive_orders_email . "\n\n";
$emailMessage .= sprintf("%30s: %s\n",$orderNum, "#$order_num") .
sprintf("%30s: %s\n",$orderedFor, $ordered_by) .
sprintf("%30s: %s\n",$scheduleTitle, $schedule_name) .
sprintf("%30s: %s\n",$orderTotal, $order_total) .
sprintf("%30s: %s\n",$orderDate, $added_datetime);
if ($mode != 'log-only') QueueEmail($emailTo, $emailFrom, $emailSubject, $emailMessage, $fromName, $emailRecipient);
$added = date("Y-m-d H:i",$added_time);
$msgLog .= sprintf(" %12s %10s - %s - %s (%s)\n","#$order_num:", $order_total, $schedule_name, $ordered_by, $added_datetime);
// Update order to deleted status
if ($mode != 'log-only') {
logOrderChange($order_num, "INACTIVE ORDER AUTOMATICALLY DELETED", "delete-orders.php");
db_query("DELETE FROM hotlunch_order_header WHERE school_num = $school_num AND record_num = $order_num");
db_query("DELETE FROM hotlunch_order_items WHERE school_num = $school_num AND order_num = $order_num");
// Update user account to delete line items
db_query("DELETE FROM user_account " .
"WHERE school_num = $school_num " .
"AND user_num = $user_num " .
"AND order_num = $order_num");
$GLOBALS['school_num'] = $school_num;
calcMultiOrderDiscounts($user_num,$schedule_num,$school_num);
}
}
}
$emailTo = $emailFrom;
$emailRecipient = $fromName;
$emailSubject = $school_name . ' - ' . getLanguageText('TEXT-ORDERS-DELETED');
$emailFrom = "support@hotlunches.net";
$fromName = getLanguageText('TEXT-ORDERS-DELETED');
$emailMessage = $msgLog;
if ($mode != 'log-only') QueueEmail($emailTo, $emailFrom, $emailSubject, $emailMessage, $fromName);
$emailTo = "support@hotlunches.net";
if ($mode != 'log-only') QueueEmail($emailTo, $emailFrom, $emailSubject, $emailMessage, $fromName);
$deleteLog .= $msgLog;
}
}
$emailTo = "support@hotlunches.net";
$emailRecipient = "Support";
$emailFrom = "support@hotlunches.net";
$fromName = "Support";
$emailSubject = getLanguageText('TEXT-ORDERS-DELETED');
$emailMessage = $deleteLog;
QueueEmail($emailTo, $emailFrom, $emailSubject, $emailMessage, $fromName);
?>