846 lines
36 KiB
Plaintext
846 lines
36 KiB
Plaintext
<?php
|
|
require_once("include/globals.php");
|
|
|
|
if (SessionActive() != 1 || ! UserLoggedIn()) {
|
|
header("Location: /");
|
|
exit();
|
|
}
|
|
|
|
|
|
//
|
|
// Process all actions to list and edit records
|
|
//
|
|
$naction = "";
|
|
|
|
$CurrentTable = "hotlunch_menu_items";
|
|
$DeleteField = "item_title,online_price,offline_price";
|
|
$dSeparator = "<br>";
|
|
$FormFile = "hotlunch_menu_items.form.php";
|
|
$TitleText = getLanguageText('TEXT-MENU-ITEM');
|
|
$OrderBy = "sequence, menu_date asc";
|
|
$Sequence = 'Y';
|
|
|
|
// Start the template and output buffering
|
|
startTemplate();
|
|
$templatePageTitle = "$TitleText " . getLanguageText('TEXT-ADMINISTRATION');
|
|
|
|
|
|
|
|
// Ensure that only valid user types have access to this module
|
|
$AllowedUserTypes = array('SuperUser','System Administrator','Application Administrator','Application Volunteer','Schedule Volunteer','Administration Team','Schedule Team','Supplier');
|
|
if (checkPermission($AllowedUserTypes) != 1) {
|
|
$error_message = getLanguageText('ERRORMSG-ACCESS-DENIED');
|
|
include "form.messages.php";
|
|
include "hotlunch_reports.menu.php";
|
|
endTemplate();
|
|
exit();
|
|
}
|
|
|
|
|
|
if (array_key_exists('menu_num',$_GET)) $menu_num = intval($_GET['menu_num']);
|
|
if (array_key_exists('menu_num',$_POST)) $menu_num = intval($_POST['menu_num']);
|
|
|
|
if (!isset($menu_num)) {
|
|
$error_message = getLanguageText('ERRORMSG-NO-MENU-NUM');
|
|
include "form.messages.php";
|
|
include "hotlunch_reports.menu.php";
|
|
endTemplate();
|
|
exit();
|
|
}
|
|
|
|
$current_menu_num = $menu_num;
|
|
|
|
// Get menu date information
|
|
$query = "select * from hotlunch_menu_dates " .
|
|
"where school_num = $school_num " .
|
|
"and record_num = $menu_num";
|
|
$results = db_query($query);
|
|
$hotlunch_menu_date = db_fetch_array($results);
|
|
$menu_date_title = $hotlunch_menu_date['menu_title'];
|
|
$menu_date = $hotlunch_menu_date['menu_date'];
|
|
$schedule_num = $hotlunch_menu_date['schedule_num'];
|
|
|
|
$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'];
|
|
$schedule_type = $row['schedule_type'];
|
|
|
|
if ($schedule_type == 'Hot Lunch' || $schedule_type == 'Date Sensitive') $templatePageTitle .= " - $menu_date_title - $menu_date<br>\n$schedule_name";
|
|
else $templatePageTitle .= " - $menu_date_title<br>\n$schedule_name";
|
|
|
|
|
|
// If this is a ScheduleTeam user check if they have permission to access this schedule
|
|
if (in_array($_SESSION['UserInfo']['type'],array('Schedule Team','Schedule Volunteer'))) {
|
|
$userNum = $_SESSION['UserInfo']['record_num'];
|
|
$access = db_getVal("SELECT count(*) FROM hotlunch_schedules_people WHERE school_num = $school_num AND schedule_num = $schedule_num AND user_num = $userNum");
|
|
|
|
if (!$access || $access == 0) {
|
|
$error_message = getLanguageText('ERRORMSG-NO-SCHEDULE-ACCESS');
|
|
include "form.messages.php";
|
|
include "hotlunch_reports.menu.php";
|
|
endTemplate();
|
|
exit();
|
|
}
|
|
}
|
|
|
|
|
|
if (array_key_exists('naction',$_GET)) $naction = $_GET['naction'];
|
|
if (array_key_exists('naction',$_POST)) $naction = $_POST['naction'];
|
|
|
|
$school_num = $school_record['record_num'];
|
|
|
|
include "hotlunch_reports.menu.php";
|
|
|
|
switch (strtolower($naction)) {
|
|
case "add":
|
|
$next_naction = "insert";
|
|
$active = 'Y';
|
|
$item_type = 'Item';
|
|
|
|
include $FormFile;
|
|
break;
|
|
|
|
case "add-heading":
|
|
$TitleText = getLanguageText('TEXT-HEADING');
|
|
$PageTitle = getLanguageText('TEXT-HEADING');
|
|
$ButtonText = getLanguageText('TEXT-INSERT-NEW');
|
|
$next_naction = "insert";
|
|
$active = 'Y';
|
|
$item_type = 'Heading';
|
|
|
|
include $FormFile;
|
|
break;
|
|
|
|
case "insert":
|
|
extract($_POST);
|
|
|
|
$options = trim($options);
|
|
|
|
// Use product name if no title is specified
|
|
if (strlen($item_title) == 0 && strlen($product0)) {
|
|
$query = "select product_name from supplier_products " .
|
|
"where school_num = $supplier_school_num " .
|
|
"and record_num = $product0";
|
|
$item_title = db_getVal($query);
|
|
}
|
|
|
|
// Use product label if no label is specified
|
|
if (strlen($label_title) == 0 && strlen($product0)) {
|
|
$query = "select label_name from supplier_products " .
|
|
"where school_num = $supplier_school_num " .
|
|
"and record_num = $product0";
|
|
$label_title = db_getVal($query);
|
|
}
|
|
|
|
// Get new sequence number
|
|
if ($Sequence == 'Y') {
|
|
$query = "select max(sequence) sequence from $CurrentTable " .
|
|
"where school_num = $school_num " .
|
|
"and menu_num = $menu_num";
|
|
$results = db_query($query);
|
|
$row = db_fetch_array($results);
|
|
$sequence = intval($row['sequence']) + 1;
|
|
}
|
|
|
|
// Strip the '$' from prices
|
|
$online_price = str_replace('$','',$online_price);
|
|
$offline_price = str_replace('$','',$offline_price);
|
|
|
|
if (strlen($online_price) == 0) $online_price = '0';
|
|
if (strlen($offline_price) == 0) $offline_price = '0';
|
|
|
|
if ($online_price > 0 && $offline_price == 0) $offline_price = $online_price;
|
|
|
|
$source_item = 0;
|
|
if ($item_type != 'Heading') $item_type = 'Item';
|
|
|
|
if (!isset($number_of_labels)) $number_of_labels = 1;
|
|
|
|
|
|
// Insert primary record
|
|
$hotlunch_menu_items = new Table("hotlunch_menu_items");
|
|
$query = $hotlunch_menu_items->BuildInsert();
|
|
db_query($query);
|
|
|
|
// Save processing values
|
|
$menu_item_num = db_insert_id();
|
|
$source_item = $menu_item_num;
|
|
$original_menu_num = $menu_num;
|
|
|
|
if ($select_classes == 'Selected Classes' && isset($selected_classes) && is_array($selected_classes) && count($selected_classes)) {
|
|
for ($i = 0; $i < count($selected_classes); $i++) {
|
|
$class_num = $selected_classes[$i];
|
|
$query = "INSERT INTO hotlunch_menu_items_classes (school_num,schedule_num,menu_num,menu_item_num,class_num) " .
|
|
"VALUES($school_num,$schedule_num,$menu_num,$menu_item_num,$class_num)";
|
|
db_query($query);
|
|
}
|
|
}
|
|
|
|
|
|
// Handle any linked menu dates
|
|
$linked_dates = db_query("select * from hotlunch_menu_dates where school_num = $school_num AND source_menu = $menu_num");
|
|
$linked_items = array();
|
|
if (db_num_rows($linked_dates) > 0) {
|
|
while ($row = db_fetch_array($linked_dates)) {
|
|
$menu_num = $row['record_num'];
|
|
$query = $hotlunch_menu_items->BuildInsert();
|
|
db_query($query);
|
|
$item_num = db_insert_id();
|
|
$linked_items[] = $item_num;
|
|
|
|
if ($select_classes == 'Selected Classes' && isset($selected_classes) && is_array($selected_classes) && count($selected_classes)) {
|
|
for ($i = 0; $i < count($selected_classes); $i++) {
|
|
$class_num = $selected_classes[$i];
|
|
$query = "INSERT INTO hotlunch_menu_items_classes (school_num,schedule_num,menu_num,menu_item_num,class_num) " .
|
|
"VALUES($school_num,$schedule_num,$menu_num,$item_num,$class_num)";
|
|
db_query($query);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// Process supplier items
|
|
$menu_products = new Table('hotlunch_menu_products');
|
|
|
|
for ($i = 0; $i < 50; $i++) {
|
|
unset($supplier_product_qty);
|
|
if (isset($_POST["product$i"])) $supplier_product_num = intval($_POST["product$i"]);
|
|
if (isset($_POST["qty$i"]) && $_POST["qty$i"] > 0) $supplier_product_qty = intval($_POST["qty$i"]);
|
|
|
|
if (isset($supplier_product_qty) && $supplier_product_qty > 0 && isset($supplier_product_num) && $supplier_product_num > 0) {
|
|
$menu_item_num = $source_item;
|
|
$product_sequence = $i + 1;
|
|
$query = $menu_products->BuildInsert();
|
|
db_query($query);
|
|
|
|
// Insert hotlunch_menu_products for linked items
|
|
if (count($linked_items) > 0) {
|
|
for ($j = 0; $j < count($linked_items); $j++) {
|
|
$menu_item_num = $linked_items[$j];
|
|
$query = $menu_products->BuildInsert();
|
|
db_query($query);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$menu_num = $original_menu_num;
|
|
|
|
$form_message = getLanguageText('RECORD-INSERTED-MSG');
|
|
$action = "$action&menu_num=$menu_num";
|
|
$naction = 'list';
|
|
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
|
|
exit();
|
|
|
|
case "edit":
|
|
$next_naction = "update";
|
|
|
|
// Get current record
|
|
$record_num = intval($_GET['record_num']);
|
|
$query = "select * from $CurrentTable where record_num = $record_num";
|
|
$results = db_query($query);
|
|
if (db_num_rows($results) == 1) {
|
|
$row = db_fetch_array($results);
|
|
extract($row);
|
|
|
|
if ($item_type == 'Heading') {
|
|
$TitleText = getLanguageText('TEXT-HEADING');
|
|
}
|
|
|
|
include $FormFile;
|
|
}
|
|
else {
|
|
$error_message = getLanguageText('ERRORMSG-NOT-FOUND');
|
|
$action = "$action&menu_num=$menu_num";
|
|
$naction = 'list';
|
|
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
|
|
exit();
|
|
}
|
|
break;
|
|
|
|
case "update":
|
|
extract($_POST);
|
|
|
|
$options = trim($options);
|
|
|
|
// Use product name if no title is specified
|
|
if (strlen($item_title) == 0 && strlen($product0)) {
|
|
$query = "select product_name from supplier_products " .
|
|
"where school_num = $supplier_school_num " .
|
|
"and record_num = $product0";
|
|
$item_title = db_getVal($query);
|
|
}
|
|
|
|
// Strip the '$' from prices
|
|
$online_price = str_replace('$','',$online_price);
|
|
$offline_price = str_replace('$','',$offline_price);
|
|
|
|
if (strlen($online_price) == 0) $online_price = '0';
|
|
if (strlen($offline_price) == 0) $offline_price = '0';
|
|
|
|
if ($online_price > 0 && $offline_price == 0) $offline_price = $online_price;
|
|
|
|
if (!isset($number_of_labels)) $number_of_labels = 1;
|
|
|
|
// Update the menu item record
|
|
$hotlunch_menu_items = new Table("hotlunch_menu_items");
|
|
$query = $hotlunch_menu_items->BuildUpdate();
|
|
db_query($query);
|
|
|
|
|
|
// Delete selected classes
|
|
db_query("DELETE FROM hotlunch_menu_items_classes WHERE school_num = $school_num AND schedule_num = $schedule_num AND menu_num = $menu_num AND menu_item_num = $record_num");
|
|
|
|
if ($select_classes == 'Selected Classes' && isset($selected_classes) && is_array($selected_classes) && count($selected_classes)) {
|
|
for ($i = 0; $i < count($selected_classes); $i++) {
|
|
$class_num = $selected_classes[$i];
|
|
db_query("INSERT INTO hotlunch_menu_items_classes (school_num,schedule_num,menu_num,menu_item_num,class_num) VALUES($school_num,$schedule_num,$menu_num,$record_num,$class_num)");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Process supplier items by first deleting the current items
|
|
$menu_item_num = $record_num;
|
|
$menu_products = new Table('hotlunch_menu_products');
|
|
$query = "delete from hotlunch_menu_products " .
|
|
"where school_num = $school_num " .
|
|
"and menu_item_num = $menu_item_num";
|
|
db_query($query);
|
|
|
|
// Insert new items if the quantity is greater than zero
|
|
for ($i = 0; $i < 50; $i++) {
|
|
unset($supplier_product_qty);
|
|
if (isset($_POST["product$i"])) $supplier_product_num = intval($_POST["product$i"]);
|
|
if (isset($_POST["qty$i"]) && $_POST["qty$i"] > 0) $supplier_product_qty = intval($_POST["qty$i"]);
|
|
|
|
if (isset($supplier_product_qty) && $supplier_product_qty > 0 && isset($supplier_product_num) && $supplier_product_num > 0) {
|
|
$product_sequence = $i + 1;
|
|
$query = $menu_products->BuildInsert();
|
|
db_query($query);
|
|
}
|
|
}
|
|
|
|
|
|
// Check if this is a linked item
|
|
$linked_items = db_query("select * from hotlunch_menu_items where school_num = $school_num and source_item = $record_num");
|
|
if (db_num_rows($linked_items) > 0) {
|
|
|
|
// Update linked menu items
|
|
$item_title = db_escape_string($item_title);
|
|
$item_description = db_escape_string($item_description);
|
|
$menu_item_format = db_escape_string($menu_item_format);
|
|
$label_title = db_escape_string($label_title);
|
|
$options = db_escape_string($options);
|
|
$options2 = db_escape_string($options2);
|
|
$options3 = db_escape_string($options3);
|
|
$options_title = db_escape_string($options_title);
|
|
$options2_title = db_escape_string($options2_title);
|
|
$options3_title = db_escape_string($options3_title);
|
|
$nutritional_info = db_escape_string($nutritional_info);
|
|
$item_message = db_escape_string($item_message);
|
|
$menu_group = db_escape_string($menu_group);
|
|
$item_type = db_escape_string($item_type);
|
|
$quantity_available = intval($quantity_available);
|
|
$min_quantity = intval($min_quantity);
|
|
$warn_quantity = intval($warn_quantity);
|
|
$max_quantity = intval($max_quantity);
|
|
$min_options = intval($min_options);
|
|
$max_options = intval($max_options);
|
|
$min_options2 = intval($min_options2);
|
|
$max_options2 = intval($max_options2);
|
|
$min_options3 = intval($min_options3);
|
|
$max_options3 = intval($max_options3);
|
|
|
|
if (!isset($active_until_date)) $active_until_date = "2100-01-01";
|
|
|
|
if (!isset($special_price1) || $special_price1 = '') $special_price1 = 0.00;
|
|
if (!isset($special_price2) || $special_price2 = '') $special_price2 = 0.00;
|
|
if (!isset($special_price3) || $special_price3 = '') $special_price3 = 0.00;
|
|
|
|
$special_price1 = floatval($special_price1);
|
|
$special_price2 = floatval($special_price2);
|
|
$special_price3 = floatval($special_price3);
|
|
|
|
$audate = "active_until_date = '$active_until_date', ";
|
|
if ($active_until_date == '') $audate = "active_until_date = NULL, ";
|
|
|
|
$query = "update hotlunch_menu_items " .
|
|
"SET item_title = '$item_title', " .
|
|
"item_description = '$item_description', " .
|
|
"menu_item_format = '$menu_item_format', " .
|
|
"label_title = '$label_title', " .
|
|
"display_price = '$display_price', " .
|
|
"online_price = $online_price, " .
|
|
"offline_price = $offline_price, " .
|
|
"special_price1 = $special_price1, " .
|
|
"special_price2 = $special_price2, " .
|
|
"special_price3 = $special_price3, " .
|
|
"taxable_item = '$taxable_item', " .
|
|
"active = '$active', " .
|
|
$audate .
|
|
"bc_guideline_rating = '$bc_guideline_rating', " .
|
|
"quantity_available = $quantity_available, " .
|
|
"min_quantity = $min_quantity, " .
|
|
"warn_quantity = $warn_quantity, " .
|
|
"max_quantity = $max_quantity, " .
|
|
"options = '$options', " .
|
|
"options2 = '$options2', " .
|
|
"options3 = '$options3', " .
|
|
"options_title = '$options_title', " .
|
|
"options2_title = '$options2_title', " .
|
|
"options3_title = '$options3_title', " .
|
|
"min_options = $min_options, " .
|
|
"max_options = $max_options, " .
|
|
"min_options2 = $min_options2, " .
|
|
"max_options2 = $max_options2, " .
|
|
"min_options3 = $min_options3, " .
|
|
"max_options3 = $max_options3, " .
|
|
"nutritional_info = '$nutritional_info', " .
|
|
"item_message = '$item_message', " .
|
|
"menu_group = '$menu_group', " .
|
|
"item_type = '$item_type', " .
|
|
"hot_cold_food = '$hot_cold_food', " .
|
|
"image = '$image' " .
|
|
"where school_num = $school_num " .
|
|
"and source_item = $record_num";
|
|
db_query($query);
|
|
|
|
// Process the selected classes and supplier products for the linked menu items
|
|
while ($row = db_fetch_array($linked_items)) {
|
|
$linked_item_num = $row['record_num'];
|
|
|
|
// Delete selected classes
|
|
db_query("DELETE FROM hotlunch_menu_items_classes WHERE school_num = $school_num AND schedule_num = $schedule_num AND menu_num = $menu_num AND menu_item_num = $linked_item_num");
|
|
|
|
if ($select_classes == 'Selected Classes' && isset($selected_classes) && is_array($selected_classes) && count($selected_classes)) {
|
|
for ($i = 0; $i < count($selected_classes); $i++) {
|
|
$class_num = $selected_classes[$i];
|
|
db_query("INSERT INTO hotlunch_menu_items_classes (school_num,schedule_num,menu_num,menu_item_num,class_num) VALUES($school_num,$schedule_num,$menu_num,$linked_item_num,$class_num)");
|
|
}
|
|
}
|
|
|
|
$query = "delete from hotlunch_menu_products " .
|
|
"where school_num = $school_num " .
|
|
"and menu_item_num = $linked_item_num";
|
|
db_query($query);
|
|
|
|
// Insert new items if the quantity is greater than zero
|
|
for ($i = 0; $i < 50; $i++) {
|
|
unset($supplier_product_qty);
|
|
if (isset($_POST["product$i"])) $supplier_product_num = intval($_POST["product$i"]);
|
|
if (isset($_POST["qty$i"]) && $_POST["qty$i"] > 0) $supplier_product_qty = intval($_POST["qty$i"]);
|
|
|
|
if (isset($supplier_product_qty) && $supplier_product_qty > 0 && isset($supplier_product_num) && $supplier_product_num > 0) {
|
|
$product_sequence = $i + 1;
|
|
$query = "insert into hotlunch_menu_products values ($school_num,$linked_item_num,$product_sequence,$supplier_product_num,$supplier_product_qty)";
|
|
db_query($query);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
$form_message = getLanguageText('RECORD-UPDATED-MSG');
|
|
$action = "$action&menu_num=$menu_num";
|
|
$naction = 'list';
|
|
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
|
|
exit();
|
|
|
|
case "copy":
|
|
$next_naction = "insert";
|
|
$active = 'Y';
|
|
$item_type = 'Item';
|
|
|
|
// Get current record
|
|
$menu_item_num = intval($_GET['menu_item_num']);
|
|
$query = "select * from $CurrentTable where record_num = $menu_item_num";
|
|
$results = db_query($query);
|
|
if (db_num_rows($results) == 1) {
|
|
$row = db_fetch_array($results);
|
|
extract($row);
|
|
|
|
if (!isset($number_of_labels)) $number_of_labels = 1;
|
|
|
|
if ($item_type == 'Heading') {
|
|
$TitleText = getLanguageText('TEXT-HEADING');
|
|
}
|
|
|
|
include $FormFile;
|
|
}
|
|
else {
|
|
$error_message = getLanguageText('ERRORMSG-NOT-FOUND');
|
|
$action = "$action&menu_num=$menu_num";
|
|
$naction = 'list';
|
|
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
|
|
exit();
|
|
}
|
|
break;
|
|
|
|
case "delete-confirmed":
|
|
$record_num = intval($_GET['record_num']);
|
|
|
|
$query = "select * from $CurrentTable where record_num = $record_num";
|
|
$results = db_query($query);
|
|
if (db_num_rows($results) == 1) {
|
|
$row = db_fetch_array($results);
|
|
extract($row);
|
|
|
|
// Check if orders exist for this menu item
|
|
$num = db_getVal("select count(*) from hotlunch_order_items where school_num = $school_num and menu_item_num = $record_num");
|
|
if (intval($num) > 0) {
|
|
$error_message = getLanguageText('ERRORMSG-UNABLE-TO-DELETE-ITEM-ORDERS-EXIST');
|
|
$action = "$action&menu_num=$menu_num";
|
|
$naction = 'list';
|
|
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
|
|
exit();
|
|
}
|
|
|
|
|
|
// Delete the current record
|
|
$query = "DELETE FROM $CurrentTable WHERE record_num = $record_num";
|
|
db_query($query);
|
|
|
|
// Delete menu products for this item
|
|
$query = "delete from hotlunch_menu_products " .
|
|
"where school_num = $school_num " .
|
|
"and menu_item_num = $record_num";
|
|
db_query($query);
|
|
|
|
// Delete inactive ordered items
|
|
$query = "delete from hotlunch_order_items " .
|
|
"where school_num = $school_num " .
|
|
"and schedule_num = $schedule_num " .
|
|
"and menu_num = $menu_num " .
|
|
"and menu_item_num = $record_num";
|
|
db_query($query);
|
|
|
|
// Delete linked menu items if there are any
|
|
$linked_items = db_query("select * from hotlunch_menu_items where school_num = $school_num and source_item = $record_num");
|
|
if (db_num_rows($linked_items) > 0) {
|
|
|
|
// Delete linked menu items
|
|
$item_title = db_escape_string($item_title);
|
|
if ($row['item_type'] == 'Item') {
|
|
$query = "DELETE FROM hotlunch_menu_items " .
|
|
"WHERE school_num = $school_num " .
|
|
"AND source_item = $record_num";
|
|
db_query($query);
|
|
}
|
|
|
|
if ($row['item_type'] == 'Heading') {
|
|
$query = "DELETE FROM hotlunch_menu_items " .
|
|
"WHERE school_num = $school_num " .
|
|
"AND source_item = $record_num";
|
|
db_query($query);
|
|
}
|
|
|
|
// Delete the supplier products for the linked menu items
|
|
while ($row = db_fetch_array($linked_items)) {
|
|
$linked_item_num = $row['record_num'];
|
|
$query = "delete from hotlunch_menu_products " .
|
|
"where school_num = $school_num " .
|
|
"and menu_item_num = $linked_item_num";
|
|
db_query($query);
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
$error_message = getLanguageText('ERRORMSG-NOT-FOUND');
|
|
$action = "$action&menu_num=$menu_num";
|
|
$naction = 'list';
|
|
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
|
|
exit();
|
|
}
|
|
|
|
|
|
$form_message = getLanguageText('RECORD-DELETED-MSG');
|
|
$action = "$action&menu_num=$menu_num";
|
|
$naction = 'list';
|
|
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
|
|
exit();
|
|
|
|
case "save-sort":
|
|
// Parse the hidden fields to update the sort sequence in the database
|
|
if (array_key_exists('row_sequence',$_POST) && strlen($_POST['row_sequence']) > 0) {
|
|
// Update the sequence to avoid duplicate keys
|
|
// db_query("UPDATE $CurrentTable SET sequence = sequence + 1000 WHERE school_num = $school_num AND menu_num = $menu_num");
|
|
|
|
$row_sequence = db_escape_string(trim($_POST['row_sequence'], ", "));
|
|
$item_sequence = explode(',',$row_sequence);
|
|
for ($i = 0; $i < count($item_sequence); $i++) {
|
|
$rnum = $item_sequence[$i];
|
|
if ($rnum) {
|
|
$sequence = $i + 1;
|
|
$query = "update $CurrentTable set sequence = $sequence where record_num = $rnum";
|
|
db_query($query);
|
|
|
|
// update linked menu items
|
|
$query = "update $CurrentTable set sequence = $sequence where school_num = $school_num AND source_item = $rnum";
|
|
echo("$query<br>\n");
|
|
db_query($query);
|
|
}
|
|
}
|
|
}
|
|
|
|
exit();
|
|
|
|
$form_message = getLanguageText('RECORDS-SORTED-MSG');
|
|
$action = "$action&menu_num=$menu_num";
|
|
$naction = 'list';
|
|
header("Location: /?action=$action&naction=$naction&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
|
|
exit();
|
|
|
|
case "list":
|
|
default:
|
|
$naction = "list";
|
|
break;
|
|
}
|
|
|
|
|
|
//
|
|
// List all records if naction is "list"
|
|
//
|
|
if ($naction == "list") {
|
|
|
|
$scriptName = str_replace("/m/data1/app.hotlunches.net/","",__FILE__);
|
|
include "help.docs.php";
|
|
|
|
// Determine if groups are in use in this menu
|
|
$groupCount = db_getVal("SELECT count(*) FROM hotlunch_menu_items WHERE school_num = $school_num AND menu_num = $menu_num AND menu_group IN ('A','B','C','D','E')");
|
|
|
|
// Get records to display
|
|
if ($groupCount > 0) {
|
|
$columnHeaders = array("Title","Label","Prices","On-Line","Paper","Products","Active","Group");
|
|
$columnHeadersAlt = array("Title","Label","Prices","On-Line","Paper","Products","Active","Group");
|
|
$columnAlign = array('left','left','center','right','right','center','center','center','center');
|
|
if ($siteType == 'schoolfees' || $siteType == 'registration') {
|
|
$columnHeaders = array("Title","Prices","On-Line","Paper","Group");
|
|
$columnHeadersAlt = array("Title","Prices","On-Line","Paper","Group","Products");
|
|
$columnAlign = array('left','center','right','right','center','center');
|
|
}
|
|
$gselect = "hlmi.menu_group,";
|
|
}
|
|
else {
|
|
$columnHeaders = array("Title","Label","Prices","On-Line","Paper","Products","Active");
|
|
$columnHeadersAlt = array("Title","Label","Prices","On-Line","Paper","Products","Active");
|
|
$columnAlign = array('left','left','center','right','right','center','center','center','center');
|
|
if ($siteType == 'schoolfees' || $siteType == 'registration') {
|
|
$columnHeaders = array("Title","Prices","On-Line","Paper");
|
|
$columnHeadersAlt = array("Title","Prices","On-Line","Paper","Products");
|
|
$columnAlign = array('left','center','right','right','center');
|
|
}
|
|
$gselect = "";
|
|
}
|
|
|
|
$query = "select hlmi.item_title,hlmi.label_title,display_price,concat('$currencySymbol',hlmi.online_price) as online_price,concat('$currencySymbol',hlmi.offline_price) as offline_price," .
|
|
"count(hmp.supplier_product_num) as products,hlmi.active,hlmi.menu_group,hlmi.record_num,item_type,options,min_options,max_options,item_description " .
|
|
"from hotlunch_menu_items as hlmi left join hotlunch_menu_products as hmp on hmp.school_num = $school_num and hlmi.record_num = hmp.menu_item_num " .
|
|
"where hlmi.school_num = $school_num " .
|
|
"and hlmi.menu_num = $menu_num " .
|
|
"group by 1,2,3,4,5,7,8,9,10,11,12,13 " .
|
|
"order by sequence";
|
|
$results = db_query($query);
|
|
|
|
$message_width = $default_data_width;
|
|
include "form.messages.php";
|
|
|
|
|
|
// Convert data structure to an array
|
|
$data = array();
|
|
$otipSpans = "";
|
|
while ($row = db_fetch_array($results)) {
|
|
$menu_item_num = $row['record_num'];
|
|
|
|
if ($row['item_type'] == 'Heading') {
|
|
$row[0] = "<span class='menu-item-header'>" . $row[0] . "</span><br><span class='small'>" . $row['item_description'] . "</span>";
|
|
$row[2] = "";
|
|
$row[3] = "";
|
|
$row[4] = "";
|
|
$row[5] = "";
|
|
|
|
echo("<input type='hidden' id='ordered_count_$menu_item_num' value='0'>\n");
|
|
}
|
|
else {
|
|
$ordered_item_count = db_getVal("SELECT count(*) FROM hotlunch_order_items WHERE school_num = $school_num AND schedule_num = $schedule_num AND menu_num = $menu_num AND menu_item_num = $menu_item_num AND active = 'Y'");
|
|
echo("<input type='hidden' id='ordered_count_$menu_item_num' value='$ordered_item_count'>\n");
|
|
|
|
$row[0] = "<b>" . $row[0] . "</b>";
|
|
if (strlen($row['item_description'])) $row[0] .= "<br><span class='small'>" . $row['item_description'] . "</span>";
|
|
$record_num = $row['record_num'];
|
|
$menu_item = $row['record_num'];
|
|
if ($row[5] > 0) {
|
|
// Create product tool tip
|
|
$span_id = "products_$record_num";
|
|
$query = "SELECT supplier_name,product_name,package_qty,package_cost,product_sequence,supplier_product_qty " .
|
|
"FROM suppliers,supplier_products,hotlunch_menu_products " .
|
|
"WHERE suppliers.school_num = $supplier_school_num " .
|
|
"AND suppliers.status = 'Active' " .
|
|
"AND supplier_products.school_num = $supplier_school_num " .
|
|
"AND hotlunch_menu_products.school_num = $school_num " .
|
|
"AND hotlunch_menu_products.menu_item_num = $record_num " .
|
|
"AND hotlunch_menu_products.supplier_product_num = supplier_products.record_num " .
|
|
"AND supplier_products.supplier_num = suppliers.record_num " .
|
|
"ORDER BY product_sequence";
|
|
$products = db_query($query);
|
|
if (db_num_rows($products)) {
|
|
$count = 0;
|
|
$otipSpans .= "<span id='$span_id' class='hidden'>" . $otipTABLE;
|
|
while ($prow = db_fetch_array($products)) {
|
|
if ($count) $otipSpans .= "<tr><td align='left' colspan='2'><hr></td></tr>\n";
|
|
$otipSpans .= sprintf($otipROW2,"Supplier: ",$prow['supplier_name']) .
|
|
sprintf($otipROW2,"Product Name: ",$prow['product_name']) .
|
|
sprintf($otipROW2,"Quantity: ",$prow['supplier_product_qty']) .
|
|
sprintf($otipROW2,"Package Qty: ",$prow['package_qty']) .
|
|
sprintf($otipROW2,"Package Cost: ",'$' . sprintf("%0.".$school_record['supplier_costs_decimals']."f",$prow['package_cost']));
|
|
$count++;
|
|
|
|
if (array_key_exists('options', $prow) && strlen($prow['options'])) $otipSpans .= sprintf($otipROW2,"Options:",$prow['options']);
|
|
}
|
|
$otipSpans .= "</table></span>\n";
|
|
$row[5] = "<a href=\"javascript:TagToTip('$span_id')\" onmouseover=\"TagToTip('$span_id')\" onmouseout=\"UnTip()\">" . $row[5] . "</a>";
|
|
}
|
|
else {
|
|
$row[5] = "<span class='warning'>0</span>";
|
|
$query = "DELETE FROM hotlunch_menu_products WHERE school_num = $school_num AND menu_item_num = $menu_item";
|
|
db_query($query);
|
|
}
|
|
$columnHeaders = $columnHeadersAlt;
|
|
}
|
|
else {
|
|
$row[5] = "<span class='warning'>0</span>";
|
|
}
|
|
|
|
$row[6] = "<span class='item-active-flag' menu_item_num='$menu_item'>".$row[6]."</span>";
|
|
}
|
|
|
|
switch ($siteType) {
|
|
case 'hotlunch':
|
|
case 'fundraising':
|
|
default:
|
|
$data[] = $row;
|
|
break;
|
|
|
|
case 'schoolfees':
|
|
case 'registration':
|
|
if ($groupCount > 0) $data[] = array($row[0],$row[2],$row[3],$row[4],$row[7],$row[5],"record_num" => $row['record_num']);
|
|
else $data[] = array($row[0],$row[2],$row[3],$row[4],$row[5],"record_num" => $row['record_num']);
|
|
break;
|
|
}
|
|
}
|
|
|
|
$action = "$action&menu_num=$menu_num";
|
|
|
|
if ($hotlunch_menu_date['source_menu'] > 0 && $hotlunch_menu_date['menu_link'] != 'No') {
|
|
$customTableID = "items-table";
|
|
$useRowIDS = true;
|
|
include "table.dnd.php";
|
|
|
|
$form_message = getLanguageText('MSG-LINKED-MENU');
|
|
include "form.messages.php";
|
|
listDataCustom($data,$columnHeaders,"",array(),'N',$columnAlign,array(),'N');
|
|
echo("<br>\n");
|
|
}
|
|
else {
|
|
$num_orders = db_getVal("SELECT count(*) FROM hotlunch_order_header WHERE school_num = $school_num AND schedule_num = $schedule_num AND status NOT IN ('Inactive','Deleted','Concession')");
|
|
|
|
$insert_allowed = 'Y';
|
|
$copy_icon = "<img src='images/icons/redo24.png' alt='Copy Menu Item Entry' border='0'>";
|
|
|
|
$customTableID = "items-table";
|
|
$useRowIDS = true;
|
|
include "table.dnd.php";
|
|
|
|
if ($num_orders > 0) {
|
|
$commands = array(
|
|
"<a href='?action=menu-items&menu_num=$menu_num&naction=edit&record_num=%d' title='Edit Current Entry'>$edit_icon</a>",
|
|
"<a href='#' menu_item_num='%d' class='menu-item-delete' title='Delete Current Entry'>$delete_icon</a>",
|
|
"<a href='?action=menu-items&naction=copy&schedule_num=$schedule_num&menu_num=$menu_num&menu_item_num=%d' title='Copy Menu Item Entry'>$copy_icon</a>",
|
|
);
|
|
}
|
|
else {
|
|
$commands = array(
|
|
"<a href='?action=menu-items&menu_num=$menu_num&naction=edit&record_num=%d' title='Edit Current Entry'>$edit_icon</a>",
|
|
"<a href='#' menu_item_num='%d' class='menu-item-delete' title='Delete Current Entry'>$delete_icon</a>",
|
|
"<a href='?action=menu-items&naction=copy&schedule_num=$schedule_num&menu_num=$menu_num&menu_item_num=%d' title='Copy Menu Item Entry'>$copy_icon</a>",
|
|
);
|
|
}
|
|
listDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign);
|
|
|
|
if ($insert_allowed == 'Y') {
|
|
?>
|
|
<table cellpadding='5' cellspacing='5' border='0'>
|
|
<tr>
|
|
<td align='center'><a href='?action=menu-items&menu_num=<?php echo($menu_num) ?>&naction=add' class='largeButton'><?php displayLanguageText('TEXT-INSERT-NEW'); ?></a></td>
|
|
<td align='center'><a href='?action=menu-items&menu_num=<?php echo($menu_num) ?>&naction=add-heading' class='largeButton'><?php displayLanguageText('TEXT-INSERT-HEADING'); ?></a></td>
|
|
<td align='center'><a href='?action=menu-items&menu_num=<?php echo($menu_num) ?>&naction=list&show_all=Y' class='largeButton'><?php displayLanguageText('TEXT-VIEW-ALL'); ?></a></td>
|
|
<?php if ($hotlunch_menu_date['menu_link'] == 'No') { ?>
|
|
<td align='center'><a href='?action=menu-price-update&schedule_num=<?php echo($schedule_num) ?>&selected_menu_num=<?php echo($menu_num) ?>' class='largeButton'><?php displayLanguageText('TEXT-UPDATE-MENU-PRICES'); ?></a></td>
|
|
<?php } ?>
|
|
</tr>
|
|
</table>
|
|
<?php
|
|
}
|
|
}
|
|
}
|
|
?>
|
|
<script>
|
|
$(document).ready(function() {
|
|
|
|
<?php include "include/ajax.Setup.php" ?>
|
|
|
|
$(document).on('click', '.menu-item-delete', function(e) {
|
|
e.preventDefault();
|
|
|
|
var schedule_num = <?php echo($schedule_num) ?>;
|
|
var menu_num = <?php echo($menu_num) ?>;
|
|
var menu_item_num = $(this).attr('menu_item_num');
|
|
var num_ordered = $("#ordered_count_"+menu_item_num).val();
|
|
var confirmMsg = "<?php displayLanguageText('TEXT-CONFIRM-ACTION'); ?>";
|
|
|
|
if (num_ordered == 0) {
|
|
var ans = confirm(confirmMsg);
|
|
if (ans) {
|
|
var URL = "?action=menu-items&menu_num="+menu_num+"&naction=delete-confirmed&schedule_num="+schedule_num+"&record_num="+menu_item_num;
|
|
window.location = URL;
|
|
return false;
|
|
}
|
|
}
|
|
else {
|
|
alert("<?php displayLanguageText('TEXT-UNABLE-TO-DELETE-ENTRY'); ?>");
|
|
}
|
|
});
|
|
|
|
$(document).on('click', '.item-active-flag', function(e) {
|
|
e.preventDefault();
|
|
|
|
var schedule_num = <?php echo($schedule_num) ?>;
|
|
var menu_num = <?php echo($menu_num) ?>;
|
|
var menu_item_num = $(this).attr('menu_item_num');
|
|
var spanid = $(this);
|
|
|
|
$.getJSON("ajax.ToggleActiveFlag.php",
|
|
{
|
|
table_name: 'hotlunch_menu_items',
|
|
rnum: menu_item_num
|
|
},
|
|
function(results) {
|
|
$(spanid).html(results.rval);
|
|
}
|
|
);
|
|
});
|
|
});
|
|
</script>
|
|
<?php
|
|
|
|
// If the menu_num is set then get the schedule number
|
|
if (isset($menu_num)) {
|
|
$query = "select schedule_num from hotlunch_menu_dates where record_num = $menu_num";
|
|
$schedule_num = db_getVal($query);
|
|
}
|
|
|
|
include "hotlunch_orders.print_buttons.php";
|
|
endTemplate();
|
|
?>
|