First Commit
This commit is contained in:
1 parent
5eb9dd037d
commit
2e62c0e60b
11877 files changed
+2035312
No files matched your search
@@ -0,0 +1,450 @@
|
||||
<?php
|
||||
$ValidAccess = 2010;
|
||||
require_once("include/globals.php");
|
||||
|
||||
$moduleName = "ajax.MenuDates.Update.php";
|
||||
// if ($_SESSION['UserInfo']['type'] == 'SuperUser') startLog($moduleName);
|
||||
|
||||
|
||||
// CSRF token validation
|
||||
include "include/ajax.csrfToken.php";
|
||||
|
||||
|
||||
if (SessionActive() != 1 || ! UserLoggedIn()) {
|
||||
logExit("Session is not active",$moduleName);
|
||||
exit();
|
||||
}
|
||||
|
||||
// Set userType
|
||||
$userType = "Parent";
|
||||
if (array_key_exists('type', $_SESSION['UserInfo']) && in_array($_SESSION['UserInfo']['type'],$AllAdminUserTypes)) $userType = "Admin";
|
||||
if ($userType != 'Admin') logExit('Invalid access');
|
||||
|
||||
|
||||
// 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('schedule_num', $_GET)) $schedule_num = intval($_GET['schedule_num']);
|
||||
if (array_key_exists('action', $_GET)) $action = db_escape_string($_GET['action']);
|
||||
|
||||
if (!isset($schedule_num)) logExit("Schedule Num is not set");
|
||||
if (!isset($action)) logExit("Action is not set");
|
||||
|
||||
|
||||
writeLog("schedule_num: $schedule_num");
|
||||
writeLog("action: $action");
|
||||
|
||||
|
||||
// Validate the schedule number
|
||||
$swhere = "";
|
||||
if ($_SESSION['UserInfo']['type'] == 'Supplier') $swhere = " and supplier_num = " . $_SESSION['UserInfo']['supplier_num'];
|
||||
$query = "select * from hotlunch_schedules " .
|
||||
"where record_num = $schedule_num " .
|
||||
"and school_num = $school_num $swhere";
|
||||
$results = db_query($query);
|
||||
|
||||
if (db_num_rows($results) == 0) {
|
||||
$return_data['error_message'] = getLanguageText('ERRORMSG-INVALID-SCHEDULE-NUM');
|
||||
$return_data['ajax_return_code'] = -1;
|
||||
echo(json_encode($return_data));
|
||||
logExit($error_message);
|
||||
exit();
|
||||
}
|
||||
|
||||
$hotlunch_schedule = db_fetch_array($results);
|
||||
$return_data['reload_data'] = 'Y';
|
||||
$return_data['ajax_return_code'] = 0;
|
||||
$return_data['ajax_message'] = '';
|
||||
|
||||
|
||||
switch ($action) {
|
||||
case 'delete-all-menus':
|
||||
$query = "DELETE FROM hotlunch_menu_items " .
|
||||
"WHERE school_num = $school_num " .
|
||||
"AND menu_num IN (SELECT record_num FROM hotlunch_menu_dates " .
|
||||
"WHERE school_num = $school_num " .
|
||||
"AND schedule_num = $schedule_num)";
|
||||
db_query($query);
|
||||
|
||||
$query = "DELETE FROM hotlunch_menu_dates " .
|
||||
"WHERE school_num = $school_num " .
|
||||
"AND schedule_num = $schedule_num";
|
||||
db_query($query);
|
||||
break;
|
||||
|
||||
case 'delete-selected-menus':
|
||||
if (array_key_exists('selected_menus', $_GET)) $selected_menus = db_escape_string($_GET['selected_menus']);
|
||||
if (!isset($selected_menus) || strlen($selected_menus) == 0) {
|
||||
$return_data['error_message'] = getLanguageText('ERRORMSG-NO-MENU-DATES-SELECTED');
|
||||
$return_data['ajax_return_code'] = -1;
|
||||
echo(json_encode($return_data));
|
||||
logExit($error_message);
|
||||
exit();
|
||||
}
|
||||
|
||||
$query = "DELETE FROM hotlunch_menu_items " .
|
||||
"WHERE school_num = $school_num " .
|
||||
"AND menu_num IN ($selected_menus)";
|
||||
writeLog($query);
|
||||
db_query($query);
|
||||
|
||||
$query = "DELETE FROM hotlunch_menu_dates " .
|
||||
"WHERE school_num = $school_num " .
|
||||
"AND schedule_num = $schedule_num " .
|
||||
"AND record_num IN ($selected_menus)";
|
||||
writeLog($query);
|
||||
db_query($query);
|
||||
break;
|
||||
|
||||
case 'generate-menus':
|
||||
// Process lunch menu dates
|
||||
$menu_dates = new Table("hotlunch_menu_dates");
|
||||
|
||||
if (strlen($hotlunch_schedule['lunch_days']) == 0) {
|
||||
$error_message = getLanguageText('ERRORMSG-NO-MENU-DATES-DEFINED');
|
||||
$return_data['error_message'] = $error_message;
|
||||
$return_data['ajax_return_code'] = -1;
|
||||
echo(json_encode($return_data));
|
||||
logExit($error_message);
|
||||
exit();
|
||||
}
|
||||
|
||||
// writeLog($hotlunch_schedule['lunch_days']);
|
||||
$lunch_days = explode(",",$hotlunch_schedule['lunch_days']);
|
||||
|
||||
$schedule_start_date = $hotlunch_schedule['schedule_start_date'];
|
||||
$schedule_end_date = $hotlunch_schedule['schedule_end_date'];
|
||||
$processing_date = $hotlunch_schedule['schedule_start_date'];
|
||||
$processing_time = strtotime($processing_date) + 12 * 60 * 60;
|
||||
|
||||
$newDays = 0;
|
||||
$sequence = intval(db_getVal("SELECT max(sequence) FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num"));
|
||||
|
||||
// writeLog("processing_date: $processing_date");
|
||||
// writeLog("schedule_end_date: $schedule_end_date");
|
||||
|
||||
while ($processing_date <= $schedule_end_date) {
|
||||
$day = date("D",$processing_time);
|
||||
// writeLog("day: $day");
|
||||
if (in_array($day,$lunch_days)) {
|
||||
$entry = initializeTableArray("hotlunch_menu_dates");
|
||||
|
||||
$entry['menu_title'] = $hotlunch_schedule['default_menu_title'];
|
||||
$entry['menu_date'] = $processing_date;
|
||||
$entry['menu_end_order_datetime'] = $processing_date . " 23:59:00";
|
||||
$entry['menu_end_order_datetime'] = $processing_date . " 09:00:00";
|
||||
$entry['order_format'] = $hotlunch_schedule['default_order_format'];
|
||||
|
||||
// Check if an entry exists for this date
|
||||
$query = "SELECT * FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num AND menu_date = '$processing_date'";
|
||||
// writeLog($query);
|
||||
$results = db_query($query);
|
||||
if (db_num_rows($results) == 0) {
|
||||
$sequence++;
|
||||
$entry['sequence'] = $sequence;
|
||||
|
||||
$query = $menu_dates->BuildInsert($entry);
|
||||
// writeLog($query);
|
||||
db_query($query);
|
||||
$newDays++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$processing_time += 24 * 60 * 60;
|
||||
$processing_date = date("Y-m-d",$processing_time);
|
||||
}
|
||||
|
||||
$return_data['ajax_message'] = getLanguageText('TEXT-MENU-DATES-CREATED') . ": $newDays";
|
||||
break;
|
||||
|
||||
case 'sort-menus-by-date':
|
||||
$query = "SELECT * FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num ORDER BY menu_type,menu_date";
|
||||
$results = db_query($query);
|
||||
$sequence = 1;
|
||||
while ($row = db_fetch_assoc($results)) {
|
||||
$rnum = $row['record_num'];
|
||||
db_query("UPDATE hotlunch_menu_dates SET sequence = $sequence WHERE record_num = $rnum");
|
||||
$sequence++;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'set-all-menus-to-checkboxes':
|
||||
$query = "UPDATE hotlunch_menu_dates " .
|
||||
"SET order_format = 'Checkbox' " .
|
||||
"WHERE school_num = $school_num " .
|
||||
"AND schedule_num = $schedule_num";
|
||||
writeLog($query);
|
||||
db_query($query);
|
||||
|
||||
$query = "UPDATE hotlunch_menu_items " .
|
||||
"SET menu_item_format = 'C' " .
|
||||
"WHERE school_num = $school_num " .
|
||||
"AND item_type = 'Item' " .
|
||||
"AND menu_num IN " .
|
||||
"(SELECT record_num FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num)";
|
||||
writeLog($query);
|
||||
db_query($query);
|
||||
|
||||
$return_data['reload_data'] = 'N';
|
||||
break;
|
||||
|
||||
case 'set-all-menus-to-quantity':
|
||||
$query = "UPDATE hotlunch_menu_dates " .
|
||||
"SET order_format = 'Quantity' " .
|
||||
"WHERE school_num = $school_num " .
|
||||
"AND schedule_num = $schedule_num";
|
||||
writeLog($query);
|
||||
db_query($query);
|
||||
|
||||
$query = "UPDATE hotlunch_menu_items " .
|
||||
"SET menu_item_format = 'Q' " .
|
||||
"WHERE school_num = $school_num " .
|
||||
"AND item_type = 'Item' " .
|
||||
"AND menu_num IN " .
|
||||
"(SELECT record_num FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num)";
|
||||
writeLog($query);
|
||||
db_query($query);
|
||||
|
||||
$return_data['reload_data'] = 'N';
|
||||
break;
|
||||
|
||||
case 'modify-menu-links':
|
||||
if (array_key_exists('new_menu_link', $_GET)) $new_link = db_escape_string($_GET['new_menu_link']);
|
||||
if (isset($new_link)) {
|
||||
switch ($new_link) {
|
||||
case 'Admin':
|
||||
case 'Paper':
|
||||
case 'All':
|
||||
case 'No':
|
||||
$query = "UPDATE hotlunch_menu_dates SET menu_link = '$new_link' " .
|
||||
"WHERE school_num = $school_num " .
|
||||
"AND schedule_num = $schedule_num " .
|
||||
"AND menu_link != 'No'";
|
||||
db_query($query);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$return_data['error_message'] = getLanguageText('ERRORMSG-INVALID-PARAMETERS');
|
||||
$return_data['ajax_return_code'] = -1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'change-menu-link':
|
||||
if (array_key_exists('menu_num', $_GET)) $menu_num = intval($_GET['menu_num']);
|
||||
if (array_key_exists('new_menu_link', $_GET)) $new_link = db_escape_string($_GET['new_menu_link']);
|
||||
|
||||
if (isset($new_link)) {
|
||||
switch ($new_link) {
|
||||
case 'Admin':
|
||||
case 'Paper':
|
||||
case 'All':
|
||||
case 'No':
|
||||
$query = "UPDATE hotlunch_menu_dates SET menu_link = '$new_link' " .
|
||||
"WHERE school_num = $school_num " .
|
||||
"AND schedule_num = $schedule_num " .
|
||||
"AND record_num = $menu_num " .
|
||||
"AND menu_link != 'No'";
|
||||
db_query($query);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'copy-menu':
|
||||
$copy_menu_title = 'Y';
|
||||
if (array_key_exists('schedule_num', $_GET)) $schedule_num = intval($_GET['schedule_num']);
|
||||
if (array_key_exists('menu_num', $_GET)) $menu_num = intval($_GET['menu_num']);
|
||||
if (array_key_exists('menu_link', $_GET)) $menu_link = db_escape_string($_GET['menu_link']);
|
||||
if (array_key_exists('menu_dates', $_GET)) $menu_dates = $_GET['menu_dates'];
|
||||
if (array_key_exists('copy_menu_title', $_GET)) $copy_menu_title = $_GET['copy_menu_title'];
|
||||
|
||||
if (!isset($menu_dates) || !is_array($menu_dates) || count($menu_dates) == 0 || !isset($menu_num) || intval($menu_num) == 0) {
|
||||
$return_data['error_message'] = getLanguageText('ERRORMSG-NO-DATES-SELECTED');
|
||||
$return_data['ajax_return_code'] = -1;
|
||||
echo(json_encode($return_data));
|
||||
logExit($return_data['error_message']);
|
||||
exit();
|
||||
}
|
||||
|
||||
// startLog("copy-menu");
|
||||
// writeLog("copy_menu_title: $copy_menu_title");
|
||||
// writeLog("schedule_num: $schedule_num");
|
||||
|
||||
// Get source menu record
|
||||
$source = db_getVal("SELECT * FROM hotlunch_menu_dates WHERE school_num = $school_num AND record_num = $menu_num");
|
||||
if (!is_array($source)) {
|
||||
$return_data['error_message'] = getLanguageText('ERRORMSG-INVALID-MENU');
|
||||
$return_data['ajax_return_code'] = -1;
|
||||
echo(json_encode($return_data));
|
||||
logExit($return_data['error_message']);
|
||||
exit();
|
||||
}
|
||||
|
||||
$source_schedule_num = $source['schedule_num'];
|
||||
// writeLog("source_schedule_num: $source_schedule_num");
|
||||
if ($source_schedule_num != $schedule_num) $copy_menu_title = 'Y';
|
||||
|
||||
// Get menu items and products for the source menu
|
||||
$sourceItems = array();
|
||||
$sourceProducts = array();
|
||||
$sourceClasses = array();
|
||||
$sourceItemClasses = array();
|
||||
|
||||
// Get source menu items
|
||||
$query = "SELECT * FROM hotlunch_menu_items WHERE school_num = $school_num AND menu_num = $menu_num ORDER BY sequence";
|
||||
$items = db_query($query);
|
||||
|
||||
while ($row = db_fetch_assoc($items)) {
|
||||
$sourceItems[] = $row;
|
||||
$menu_item_num = $row['record_num'];
|
||||
|
||||
// Get products for this item
|
||||
$query = "SELECT * FROM hotlunch_menu_products " .
|
||||
"WHERE school_num = $school_num " .
|
||||
"AND menu_item_num = $menu_item_num " .
|
||||
"ORDER BY product_sequence";
|
||||
$products = db_query($query);
|
||||
|
||||
$itemProducts = array();
|
||||
while ($row = db_fetch_assoc($products)) {
|
||||
$itemProducts[] = $row;
|
||||
}
|
||||
|
||||
$sourceProducts[$menu_item_num] = $itemProducts;
|
||||
|
||||
// Get classes for this menu item
|
||||
$query = "SELECT * FROM hotlunch_menu_items_classes " .
|
||||
"WHERE school_num = $school_num " .
|
||||
"AND menu_num = $menu_num " .
|
||||
"AND menu_item_num = $menu_item_num";
|
||||
$classes = db_query($query);
|
||||
$itemClasses = array();
|
||||
while ($row = db_fetch_assoc($classes)) {
|
||||
$itemClasses[] = $row;
|
||||
}
|
||||
|
||||
$sourceItemClasses[$menu_item_num] = $itemClasses;
|
||||
}
|
||||
|
||||
// Get classes for the source menu date
|
||||
$query = "SELECT * FROM hotlunch_menu_dates_classes WHERE school_num = $school_num AND menu_num = $menu_num";
|
||||
$classes = db_query($query);
|
||||
while ($row = db_fetch_assoc($classes)) {
|
||||
$sourceClasses[] = $row;
|
||||
}
|
||||
|
||||
|
||||
$hotlunch_menu_dates = new Table('hotlunch_menu_dates');
|
||||
$hotlunch_menu_items = new Table('hotlunch_menu_items');
|
||||
$hotlunch_menu_products = new Table('hotlunch_menu_products');
|
||||
$hotlunch_menu_dates_classes = new Table('hotlunch_menu_dates_classes');
|
||||
$hotlunch_menu_items_classes = new Table('hotlunch_menu_items_classes');
|
||||
|
||||
for ($i = 0; $i < count($menu_dates); $i++) {
|
||||
$curr_menu_num = $menu_dates[$i];
|
||||
// writeLog("$i curr_menu_num: $curr_menu_num");
|
||||
$query = "SELECT * FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num AND record_num = $curr_menu_num";
|
||||
$current_menu_record = db_getVal($query);
|
||||
|
||||
// Delete any current menu items for this menu
|
||||
$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 = $curr_menu_num)";
|
||||
// writeLog($query);
|
||||
db_query($query);
|
||||
|
||||
$query = "DELETE FROM hotlunch_menu_items WHERE school_num = $school_num AND menu_num = $curr_menu_num";
|
||||
// writeLog($query);
|
||||
db_query($query);
|
||||
|
||||
// Create menu_date entry
|
||||
$entry = $current_menu_record;
|
||||
// writeLog("copy_menu_title: $copy_menu_title");
|
||||
// writeLog("menu_title: ".$current_menu_record['menu_title']);
|
||||
|
||||
$entry['record_num'] = $curr_menu_num;
|
||||
$entry['schedule_num'] = $schedule_num;
|
||||
if (isset($copy_menu_title) && $copy_menu_title == 'Y') $entry['menu_title'] = $source['menu_title'];
|
||||
$entry['menu_date'] = $current_menu_record['menu_date'];
|
||||
$entry['sequence'] = $current_menu_record['sequence'];
|
||||
$menu_end_order_datetime = $current_menu_record['menu_end_order_datetime'];
|
||||
if ($menu_end_order_datetime == '0000-00-00 00:00:00') $menu_end_order_datetime = $current_menu_record['menu_date'] . " 06:00:00";
|
||||
$entry['menu_end_order_datetime'] = $menu_end_order_datetime;
|
||||
$entry['menu_link'] = $menu_link;
|
||||
$entry['source_menu'] = $menu_num;
|
||||
$entry['order_revenue'] = 0.00;
|
||||
$entry['other_revenue'] = 0.00;
|
||||
$entry['supplier_costs'] = 0.00;
|
||||
$entry['other_costs'] = 0.00;
|
||||
$entry['net_revenue'] = 0.00;
|
||||
$entry['record_num'] = $current_menu_record['record_num'];
|
||||
|
||||
$query = $hotlunch_menu_dates->BuildUpdate($entry);
|
||||
// writeLog($query);
|
||||
db_query($query);
|
||||
|
||||
$new_menu_num = $current_menu_record['record_num'];
|
||||
|
||||
// Save the menu items for the new menu
|
||||
for ($j = 0; $j < count($sourceItems); $j++) {
|
||||
$row = $sourceItems[$j];
|
||||
$row['menu_num'] = $new_menu_num;
|
||||
$row['source_item'] = $row['record_num'];
|
||||
// writeLog("source_item: ".$row['source_item']);
|
||||
$original_item_num = $row['record_num'];
|
||||
|
||||
$query = $hotlunch_menu_items->BuildInsert($row);
|
||||
// writeLog($query);
|
||||
db_query($query);
|
||||
$new_item_num = db_insert_id();
|
||||
|
||||
// Save the menu item products for the new menu item
|
||||
$itemProducts = $sourceProducts[$original_item_num];
|
||||
for ($m = 0; $m < count($itemProducts); $m++) {
|
||||
$row = $itemProducts[$m];
|
||||
$row['menu_item_num'] = $new_item_num;
|
||||
|
||||
$query = $hotlunch_menu_products->BuildInsert($row);
|
||||
// writeLog($query);
|
||||
db_query($query);
|
||||
}
|
||||
|
||||
// Save menu item classes
|
||||
$itemClasses = $sourceItemClasses[$original_item_num];
|
||||
for ($m = 0; $m < count($itemClasses); $m++) {
|
||||
$row = $itemClasses[$m];
|
||||
$row['schedule_num'] = $schedule_num;
|
||||
$row['menu_num'] = $new_menu_num;
|
||||
$row['menu_item_num'] = $new_item_num;
|
||||
|
||||
$query = $hotlunch_menu_items_classes->BuildInsert($row);
|
||||
// writeLog($query);
|
||||
db_query($query);
|
||||
}
|
||||
}
|
||||
|
||||
// Save menu date classes
|
||||
for ($j = 0; $j < count($sourceClasses); $j++) {
|
||||
$row = $sourceClasses[$j];
|
||||
$row['schedule_num'] = $schedule_num;
|
||||
$row['menu_num'] = $new_menu_num;
|
||||
|
||||
$query = $hotlunch_menu_dates_classes->BuildInsert($row);
|
||||
// writeLog($query);
|
||||
db_query($query);
|
||||
}
|
||||
}
|
||||
|
||||
$return_data['ajax_message'] = getLanguageText('TEXT-MENU-DATES-COPIED') . ": " . count($menu_dates);
|
||||
break;
|
||||
}
|
||||
|
||||
echo(json_encode($return_data));
|
||||
writeLog("completed\n");
|
||||
Reference in new issue
Block a user