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

80 lines
3.6 KiB
PHP

<?php
include "db.php";
include "include/queuemail.php";
// Get 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);
if (db_num_rows($schools) > 0) {
while ($school = db_fetch_assoc($schools)) {
$school_name = $school['school_name'];
$school_num = $school['record_num'];
$default_language = $school['default_language'];
$inactive_hours = $school['delete_inactive_orders_hours'];
$cutoff = time() - 60 * 60 * $inactive_hours;
$max_cutoff = $cutoff - 60 * 60 * 24;
// Get orders to process
$orders = db_query("SELECT * FROM hotlunch_order_header WHERE school_num = $school_num AND status = 'Inactive' AND added_time BETWEEN $max_cutoff AND $cutoff");
if (db_num_rows($orders)) {
// Get email subject
$emailSubject = $school['delete_inactive_orders_email_subject'];
if (strlen($emailSubject) == 0) $emailSubject = getLanguageText('TEXT-INACTIVE-ORDER-HAS-BEEN-DELETED',$default_language);
// Setup reply address
$emailReply = $school['reply_description'];
$emailFrom = setReplyAddress($EmailReplyAddress);
while ($order = db_fetch_assoc($orders)) {
$ordered_by_num = $order['ordered_by_num'];
$schedule_num = $order['schedule_num'];
$added_time = $order['added_time'];
$order_num = $order['record_num'];
// Get schedule name
$schedule_name = db_getVal("SELECT schedule_name FROM hotlunch_schedules WHERE school_num = $school_num AND record_num = $schedule_num");
// Get student name
$results = db_query("SELECT * FROM people WHERE school_num = $base_school_num AND record_num = $ordered_by_num");
$person = db_fetch_assoc($results);
$ordered_by = $person['first_name'] . ' ' . $person['last_name'];
$user_num = $person['user_num'];
// Get user info
$results = db_query("SELECT * FROM users WHERE school_num = $base_school_num AND record_num = $user_num");
$user = db_fetch_assoc($results);
$name = $user['first_name'] . ' ' . $user['last_name'];
$emailTo = $user['email'];
// Format email message
$emailMessage = trim($school['delete_inactive_orders_email']);
$emailMessage = str_replace("{name}",$name,$emailMessage);
if (strlen($emailMessage)) $emailMessage .= "\n\n------------------------------\n";
$emailMessage .= getLanguageText('TEXT-ORDER-NUMBER',$default_language) . ': ' . sprintf("%09d",$order_num) ."\n";
$emailMessage .= getLanguageText('TEXT-SCHEDULE-TITLE',$default_language) . ': ' . $schedule_name ."\n";
$emailMessage .= getLanguageText('TEXT-ORDERED-BY',$default_language) . ': ' . $ordered_by . "\n";
$emailMessage .= "\n";
// Send email
QueueEmail($emailTo, $emailFrom, $emailSubject, $emailMessage, $emailReply, $emailRecipient);
// Delete order
logOrderChange($order_num, "INACTIVE ORDER AUTOMATICALLY DELETED", "delete-inactive-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");
db_query("DELETE FROM user_account WHERE school_num = $school_num AND user_num = $user_num AND order_num = $order_num");
}
}
}
}
?>