Files
HotLunches/ajax.Menu.Generate.php
2026-10-19 15:22:52 -07:00

187 lines
8.2 KiB
PHP

<?php
$ValidAccess = 2010;
require_once("include/globals.php");
$moduleName = "ajax.Menu.Generate.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('menu_num', $_GET)) $menu_num = intval($_GET['menu_num']);
if (array_key_exists('supplier_num', $_GET)) $supplier_num = intval($_GET['supplier_num']);
if (array_key_exists('supplier_products', $_GET)) $supplier_products = $_GET['supplier_products'];
if (array_key_exists('selected_menu_dates', $_GET)) $menu_dates = $_GET['selected_menu_dates'];
if (!isset($schedule_num)) logExit("Schedule Num is not set");
if (!isset($menu_num)) logExit("Menu Num is not set");
if (!isset($supplier_num)) logExit("Supplier Num is not set");
if (!isset($supplier_products)) logExit("Supplier Products is not set");
writeLog("schedule_num: $schedule_num");
// writeLog("menu_num: $menu_num");
writeLog("supplier_num: $supplier_num");
writeLog("supplier_products: ".print_r($supplier_products,true));
writeLog("school_num: $school_num");
writeLog("supplier_school_num: $supplier_school_num");
// writeLog("menu_dates: ".print_r($menu_dates,true));
if (!is_array($supplier_products) || count($supplier_products) == 0) {
$return_data['error_message'] = getLanguageText('ERRORMSG-NO-PRODUCTS-SELECTED');
$return_data['ajax_return_code'] = -1;
echo(json_encode($return_data));
logExit($error_message);
exit();
}
// Check for linked menus
if (isset($menu_dates)) $currentMenus = $menu_dates;
writeLog("currentMenus: ".print_r($currentMenus, true));
$cMenus = implode(",",$currentMenus);
$query = "SELECT record_num FROM hotlunch_menu_dates " .
"WHERE school_num = $school_num " .
"AND schedule_num = $schedule_num " .
"AND source_menu = $menu_num " .
"AND menu_link != 'No' " .
"AND record_num NOT IN ($cMenus)";
$linked = db_query($query);
while ($row = db_fetch_assoc($linked)) {
$currentMenus[] = $row['record_num'];
}
// Get selected products data
$pwhere = "";
$pwhere = "and record_num IN (" . implode(",",$supplier_products) . ") ";
writeLog("pwhere: $pwhere");
$query = "SELECT * FROM supplier_products " .
"WHERE school_num = $supplier_school_num " .
"AND supplier_num = $supplier_num " .
"AND status = 'Active' " .
$pwhere .
"ORDER BY sequence,product_name";
writeLog($query);
$products = db_query($query);
$num_products = db_num_rows($products);
writeLog("num_products: $num_products");
$sequence = db_getVal("SELECT max(sequence) FROM hotlunch_menu_items WHERE school_num = $school_num AND menu_num = $menu_num");
if ($num_products > 0) {
$hotlunch_menu_items = new Table("hotlunch_menu_items");
$count = 0;
while ($product = db_fetch_array($products)) {
$menu_item = array();
$menu_item = initializeTableArray("hotlunch_menu_items");
$sequence++;
// Initialize common values
$menu_item['school_num'] = $school_num;
$menu_item['menu_num'] = $menu_num;
$menu_item['source_item'] = 0;
$menu_item['current_source_item'] = 0;
$menu_item['comment'] = "";
$menu_item['warn_quantity'] = 0;
$menu_item['sequence'] = $sequence;
$menu_item['item_title'] = $product['product_name'];
$menu_item['item_description'] = $product['product_description'];
$menu_item['label_title'] = $product['label_name'];
$menu_item['online_price'] = $product['standard_online_price'];
$menu_item['offline_price'] = $product['standard_offline_price'];
$menu_item['special_price1'] = $product['special_price1'];
$menu_item['special_price2'] = $product['special_price2'];
$menu_item['special_price3'] = $product['special_price3'];
$menu_item['number_of_alternate_prices'] = $product['number_of_alternate_prices'];
$menu_item['alternate_price1'] = $product['alternate_price1'];
$menu_item['alternate_price2'] = $product['alternate_price2'];
$menu_item['alternate_price3'] = $product['alternate_price3'];
$menu_item['alternate_price4'] = $product['alternate_price4'];
$menu_item['alternate_price5'] = $product['alternate_price5'];
$menu_item['alternate_price6'] = $product['alternate_price6'];
$menu_item['alternate_price7'] = $product['alternate_price7'];
$menu_item['alternate_price8'] = $product['alternate_price8'];
$menu_item['alternate_price9'] = $product['alternate_price9'];
$menu_item['alternate_price10'] = $product['alternate_price10'];
$menu_item['taxable_item'] = $product['taxable_product'];
$menu_item['bc_guideline_rating'] = $product['bc_guideline_rating'];
$menu_item['quantity_available'] = 0;
$menu_item['max_quantity'] = 0;
$menu_item['options_title'] = $product['options_title'];
$menu_item['options'] = $product['product_options'];
$menu_item['default_options'] = $product['default_options'];
$menu_item['max_options'] = $product['max_options'];
$menu_item['min_options'] = $product['min_options'];
$menu_item['options2_title'] = $product['options2_title'];
$menu_item['options2'] = $product['product_options2'];
$menu_item['default_options2'] = $product['default_options2'];
$menu_item['max_options2'] = $product['max_options2'];
$menu_item['min_options2'] = $product['min_options2'];
$menu_item['options3_title'] = $product['options3_title'];
$menu_item['options3'] = $product['product_options3'];
$menu_item['default_options3'] = $product['default_options3'];
$menu_item['max_options3'] = $product['max_options3'];
$menu_item['min_options3'] = $product['min_options3'];
$menu_item['nutritional_info'] = $product['nutritional_info'];
$menu_item['item_message'] = $product['item_message'];
$menu_item['hot_cold_food'] = $product['hot_cold_food'];
$menu_item['image'] = $product['image'];
$menu_item['item_type'] = 'Item';
$menu_item['menu_item_format'] = 'D';
$menu_item['active'] = 'Y';
$menu_item['display_price'] = 'Y';
$menu_item['product_type'] = $product['product_type'];
$menu_item['quantity_available'] = 0;
$menu_item['max_quantity'] = 0;
// Process each menu date
for ($i = 0; $i < count($currentMenus); $i++) {
$menu_num = $currentMenus[$i];
$menu_item['menu_num'] = $menu_num;
$query = $hotlunch_menu_items->BuildInsert($menu_item);
writeLog($query);
db_query($query);
$menu_item_num = db_insert_id();
// Create the menu item product entry
$product_num = $product['record_num'];
$query = "INSERT INTO hotlunch_menu_products VALUES ($school_num,$menu_item_num,1,$product_num,1)";
writeLog($query);
db_query($query);
}
}
}
$return_data['ajax_message'] = sprintf(getLanguageText('MSG-MENU-GENERATED'), $num_products);;
echo(json_encode($return_data));
writeLog("completed\n");