506 lines
19 KiB
PHP
506 lines
19 KiB
PHP
<?php
|
|
require_once("include/globals.php");
|
|
|
|
if (SessionActive() != 1 || ! UserLoggedIn()) {
|
|
header("Location: /");
|
|
exit();
|
|
}
|
|
|
|
|
|
// Start the template and output buffering
|
|
startTemplate();
|
|
$templatePageTitle = "";
|
|
$headerArgs = "";
|
|
|
|
|
|
|
|
// 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','Financial Team','Schedule Reporting');
|
|
if (checkPermission($AllowedUserTypes) != 1) {
|
|
echo("<br>\n");
|
|
$error_message = getLanguageText('ERRORMSG-ACCESS-DENIED');
|
|
include "form.messages.php";
|
|
return;
|
|
}
|
|
|
|
|
|
// Set class num for Customers
|
|
db_query("UPDATE people SET class_num = 1, meal_location = 1 WHERE school_num = $base_school_num AND people_type = 'Customer' AND (school_grade IS NULL OR school_grade = '' OR class_num < 10)");
|
|
|
|
|
|
//
|
|
// Process all actions to list and edit records
|
|
//
|
|
$naction = "";
|
|
|
|
if (array_key_exists('schedule_num',$_GET)) $schedule_num = intval($_GET['schedule_num']);
|
|
if (array_key_exists('schedule_num',$_POST)) $schedule_num = intval($_POST['schedule_num']);
|
|
|
|
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($schedule_num)) {
|
|
echo("<br>\n");
|
|
$error_message = getLanguageText('ERRORMSG-INVALID-SCHEDULE-NUM');
|
|
include "form.messages.php";
|
|
return;
|
|
}
|
|
|
|
if (!isset($menu_num)) {
|
|
echo("<br>\n");
|
|
$error_message = getLanguageText('ERRORMSG-NO-MENU-NUM');
|
|
include "form.messages.php";
|
|
return;
|
|
}
|
|
|
|
|
|
// Check if this is a valid schedule
|
|
$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 = getLanguageText('ERRORMSG-INVALID-SCHEDULE');
|
|
include "form.messages.php";
|
|
return;
|
|
}
|
|
|
|
$hotlunch_schedule = db_fetch_array($results);
|
|
|
|
|
|
// 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 = getLanguageText('TEXT-NO-ACCESS-TO-SCHEDULE');
|
|
include "form.messages.php";
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Check if this is a valid menu
|
|
$query = "select * from hotlunch_menu_dates " .
|
|
"where school_num = $school_num " .
|
|
"and schedule_num = $schedule_num " .
|
|
"and record_num = $menu_num";
|
|
$results = db_query($query);
|
|
|
|
if (db_num_rows($results) == 0) {
|
|
echo("<br>\n");
|
|
$error_message = getLanguageText('ERRORMSG-INVALID-MENU');
|
|
include "form.messages.php";
|
|
return;
|
|
}
|
|
|
|
$hotlunch_menu_date = db_fetch_array($results);
|
|
$menu_date = $hotlunch_menu_date['menu_date'];
|
|
$menu_title = $hotlunch_menu_date['menu_title'];
|
|
|
|
|
|
$templatePageTitle = getLanguageText('TEXT-GENERATE-ORDER-LABELS') . " - $menu_title - $menu_date";
|
|
|
|
include "hotlunch_reports.menu.php";
|
|
echo("<br>\n");
|
|
|
|
|
|
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 "form.messages.php";
|
|
|
|
|
|
//
|
|
// Display the menu selection
|
|
//
|
|
?>
|
|
<form method='post' action='/'>
|
|
<table cellpadding='5' cellspacing='1'>
|
|
<tr>
|
|
<td align='left'>
|
|
<?php displayLanguageText('TEXT-MENU-DATE'); ?>:<br>
|
|
<select name='menu_num' class='select-width500'>
|
|
<?php
|
|
$query = "select * from hotlunch_menu_dates " .
|
|
"where school_num = $school_num " .
|
|
"and schedule_num = $schedule_num " .
|
|
"order by sequence,menu_date";
|
|
$results = db_query($query);
|
|
|
|
$selected_date = 'N';
|
|
while ($row = db_fetch_array($results)) {
|
|
$mtitle = $row['menu_title'];
|
|
$mdate = $row['menu_date'];
|
|
$record_num = $row['record_num'];
|
|
|
|
if ($hotlunch_schedule['display_menu_date'] == 'Y') $mtitle .= " - $mdate";
|
|
|
|
$query = "SELECT count(distinct order_num) FROM hotlunch_order_items " .
|
|
"WHERE school_num = $school_num " .
|
|
"AND schedule_num = $schedule_num " .
|
|
"AND menu_num = $record_num";
|
|
$num_orders = db_getVal($query);
|
|
$mtitle .= " ($num_orders)";
|
|
|
|
$selected = "";
|
|
if (isset($menu_num) && $menu_num == $record_num) {
|
|
$selected_date = 'Y';
|
|
$selected = " selected='selected'";
|
|
}
|
|
echo(" <option value='$record_num'$selected>$mtitle</option>\n");
|
|
}
|
|
?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align='center'>
|
|
<input type='submit' name='button' class='btn btn--primary' value="<?php displayLanguageText('TEXT-CHANGE-MENU-DATE'); ?>">
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<input type='hidden' name='action' value='meal-labels'>
|
|
<input type='hidden' name='schedule_num' value='<?php echo($schedule_num) ?>'>
|
|
</form>
|
|
<br>
|
|
<br>
|
|
<?php
|
|
// Get number of orders for this menu date
|
|
$query = "SELECT count(distinct order_num) FROM hotlunch_order_items " .
|
|
"WHERE school_num = $school_num " .
|
|
"AND schedule_num = $schedule_num " .
|
|
"AND menu_num = $menu_num";
|
|
$num_orders = db_getVal($query);
|
|
if ($num_orders > 0) {
|
|
$form_message = getLanguageText('TEXT-ORDERS-FOR-SELECTED-DATE').": $num_orders";
|
|
}
|
|
else {
|
|
$error_message = getLanguageText('TEXT-ORDERS-FOR-SELECTED-DATE').": $num_orders";
|
|
}
|
|
include "form.messages.php";
|
|
?>
|
|
<br>
|
|
<form method='post' action='/' name='itemForm'>
|
|
<table width='800' class='content-table'>
|
|
<tr class='heading'>
|
|
<td colspan='2' align='center'><?php displayLanguageText('TEXT-MENU-ITEM-SELECTION'); ?> - <?php echo($menu_title) ?></td>
|
|
</tr>
|
|
<tr class='data-odd'>
|
|
<td width='350' align='left'><b><?php displayLanguageText('TEXT-SELECT-ALL-MENU-ITEMS'); ?></b> :: </td>
|
|
<td align='left'><input type='checkbox' name='select_all' id='select_all' value='Y' checked='checked'></td>
|
|
</tr>
|
|
<?php
|
|
// Display suppliers and toggle box for each supplier
|
|
$query = "SELECT distinct supplier_name,s.record_num " .
|
|
"FROM suppliers as s, supplier_products as sp, hotlunch_menu_products as hlmp, hotlunch_menu_items as hlmi " .
|
|
"WHERE s.school_num = $supplier_school_num " .
|
|
"AND s.school_num = sp.school_num " .
|
|
"AND hlmp.school_num = $school_num " .
|
|
"AND hlmi.school_num = $school_num " .
|
|
"AND s.status = 'Active' " .
|
|
"AND s.record_num = sp.supplier_num " .
|
|
"AND sp.record_num = hlmp.supplier_product_num " .
|
|
"AND hlmp.menu_item_num = hlmi.record_num " .
|
|
"AND hlmi.menu_num = $menu_num " .
|
|
"ORDER BY supplier_name";
|
|
$suppliers = db_query($query);
|
|
$num_suppliers = db_num_rows($suppliers);
|
|
$count = 0;
|
|
|
|
$radioJavaCode = " if (document.getElementById('select_all').checked) toggleItemCheckboxes(0);\n";
|
|
|
|
while ($row = db_fetch_array($suppliers)) {
|
|
$snum = $row['record_num'];
|
|
$sname = $row['supplier_name'];
|
|
|
|
$radioJavaCode .= " if (document.getElementById('toggle_$snum').checked) toggleItemCheckboxes($snum);\n";
|
|
|
|
$class = 'data-even';
|
|
if ($count % 2) $class = 'data-odd';
|
|
$count++;
|
|
|
|
?>
|
|
<tr class='<?php echo($class) ?>'>
|
|
<td align='left'> - <b><?php echo($sname) ?> :: </b></td>
|
|
<td align='left'><input type='checkbox' name='suppliers[]' id='toggle_<?php echo($snum) ?>' class='supplier-checkbox' value='<?php echo($snum) ?>' checked='checked'></td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
|
|
$class = 'data-even';
|
|
if ($count % 2) $class = 'data-odd';
|
|
$count++;
|
|
?>
|
|
<tr class='<?php echo($class) ?>'>
|
|
<td align='left' valign='top'><b><?php displayLanguageText('TEXT-SELECT'); ?> :: </b></td>
|
|
<td align='left'>
|
|
<input type='radio' name='choose_items' id='choose_items' value='All' checked='checked' onClick='updateItemCheckboxes();'> <?php displayLanguageText('TEXT-ALL-ITEMS'); ?><br>
|
|
<input type='radio' name='choose_items' id='choose_items' value='Hot' onClick='updateItemCheckboxes();'> <?php displayLanguageText('TEXT-HOT-ITEMS'); ?><br>
|
|
<input type='radio' name='choose_items' id='choose_items' value='Cold' onClick='updateItemCheckboxes();'> <?php displayLanguageText('TEXT-COLD-ITEMS'); ?>
|
|
<br>
|
|
</td>
|
|
</tr>
|
|
<tr class='heading'>
|
|
<td colspan='2' align='center'><?php displayLanguageText('TEXT-LABEL-OPTIONS'); ?></td>
|
|
</tr>
|
|
<?php
|
|
$class = 'data-even';
|
|
if ($count % 2) $class = 'data-odd';
|
|
$count++;
|
|
?>
|
|
<tr class='<?php echo($class) ?>'>
|
|
<td align='left' valign='top'><b><?php displayLanguageText('TEXT-STUDENT-NAME-ON-LABELS'); ?> :: </b></td>
|
|
<td align='left'>
|
|
<?php BuildFileRadio("student_label_info.txt","print_student_info","Y","<br>") ?>
|
|
</td>
|
|
</tr>
|
|
<?php
|
|
$class = 'data-even';
|
|
if ($count % 2) $class = 'data-odd';
|
|
$count++;
|
|
?>
|
|
<tr class='<?php echo($class) ?>'>
|
|
<td align='left' valign='top'><b><?php displayLanguageText('TEXT-CLASS-INFO-ON-LABELS'); ?> :: </b></td>
|
|
<td align='left'><input type='checkbox' name='display_class_info' value='Y' checked='checked'></td>
|
|
</tr>
|
|
<?php
|
|
$class = 'data-even';
|
|
if ($count % 2) $class = 'data-odd';
|
|
$count++;
|
|
?>
|
|
<tr class='<?php echo($class) ?>'>
|
|
<td align='left' valign='top'><b><?php displayLanguageText('TEXT-SCHOOL-NAME-ON-LABELS'); ?> :: </b></td>
|
|
<td align='left'><input type='checkbox' name='display_school_name' value='Y' <?php if ($school_record['label_print_school_name'] == 'Y') echo("checked='checked'") ?>></td>
|
|
</tr>
|
|
<?php
|
|
$class = 'data-even';
|
|
if ($count % 2) $class = 'data-odd';
|
|
$count++;
|
|
?>
|
|
<tr class='<?php echo($class) ?>'>
|
|
<td align='left' valign='top'><b><?php displayLanguageText('TEXT-INCLUDE'); ?> :: </b></td>
|
|
<td align='left'>
|
|
<input type='radio' name='selected_include' id='selected_include' value='All' checked='checked'> <?php displayLanguageText('TEXT-ALL-PEOPLE'); ?><br>
|
|
<input type='radio' name='selected_include' id='selected_include' value='Students'> <?php echo($GlobalText['Students']); ?><br>
|
|
<input type='radio' name='selected_include' id='selected_include' value='Staff'> <?php displayLanguageText('TEXT-STAFF-ONLY'); ?>
|
|
</td>
|
|
</tr>
|
|
<?php
|
|
$class = 'data-even';
|
|
if ($count % 2) $class = 'data-odd';
|
|
$count++;
|
|
?>
|
|
<tr class='<?php echo($class) ?>'>
|
|
<td align='left' valign='top'><b><?php displayLanguageText('TEXT-DATE-ON-LABELS'); ?> :: </b></td>
|
|
<td align='left'><?php BuildFileRadio("yn.txt","print_date",'N') ?></td>
|
|
</tr>
|
|
<?php
|
|
$class = 'data-even';
|
|
if ($count % 2) $class = 'data-odd';
|
|
$count++;
|
|
?>
|
|
<tr class='<?php echo($class) ?>'>
|
|
<td align='left' valign='top'><b><?php displayLanguageText('TEXT-PRINT-MEAL-ON-LABELS'); ?> :: </b></td>
|
|
<td align='left'><?php BuildFileRadio("yn.txt","print_meal",'Y') ?></td>
|
|
</tr>
|
|
<?php
|
|
$class = 'data-even';
|
|
if ($count % 2) $class = 'data-odd';
|
|
$count++;
|
|
?>
|
|
<tr class='<?php echo($class) ?>'>
|
|
<td align='left' valign='top'><b><?php echo($GlobalText['SelectedClasses']); ?> :: </b></td>
|
|
<td>
|
|
<table>
|
|
<tr>
|
|
<td align='left'>
|
|
<select name='selected_classes[]' size='8' multiple>
|
|
<!-- <option value='Concession' ><?php displayLanguageText('TEXT-CONCESSION-LABELS'); ?></option> -->
|
|
<?php
|
|
// Get list of classes
|
|
$query = "select c.*,program_name from classes as c left join class_programs as cp on c.class_program = cp.record_num " .
|
|
"where c.school_num = $base_school_num " .
|
|
"order by sequence";
|
|
$cresults = db_query($query);
|
|
|
|
while ($class = db_fetch_array($cresults)) {
|
|
$class_num = $class['record_num'];
|
|
$class_info = getClassInfo($class_num,'internal');
|
|
|
|
echo(" <option value='$class_num' selected='selected'>$class_info</option>\n");
|
|
}
|
|
?>
|
|
<option value='0' selected='selected'><?php displayLanguageText('TEXT-STAFF'); ?></option>
|
|
<?php
|
|
// Check for customers
|
|
$numCustomers = db_getVal("SELECT count(*) FROM hotlunch_order_header WHERE school_num = $base_school_num AND schedule_num = $schedule_num AND ordered_by_type = 'Customer'");
|
|
if ($numCustomers > 0) {
|
|
?>
|
|
<option value='1' selected='selected'><?php displayLanguageText('TEXT-CUSTOMERS'); ?></option>
|
|
<?php
|
|
}
|
|
?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<?php
|
|
$class = 'data-even';
|
|
if ($count % 2) $class = 'data-odd';
|
|
$count++;
|
|
?>
|
|
<tr class='<?php echo($class) ?>'>
|
|
<td colspan='2' align='left'>
|
|
<blockquote>
|
|
<b><?php displayLanguageText('TEXT-SORT-LABELS-BY'); ?> :: </b><br>
|
|
<select name='sort_by'>
|
|
<option value='class_num'><?php displayLanguageText('TEXT-SORT-CLASS-STUDENT-ITEM'); ?></option>
|
|
<option value='class_num_breaks'><?php displayLanguageText('TEXT-SORT-CLASS-STUDENT-ITEM-BREAKS'); ?></option>
|
|
<option value='student_name'><?php displayLanguageText('TEXT-SORT-STUDENT-ITEM'); ?></option>
|
|
<option value='item_division'><?php displayLanguageText('TEXT-SORT-ITEM-CLASS-STUDENT'); ?></option>
|
|
<option value='item_division_breaks'><?php displayLanguageText('TEXT-SORT-ITEM-CLASS-STUDENT-BREAKS'); ?></option>
|
|
<option value='division_item'><?php displayLanguageText('TEXT-SORT-CLASS-ITEM-STUDENT'); ?></option>
|
|
<option value='item_student'><?php displayLanguageText('TEXT-SORT-ITEM-STUDENT'); ?></option>
|
|
</select>
|
|
</blockquote>
|
|
</td>
|
|
</tr>
|
|
<?php
|
|
$class = 'data-even';
|
|
if ($count % 2) $class = 'data-odd';
|
|
$count++;
|
|
?>
|
|
<tr class='<?php echo($class) ?>'>
|
|
<td colspan='2' align='left'>
|
|
<blockquote>
|
|
<b><?php displayLanguageText('TEXT-LABEL-SIZE'); ?> :: </b><br>
|
|
<select name='labelFormat'>
|
|
<option value='mailinglabels'><?php displayLanguageText('TEXT-LABELS-STANDARD-MAILING'); ?> - 2 5/8" x 1"</option>
|
|
<option value='mailinglabels-o1'><?php displayLanguageText('TEXT-LABELS-STANDARD-MAILING'); ?> - 2 5/8" x 1" (<?php displayLanguageText('TEXT-OFFSET'); ?>)</option>
|
|
<option value='mailinglabels-large'><?php displayLanguageText('TEXT-LABELS-STANDARD-SHIPPING'); ?> - 4" x 2"</option>
|
|
<option value='shippinglabels'><?php displayLanguageText('TEXT-LABELS-LARGE-SHIPPING'); ?> - 3 1/2" x 5"</option>
|
|
<option value='shippinglabels6'><?php displayLanguageText('TEXT-LABELS-LARGE-SHIPPING6'); ?> - 3 1/2" x 4"</option>
|
|
<option value='2perpage'><?php displayLanguageText('TEXT-2-PER-PAGE'); ?></option>
|
|
</select>
|
|
</blockquote>
|
|
</td>
|
|
</tr>
|
|
<?php
|
|
$class = 'data-even';
|
|
if ($count % 2) $class = 'data-odd';
|
|
$count++;
|
|
?>
|
|
<tr class='<?php echo($class) ?>'>
|
|
<td colspan='2' align='left'>
|
|
<blockquote>
|
|
<b><?php displayLanguageText('TEXT-FONT-SIZE'); ?> :: </b><br>
|
|
<select name='font_size'>
|
|
<?php BuildFileList("label-font.txt") ?>
|
|
</select>
|
|
</blockquote>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<br>
|
|
<table width='500' class='content-table' style='display:none'>
|
|
<tr class='heading'>
|
|
<td colspan='2' align='center'><?php echo($menu_title) ?></td>
|
|
</tr>
|
|
<?php
|
|
|
|
// Display the menu items
|
|
$query = "select * from hotlunch_menu_items " .
|
|
"where school_num = $school_num " .
|
|
"and menu_num = $menu_num " .
|
|
"and item_type != 'Heading' " .
|
|
"order by sequence";
|
|
$menu_items = db_query($query);
|
|
|
|
$items = array();
|
|
$inum = 0;
|
|
while ($menu_item = db_fetch_array($menu_items)) {
|
|
$item_num = $menu_item['record_num'];
|
|
$label_title = $menu_item['label_title'];
|
|
if (strlen($label_title) == 0) $label_title = $menu_item['item_title'];
|
|
|
|
$class = 'data-even';
|
|
if ($count % 2) $class = 'data-odd';
|
|
$count++;
|
|
|
|
$items[$inum]['fname'] = "item_$item_num";
|
|
$items[$inum]['cat'] = $menu_item['hot_cold_food'];
|
|
$query = "SELECT supplier_num " .
|
|
"FROM hotlunch_menu_products as hlmp, supplier_products as sp " .
|
|
"WHERE hlmp.school_num = $school_num " .
|
|
"AND sp.school_num = $supplier_school_num " .
|
|
"AND hlmp.menu_item_num = $item_num " .
|
|
"AND hlmp.supplier_product_num = sp.record_num";
|
|
$items[$inum]['snum'] = db_getVal($query);
|
|
$inum++;
|
|
|
|
?>
|
|
<tr class='<?php echo($class) ?>'>
|
|
<td width='460' align='left'><?php echo($label_title) ?> :: </td>
|
|
<td width='40' align='center'><input type='checkbox' name='item_<?php echo($item_num) ?>' id='item_<?php echo($item_num) ?>' checked='checked' value='Y'></td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
?>
|
|
</table>
|
|
<br>
|
|
<input type='hidden' name='action' value='meal-labels-generate'>
|
|
<input type='hidden' name='schedule_num' value='<?php echo($schedule_num) ?>'>
|
|
<input type='hidden' name='menu_num' value='<?php echo($menu_num) ?>'>
|
|
<input type='submit' name='button' class='btn btn--primary' value="<?php displayLanguageText('TEXT-GENERATE-LABELS'); ?>">
|
|
</form>
|
|
<br>
|
|
<?php include "hotlunch_orders.print_buttons.php"; ?>
|
|
|
|
<script>
|
|
$(document).ready(function(){
|
|
$("#select_all").change(function() {
|
|
if (this.checked) {
|
|
$(".supplier-checkbox").prop('checked',true);
|
|
}
|
|
else {
|
|
$(".supplier-checkbox").prop('checked',false);
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<script language='javascript'>
|
|
|
|
function updateItemCheckboxes() {
|
|
|
|
clearItemCheckboxes();
|
|
<?php echo($radioJavaCode) ?>
|
|
|
|
}
|
|
|
|
function clearItemCheckboxes() {
|
|
|
|
<?php
|
|
for ($i = 0; $i < count($items); $i++) {
|
|
$item = $items[$i]['fname'];
|
|
echo(" var cb$i = document.getElementById('$item');\n");
|
|
echo(" cb$i.checked = false;\n");
|
|
}
|
|
?>
|
|
}
|
|
|
|
</script>
|
|
<?php
|
|
endTemplate();
|
|
?>
|