First Commit
This commit is contained in:
1 parent
5eb9dd037d
commit
2e62c0e60b
11877 files changed
+2035312
No files matched your search
@@ -0,0 +1,252 @@
|
||||
<?php
|
||||
$ValidAccess = 2010;
|
||||
require_once("include/globals.php");
|
||||
|
||||
|
||||
$moduleName = "ajax.ScheduleCopy.php";
|
||||
// if ($_SESSION['UserInfo']['type'] == 'SuperUser') startLog($moduleName);
|
||||
|
||||
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') return;
|
||||
|
||||
|
||||
// Ensure that only valid user types have access to this module
|
||||
if ($userType != 'Admin') {
|
||||
$error_message = getLanguageText('ERRORMSG-ACCESS-DENIED');
|
||||
logExit($error_message);
|
||||
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();
|
||||
|
||||
|
||||
|
||||
// Get parameters
|
||||
$source_schedule_num = intval($_GET['source_schedule']);
|
||||
$schedule_title = db_escape_string($_GET['schedule_title']);
|
||||
$order_start = db_escape_string($_GET['order_start']);
|
||||
$order_end = db_escape_string($_GET['order_end']);
|
||||
$schedule_start = db_escape_string($_GET['schedule_start']);
|
||||
|
||||
writeLog("source_schedule_num: $source_schedule_num");
|
||||
writeLog("schedule_title: $schedule_title");
|
||||
writeLog("order_start: $order_start");
|
||||
writeLog("order_end: $order_end");
|
||||
writeLog("schedule_start: $schedule_start");
|
||||
|
||||
|
||||
// Get source schedule
|
||||
$query = "SELECT * FROM hotlunch_schedules WHERE record_num = $source_schedule_num";
|
||||
$results = db_query($query);
|
||||
|
||||
if (db_num_rows($results) == 0) {
|
||||
$return_data['ajax_return_code'] = -1;
|
||||
$return_data['ajax_message'] = getLanguageText('ERRORMSG-INVALID-SCHEDULE');
|
||||
echo(json_encode($return_data));
|
||||
exit();
|
||||
}
|
||||
|
||||
$schedule = db_fetch_assoc($results);
|
||||
$source_school_num = $schedule['school_num'];
|
||||
$schedule_type = $schedule['schedule_type'];
|
||||
$schedule_start_date = $schedule['schedule_start_date'];
|
||||
$schedule_end_date = $schedule['schedule_end_date'];
|
||||
|
||||
$schedule_offset = strtotime("$schedule_start 12:00:00") - strtotime("$schedule_start_date 12:00:00");
|
||||
$schedule['schedule_end_date'] = date("Y-m-d",strtotime("$schedule_end_date 12:00:00") + $schedule_offset);
|
||||
|
||||
|
||||
// Get menu dates
|
||||
switch ($schedule_type) {
|
||||
case 'Hot Lunch':
|
||||
case 'Date Sensitive':
|
||||
$query = "SELECT * FROM hotlunch_menu_dates " .
|
||||
"WHERE school_num = $source_school_num " .
|
||||
"AND schedule_num = $source_schedule_num " .
|
||||
"ORDER BY menu_date";
|
||||
$DateSensitive = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
$query = "SELECT * FROM hotlunch_menu_dates " .
|
||||
"WHERE school_num = $source_school_num " .
|
||||
"AND schedule_num = $source_schedule_num " .
|
||||
"ORDER BY sequence";
|
||||
$DateSensitive = false;
|
||||
break;
|
||||
}
|
||||
|
||||
$results = db_query($query);
|
||||
if (db_num_rows($results) == 0) {
|
||||
$return_data['ajax_return_code'] = -1;
|
||||
$return_data['ajax_message'] = getLanguageText('ERRORMSG-INVALID-SCHEDULE');
|
||||
echo(json_encode($return_data));
|
||||
exit();
|
||||
}
|
||||
|
||||
$menuDates = array();
|
||||
while ($row = db_fetch_assoc($results)) {
|
||||
$menuDates[] = $row;
|
||||
}
|
||||
|
||||
|
||||
// Check start date for date sensitive schedules
|
||||
if ($DateSensitive) {
|
||||
writeLog("Date Sensitive");
|
||||
$first_menu_date = $menuDates[0]['menu_date'];
|
||||
$swday = date("D",strtotime($first_menu_date));
|
||||
$nwday = date("D",strtotime($schedule_start));
|
||||
|
||||
if ($swday != $nwday) {
|
||||
$return_data['ajax_return_code'] = -1;
|
||||
$return_data['ajax_message'] = getLanguageText('ERRORMSG-SCHEDULE-START-DATE-MISMATCH') . "<br>$swday -> $nwday";
|
||||
echo(json_encode($return_data));
|
||||
exit();
|
||||
}
|
||||
|
||||
$offset = strtotime("$schedule_start 12:00:00") - strtotime("$first_menu_date 12:00:00");
|
||||
for ($i = 0; $i < count($menuDates); $i++) {
|
||||
$mdate = $menuDates[$i]['menu_date'];
|
||||
$newdate = date("Y-m-d",strtotime($mdate) + $offset);
|
||||
$menuDates[$i]['menu_date'] = $newdate;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$schedulesTable = new Table("hotlunch_schedules");
|
||||
|
||||
$schedule['school_num'] = $school_num;
|
||||
$schedule['schedule_name'] = $schedule_title;
|
||||
$schedule['sequence'] = intval(db_getVal("SELECT max(sequence) FROM hotlunch_schedules WHERE school_num = $school_num")) + 1;
|
||||
$schedule['start_order_datetime'] = date("Y-m-d H:i:00",strtotime($order_start));
|
||||
$schedule['end_order_datetime'] = date("Y-m-d H:i:00",strtotime($order_end));
|
||||
$schedule['schedule_start_date'] = date("Y-m-d",strtotime($schedule_start));
|
||||
$schedule['supplier_source_school'] = $source_school_num;
|
||||
|
||||
$query = $schedulesTable->BuildInsert($schedule);
|
||||
db_query($query);
|
||||
$newSchedule = db_insert_id();
|
||||
|
||||
$menudatesTable = new Table("hotlunch_menu_dates");
|
||||
$menuitemsTable = new Table("hotlunch_menu_items");
|
||||
$menuproductsTable = new Table("hotlunch_menu_products");
|
||||
$scheduleclassesTable = new Table("hotlunch_schedules_classes");
|
||||
$menudatesclassesTable = new Table("hotlunch_menu_dates_classes");
|
||||
$menuitemsclassesTable = new Table("hotlunch_menu_items_classes");
|
||||
|
||||
// Copy each menu date to new schedule
|
||||
for ($i = 0; $i < count($menuDates); $i++) {
|
||||
$entry = $menuDates[$i];
|
||||
$entry['school_num'] = $school_num;
|
||||
$entry['schedule_num'] = $newSchedule;
|
||||
$entry['display'] = 'Y';
|
||||
|
||||
$source_menu_num = $entry['record_num'];
|
||||
|
||||
$query = $menudatesTable->BuildInsert($entry);
|
||||
db_query($query);
|
||||
$newMenu = db_insert_id();
|
||||
|
||||
// Get and copy menu items to new menu date
|
||||
$query = "SELECT * FROM hotlunch_menu_items WHERE school_num = $source_school_num AND menu_num = $source_menu_num";
|
||||
$items = db_query($query);
|
||||
|
||||
while ($row = db_fetch_assoc($items)) {
|
||||
$source_item_num = $row['record_num'];
|
||||
$row['school_num'] = $school_num;
|
||||
$row['menu_num'] = $newMenu;
|
||||
$query = $menuitemsTable->BuildInsert($row);
|
||||
db_query($query);
|
||||
$newItem = db_insert_id();
|
||||
|
||||
// Get and copy menu products to new menu item
|
||||
$query = "SELECT * FROM hotlunch_menu_products WHERE school_num = $source_school_num AND menu_item_num = $source_item_num";
|
||||
$products = db_query($query);
|
||||
|
||||
while ($row = db_fetch_assoc($products)) {
|
||||
$row['school_num'] = $school_num;
|
||||
$row['menu_item_num'] = $newItem;
|
||||
$query = $menuproductsTable->BuildInsert($row);
|
||||
db_query($query);
|
||||
}
|
||||
|
||||
// Process any menu_items_classes
|
||||
if ($school_num == $source_school_num) {
|
||||
$query = "SELECT * FROM hotlunch_menu_items_classes " .
|
||||
"WHERE school_num = $source_school_num " .
|
||||
"AND schedule_num = $source_schedule_num " .
|
||||
"AND menu_num = $source_menu_num " .
|
||||
"AND menu_item_num = $source_item_num";
|
||||
$results = db_query($query);
|
||||
|
||||
while ($row = db_fetch_assoc($results)) {
|
||||
$row['school_num'] = $school_num;
|
||||
$row['schedule_num'] = $newSchedule;
|
||||
$row['menu_num'] = $newMenu;
|
||||
$row['menu_item_num'] = $newItem;
|
||||
|
||||
$query = $menuitemsclassesTable->BuildInsert($row);
|
||||
db_query($query);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Process any menu_dates_classes entries
|
||||
if ($school_num == $source_school_num) {
|
||||
$query = "SELECT * FROM hotlunch_menu_dates_classes " .
|
||||
"WHERE school_num = $source_school_num " .
|
||||
"AND schedule_num = $source_schedule_num " .
|
||||
"AND menu_num = $source_menu_num";
|
||||
$results = db_query($query);
|
||||
|
||||
while ($row = db_fetch_assoc($results)) {
|
||||
$row['school_num'] = $school_num;
|
||||
$row['schedule_num'] = $newSchedule;
|
||||
$row['menu_num'] = $newMenu;
|
||||
|
||||
$query = $menudatesclassesTable->BuildInsert($row);
|
||||
db_query($query);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Process any schedules_classes entries
|
||||
if ($school_num == $source_school_num) {
|
||||
$query = "SELECT * FROM hotlunch_schedules_classes " .
|
||||
"WHERE school_num = $source_school_num " .
|
||||
"AND schedule_num = $source_schedule_num";
|
||||
$results = db_query($query);
|
||||
|
||||
while ($row = db_fetch_assoc($results)) {
|
||||
$row['school_num'] = $school_num;
|
||||
$row['schedule_num'] = $newSchedule;
|
||||
|
||||
$query = $scheduleclassesTable->BuildInsert($row);
|
||||
db_query($query);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$return_data['ajax_return_code'] = 0;
|
||||
$return_data['ajax_message'] = "";
|
||||
$return_data['schedule_num'] = $newSchedule;
|
||||
|
||||
echo(json_encode($return_data));
|
||||
|
||||
?>
|
||||
Reference in new issue
Block a user