421 lines
16 KiB
PHP
421 lines
16 KiB
PHP
<?php
|
|
require_once("include/globals.php");
|
|
|
|
if (SessionActive() != 1 || ! UserLoggedIn()) {
|
|
header("Location: /");
|
|
exit();
|
|
}
|
|
|
|
$AllowedUserTypes = array('SuperUser','System Administrator','Application Administrator','Application Volunteer','Schedule Volunteer','Administration Team','Schedule Team','Supplier');
|
|
if (checkPermission($AllowedUserTypes) == 1) {
|
|
include "hotlunch_reports.menu.php";
|
|
}
|
|
|
|
|
|
|
|
// Get schedule information
|
|
$query = "select * from hotlunch_schedules " .
|
|
"where school_num = $school_num " .
|
|
"and record_num = $schedule_num";
|
|
$results = db_query($query);
|
|
|
|
if (db_num_rows($results) == 0) {
|
|
echo("<br>\n");
|
|
$error_message = "Invalid lunch schedule id";
|
|
include "form.messages.php";
|
|
return;
|
|
}
|
|
|
|
$schedule_record = db_fetch_array($results);
|
|
$schedule_name = $schedule_record['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) {
|
|
echo("<br>\n");
|
|
$error_message = "You are not allowed access to the requested hot lunch schedule";
|
|
include "form.messages.php";
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
?>
|
|
|
|
<br>
|
|
<form method='post' action='/' name='orderform'>
|
|
<?php
|
|
|
|
$form_width = '80%';
|
|
$message_width = $form_width;
|
|
include "form.messages.php";
|
|
?>
|
|
<table width='<?php echo($form_width) ?>' class='content-table'>
|
|
<tr>
|
|
<td align='center' class='heading'><?php displayLanguageText('TEXT-MENU-PRICE-UPDATE'); ?> - <?php echo($schedule_name) ?></td>
|
|
</tr>
|
|
<tr>
|
|
<td align='center'>
|
|
<br>
|
|
<table width='920' cellpadding='1' cellspacing='1' border='0'>
|
|
<?php
|
|
// Handle a selected menu date
|
|
$mwhere = "";
|
|
if (isset($selected_menu_num) && $selected_menu_num > 0) $mwhere = "AND record_num = $selected_menu_num ";
|
|
|
|
// Get menu dates for this schedule
|
|
$query = "select * from hotlunch_menu_dates " .
|
|
"where school_num = $school_num " .
|
|
"and schedule_num = $schedule_num " .
|
|
$mwhere .
|
|
"order by sequence,menu_date";
|
|
$menu_dates = db_query($query);
|
|
|
|
while ($menu_date = db_fetch_array($menu_dates)) {
|
|
$menu_num = $menu_date['record_num'];
|
|
$menu_title = $menu_date['menu_title'];
|
|
$menu_link = $menu_date['menu_link'];
|
|
|
|
if ($menu_link != 'No') $menu_title .= " - Linked Menu: $menu_link";
|
|
|
|
// Get menu items for this menu date
|
|
$query = "select * from hotlunch_menu_items " .
|
|
"where school_num = $school_num " .
|
|
"and menu_num = $menu_num " .
|
|
"order by sequence";
|
|
$menu_items = db_query($query);
|
|
|
|
$menuTitle = $menu_title;
|
|
if ($hotlunch_schedule['display_menu_date'] == 'Y') $menuTitle .= ' - '.date($school_record['date_format'],strtotime($menu_date['menu_date']));
|
|
$menuTitle = str_replace("'","'",$menuTitle);
|
|
$mTitle = "<input type='hidden' id='menu-title-$menu_num' value='$menuTitle'>";
|
|
|
|
?>
|
|
<tr>
|
|
<td align='left' colspan='9' class='success'>
|
|
<table width='100%' cellspacing='0' cellpadding='0' border='0'>
|
|
<tr>
|
|
<td align='left' class='success'><b><?php echo($menu_title); echo($mTitle); ?></td>
|
|
<?php if ($hotlunch_schedule['display_menu_date'] == 'Y') { ?>
|
|
<td align='right' class='success'><?php echo(date($school_record['date_format'],strtotime($menu_date['menu_date']))) ?></b></td>
|
|
<?php } else { ?>
|
|
<td class='success'> </td>
|
|
<?php } ?>
|
|
</tr>
|
|
</td>
|
|
</table>
|
|
</tr>
|
|
<?php
|
|
if (db_num_rows($menu_items) > 0) {
|
|
?>
|
|
<tr>
|
|
<td align='left' class='oitem'><b><?php displayLanguageText('TEXT-ITEM'); ?></b></td>
|
|
<td width='60' align='center' class='oitem'><b><?php displayLanguageText('TEXT-GROUP'); ?></b></td>
|
|
<td width='60' align='center' class='oitem'><b><?php displayLanguageText('TEXT-DISPLAY-PRICES'); ?></b></td>
|
|
<td width='60' align='right' class='oitem'><b><?php displayLanguageText('TEXT-ON-LINE'); ?></b></td>
|
|
<td width='60' align='right' class='oitem'><b><?php displayLanguageText('TEXT-PAPER'); ?></b></td>
|
|
<td width='60' align='right' class='oitem'><b><?php displayLanguageText('TEXT-COST'); ?></b></td>
|
|
<td width='60' align='center' class='oitem'><b><?php displayLanguageText('TEXT-TAXABLE'); ?></b></td>
|
|
<td width='60' align='center' class='oitem'><b><?php displayLanguageText('TEXT-SALES-SUMMARY'); ?></b></td>
|
|
<td align='center' class='oitem'> </td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
|
|
$Groups = array('A','B','C','D','E','F','G','H','I','J','K','L','M');
|
|
|
|
|
|
$class = 'data-odd';
|
|
while ($menu_item = db_fetch_array($menu_items)) {
|
|
extract($menu_item);
|
|
|
|
$menu_item_num = $record_num;
|
|
if ($class == 'data-odd') $class = 'data-even';
|
|
else $class = 'data-odd';
|
|
|
|
if ($item_type != 'Heading') {
|
|
$item_cost = 0;
|
|
$item_cost = floatval(db_getVal("select sum((package_cost / package_qty) * supplier_product_qty) " .
|
|
"from hotlunch_menu_products,supplier_products " .
|
|
"where hotlunch_menu_products.school_num = $school_num " .
|
|
"and supplier_products.school_num = $supplier_school_num " .
|
|
"and menu_item_num = $menu_item_num " .
|
|
"and supplier_product_num = supplier_products.record_num"));
|
|
|
|
// Setup field names
|
|
$ofield = "oprice_$menu_item_num";
|
|
$pfield = "pprice_$menu_item_num";
|
|
$gfield = "group_$menu_item_num";
|
|
$dfield = "display_$menu_item_num";
|
|
$tfield = "taxable_$menu_item_num";
|
|
|
|
$fpm = " item_num='$menu_item_num' size='6' style='text-align: right; float: right;'";
|
|
|
|
if (!isset($sales_summary_item)) $sales_summary_item = 'Y';
|
|
|
|
$disabled = '';
|
|
$query = "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";
|
|
$numItemOrdered = db_getVal($query);
|
|
if ($numItemOrdered > 0) $disabled = 'disabled';
|
|
$itemCheckbox = "<input type='checkbox' class='menu-items-checkbox' id='$menu_item_num' menu_num='$menu_num' item_num='$menu_item_num' $disabled>";
|
|
|
|
$itemTitle = $item_title;
|
|
$itemTitle = str_replace("'","'",$itemTitle);
|
|
$iTitle = "<input type='hidden' id='menu-item-title-$menu_item_num' value='$itemTitle'>";
|
|
|
|
?>
|
|
<tr>
|
|
<td align='left' class='oitem'><?php echo($item_title); echo($iTitle); ?> ::</td>
|
|
|
|
<?php if ($menu_link == 'No') { ?>
|
|
<td class='oitem' align='center'>
|
|
<select name='<?php echo($gfield) ?>' id='<?php echo($gfield) ?>' fname='menu_group' item_num='<?php echo($menu_item_num) ?>' class='menu-group-field'>
|
|
<option value=''></option>
|
|
<?php
|
|
for ($i = 0; $i < count($Groups); $i++) {
|
|
$group = $Groups[$i];
|
|
$selected = "";
|
|
if ($menu_group == $group) $selected = " selected='selected'";
|
|
echo(" <option value='$group'$selected>$group</option>\n");
|
|
}
|
|
?>
|
|
</select>
|
|
</td>
|
|
<td align='center' class='oitem'>
|
|
<span id='display-price-$record_num' class='toggle-field' fname='display_price' item_num='<?php echo($menu_item_num) ?>'><?php echo($display_price) ?></span>
|
|
</td>
|
|
<td align='right' class='oitem'><input type='text' name='<?php echo($ofield) ?>' id='<?php echo($ofield) ?>' fname='online_price' value='<?php echo($currencySymbol . number_format($online_price,2)) ?>'<?php echo($fpm) ?> class='price-field'></td>
|
|
<td align='right' class='oitem'><input type='text' name='<?php echo($pfield) ?>' id='<?php echo($pfield) ?>' fname='offline_price' value='<?php echo($currencySymbol . number_format($offline_price,2)) ?>'<?php echo($fpm) ?> class='price-field'></td>
|
|
<td align='right' class='oitem'><?php echo($currencySymbol . number_format($item_cost,2)) ?></td>
|
|
<td align='center' class='oitem'>
|
|
<span id='taxable-$record_num' class='toggle-field' fname='taxable_item' item_num='<?php echo($menu_item_num) ?>'><?php echo($taxable_item) ?></span>
|
|
</td>
|
|
<td align='center' class='oitem'>
|
|
<span id='sales-summary-$record_num' class='toggle-field' fname='sales_summary_item' item_num='<?php echo($menu_item_num) ?>'><?php echo($sales_summary_item) ?></span>
|
|
</td>
|
|
<td align='center' class='oitem'><?php echo($itemCheckbox) ?></td>
|
|
|
|
<?php } else { ?>
|
|
|
|
<td align='center' class='oitem'><span id='menu_group_<?php echo($menu_item_num) ?>'><?php echo($menu_group) ?></span></td>
|
|
<td align='center' class='oitem'><span id='display_price_<?php echo($menu_item_num) ?>'><?php echo($display_price) ?></span></td>
|
|
<td align='right' class='oitem'><span id='online_price_<?php echo($menu_item_num) ?>'><?php echo($currencySymbol) ?><?php echo(number_format($online_price,2)) ?></span></td>
|
|
<td align='right' class='oitem'><span id='offline_price_<?php echo($menu_item_num) ?>'><?php echo($currencySymbol) ?><?php echo(number_format($offline_price,2)) ?></span></td>
|
|
<td align='right' class='oitem'><span id='item_cost_<?php echo($menu_item_num) ?>'><?php echo($currencySymbol . number_format($item_cost,2)) ?></span></td>
|
|
<td align='center' class='oitem'><span id='taxable_item_<?php echo($menu_item_num) ?>'><?php echo($taxable_item) ?></span></td>
|
|
<td align='center' class='oitem'><span id='sales_summary_item_<?php echo($menu_item_num) ?>'><?php echo($sales_summary_item) ?></span></td>
|
|
<td align='center' class='oitem'><?php echo($itemCheckbox) ?></td>
|
|
|
|
<?php } ?>
|
|
|
|
</tr>
|
|
<?php
|
|
}
|
|
else {
|
|
?>
|
|
<tr>
|
|
<td align='left' colspan='9' class='menudate-subheader'><b> -- <?php echo($item_title) ?> -- </b></td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
}
|
|
|
|
?>
|
|
<tr>
|
|
<td align='left' colspan='9'> </td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align='center'>
|
|
<br>
|
|
<input type='submit' id='refresh-screen' class='btn btn--primary' value="<?php displayLanguageText('TEXT-REFRESH-DATA'); ?>">
|
|
<input type='submit' id='delete-selected-items' class='btn btn--outline' value="<?php displayLanguageText('TEXT-DELETE-SELECTED'); ?>">
|
|
<input type='hidden' name='schedule_num' value='<?php echo($schedule_num) ?>'>
|
|
<?php if (isset($selected_menu_num) && $selected_menu_num > 0) { ?>
|
|
<input type='hidden' name='selected_menu_num' value='<?php echo($selected_menu_num) ?>'>
|
|
<?php } ?>
|
|
<br>
|
|
<br>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</form>
|
|
<?php include "hotlunch_orders.print_buttons.php"; ?>
|
|
|
|
<script>
|
|
$(document).ready(function() {
|
|
|
|
<?php include "include/ajax.Setup.php" ?>
|
|
|
|
$(document).on('change', '.price-field', function() {
|
|
var item_num = $(this).attr('item_num');
|
|
var fname = $(this).attr('fname');
|
|
var price = $(this).val();
|
|
var fID = $(this).attr('id');
|
|
|
|
$.ajax({
|
|
url: 'ajax.UpdateDBField.php',
|
|
data: {
|
|
table_name: 'hotlunch_menu_items',
|
|
field_name: fname,
|
|
field_value: price,
|
|
field_type: 'decimal',
|
|
record_num: item_num
|
|
},
|
|
dataType: 'json'
|
|
}).done(function(results) {
|
|
var new_value = '<?php echo($currencySymbol) ?>'+results.new_value;
|
|
$('#'+fID).val(new_value);
|
|
if (results.linked.length > 0) {
|
|
$.each(results.linked, function(key, entry) {
|
|
var linkedField = fname+'_'+entry;
|
|
$("#"+linkedField).html(new_value);
|
|
});
|
|
}
|
|
});
|
|
|
|
});
|
|
|
|
$(document).on('click', '.toggle-field', function() {
|
|
var item_num = $(this).attr('item_num');
|
|
var fname = $(this).attr('fname');
|
|
var spanID = $(this);
|
|
var flag = $(this).html();
|
|
var new_flag = 'Y';
|
|
|
|
if (flag == 'Y') new_flag = 'N';
|
|
|
|
$.ajax({
|
|
url: 'ajax.UpdateDBField.php',
|
|
data: {
|
|
table_name: 'hotlunch_menu_items',
|
|
field_name: fname,
|
|
field_value: new_flag,
|
|
field_type: 'string',
|
|
record_num: item_num
|
|
},
|
|
dataType: 'json'
|
|
}).done(function(results) {
|
|
$(spanID).html(new_flag);
|
|
|
|
if (results.linked.length > 0) {
|
|
$.each(results.linked, function(key, entry) {
|
|
var linkedField = fname+'_'+entry;
|
|
$("#"+linkedField).html(results.new_value);
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
$(document).on('change', '.menu-group-field', function() {
|
|
var item_num = $(this).attr('item_num');
|
|
var fname = $(this).attr('fname');
|
|
var fvalue = $(this).val();
|
|
|
|
$.ajax({
|
|
url: 'ajax.UpdateDBField.php',
|
|
data: {
|
|
table_name: 'hotlunch_menu_items',
|
|
field_name: fname,
|
|
field_value: fvalue,
|
|
field_type: 'string',
|
|
record_num: item_num
|
|
},
|
|
dataType: 'json'
|
|
}).done(function(results) {
|
|
if (results.linked.length > 0) {
|
|
$.each(results.linked, function(key, entry) {
|
|
var linkedField = fname+'_'+entry;
|
|
$("#"+linkedField).html(results.new_value);
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
$("#refresh-screen").click(function(e) {
|
|
e.preventDefault();
|
|
location.reload();
|
|
});
|
|
|
|
$("#delete-selected-items").click(function(e) {
|
|
e.preventDefault();
|
|
|
|
var schedule_num = <?php echo($schedule_num) ?>;
|
|
var id;
|
|
var ids = '';
|
|
var title;
|
|
var titles = '';
|
|
var mtitle;
|
|
var menu_num;
|
|
var pmenu_num = 0;
|
|
var msg = "<?php displayLanguageText('TEXT-CONFIRM-DELETE'); ?>\n";
|
|
|
|
$(".menu-items-checkbox").each(function() {
|
|
id = $(this).attr('id');
|
|
menu_num = $(this).attr('menu_num');
|
|
if ($(this).prop('checked')) {
|
|
if (menu_num != pmenu_num) {
|
|
titles += "\n";
|
|
mtitle = $("#menu-title-"+menu_num).val();
|
|
titles += mtitle+"\n";
|
|
}
|
|
pmenu_num = menu_num;
|
|
|
|
if (ids.length) ids += ',';
|
|
ids += id;
|
|
title = ' - '+$("#menu-item-title-"+id).val();
|
|
titles += title+"\n";
|
|
}
|
|
});
|
|
|
|
if (ids.length == 0) {
|
|
alert("<?php displayLanguageText('ERRORMSG-NO-ITEMS-SELECTED'); ?>");
|
|
return;
|
|
}
|
|
|
|
msg += titles;
|
|
var ans = confirm(msg);
|
|
|
|
if (ans) {
|
|
$.getJSON("ajax.MenuItems.Delete.php",
|
|
{
|
|
table_name: "hotlunch_menu_items",
|
|
schedule_num: schedule_num,
|
|
selected_items: ids,
|
|
action: 'delete-selected-items'
|
|
},
|
|
function(results) {
|
|
if (results.ajax_return_code == -1) {
|
|
alert(results.error_message);
|
|
return;
|
|
}
|
|
|
|
location.reload();
|
|
|
|
var msg = "<?php displayLanguageText('TEXT-PROCESS-COMPLETED'); ?>";
|
|
if (results.ajax_message.length > 0) msg += "\n" + results.ajax_message;
|
|
alert(msg);
|
|
}
|
|
);
|
|
}
|
|
});
|
|
|
|
});
|
|
</script>
|
|
|