First Commit
This commit is contained in:
1 parent
5eb9dd037d
commit
2e62c0e60b
11877 files changed
+2035312
No files matched your search
@@ -0,0 +1,358 @@
|
||||
<?php
|
||||
|
||||
$CurrentScheduleRecord = array();
|
||||
$CurrentScheduleMenus = array();
|
||||
$CurrentScheduleMenuItems = array();
|
||||
|
||||
$OrderingCutOffTime = date("Y-m-d H:i:s",time());
|
||||
$CurrentMenuActive = 'Y';
|
||||
$menu_price_category = 'Regular';
|
||||
|
||||
|
||||
function buildOrderForm($schedule_num, $source, $ordered_by_num, $order_num) {
|
||||
|
||||
global $school_num, $school_record, $CurrentScheduleRecord;
|
||||
|
||||
$ret = initializeOrderForm($schedule_num);
|
||||
|
||||
switch ($ret) {
|
||||
case -1:
|
||||
header("Location: /?error_message=".urlencode(getLanguageText('ERRORMSG-INVALID-SCHEDULE-NUM')));
|
||||
return;
|
||||
break;
|
||||
|
||||
case -2:
|
||||
header("Location: /?error_message=".urlencode(getLanguageText('ERRORMSG-NO-MENU-DATES')));
|
||||
return;
|
||||
break;
|
||||
|
||||
case -3:
|
||||
header("Location: /?error_message=".urlencode(getLanguageText('ERRORMSG-NO-MENU-ITEMS')));
|
||||
return;
|
||||
break;
|
||||
|
||||
case 0:
|
||||
break;
|
||||
}
|
||||
|
||||
if ($ordered_by_num == 0) buildStudentFields();
|
||||
|
||||
echo("<div class='order-form-div'>");
|
||||
buildOrderMenus($schedule_num, $source, $ordered_by_num, $order_num);
|
||||
echo("</div>");
|
||||
}
|
||||
|
||||
|
||||
function initializeOrderForm($schedule_num) {
|
||||
|
||||
global $school_num, $school_record, $CurrentScheduleRecord, $OrderingCutOffTime;
|
||||
|
||||
if (!isset($schedule_num) || intval($schedule_num) == 0) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
$schedule_num = intval($schedule_num);
|
||||
|
||||
|
||||
// Validate the schedule
|
||||
$query = "SELECT * FROM hotlunch_schedules WHERE school_num = $school_num AND record_num = $schedule_num";
|
||||
writeLog($query);
|
||||
$results = db_query($query);
|
||||
|
||||
if (db_num_rows($results) != 1) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
$schedule_record = db_fetch_assoc($results);
|
||||
$CurrentScheduleRecord = $schedule_record;
|
||||
writeLog("Current Schedule: ".$CurrentScheduleRecord['schedule_name']);
|
||||
|
||||
|
||||
// Check for menu dates in the schedule
|
||||
$numMenus = db_getVal("SELECT count(*) FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num");
|
||||
if ($numMenus == 0) return(-2);
|
||||
|
||||
|
||||
// Check for menu items in the schedule
|
||||
$query = "SELECT count(*) FROM hotlunch_menu_items " .
|
||||
"WHERE school_num = $school_num " .
|
||||
"AND menu_num IN (SELECT record_num FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num)";
|
||||
$numItems = db_getVal($query);
|
||||
if ($numItems == 0) return(-3);
|
||||
|
||||
|
||||
// Check if access to schedule is permitted
|
||||
if (($_SESSION['UserInfo']['type'] == 'Parent' || $_SESSION['UserInfo']['type'] == 'Staff')) {
|
||||
$ret = checkScheduleAccess($schedule_num, $ordered_by_num);
|
||||
if ($ret != 1) return($ret);
|
||||
}
|
||||
|
||||
|
||||
// Determine ordering cutoff date
|
||||
$today = date("Y-m-d",time());
|
||||
$schedule_type = $schedule_record['schedule_type'];
|
||||
writeLog("schedule_type: $schedule_type");
|
||||
|
||||
// Get first menu date
|
||||
if ($schedule_type == 'Hot Lunch' || $schedule_type == 'Date Sensitive') {
|
||||
$query = "SELECT min(menu_date) FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num AND menu_type = 'Regular'";
|
||||
$first_menu_date = db_getVal($query);
|
||||
|
||||
$days_prior = $schedule_record['days_prior_to_order_date'];
|
||||
if ($days_prior == 0 && date("H",time()) >= $schedule_record['order_until_hour']) $days_prior = 1;
|
||||
$menu_date_cutoff = date("Y-m-d",time() + $days_prior * 60 * 60 * 24 - 60);
|
||||
if ($schedule_record['end_order_datetime'] < $first_menu_date) $menu_date_cutoff = $today;
|
||||
if ($schedule_record['menu_cutoff_date'] > $today) $menu_date_cutoff = $schedule_record['menu_cutoff_date'];
|
||||
|
||||
$CurrentScheduleRecord['schedule_type_flag'] = 'Date Sensitive';
|
||||
}
|
||||
else {
|
||||
$menu_date_cutoff = date("Y-m-d H:i:s",time() + 24 * 60 * 60);
|
||||
|
||||
$CurrentScheduleRecord['schedule_type_flag'] = 'Not Date Sensitive';
|
||||
}
|
||||
|
||||
$OrderingCutOffTime = $menu_date_cutoff;
|
||||
writeLog("OrderingCutOffTime: $OrderingCutOffTime");
|
||||
}
|
||||
|
||||
|
||||
function buildStudentFields() {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
function buildOrderMenus($schedule_num, $source, $ordered_by_num, $order_num) {
|
||||
|
||||
global $school_num, $school_record, $CurrentScheduleRecord, $OrderingCutOffTime, $CurrentMenuActive;
|
||||
|
||||
if (!isset($schedule_num) || intval($schedule_num) == 0) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
$schedule_num = intval($schedule_num);
|
||||
$schedule_record = $CurrentScheduleRecord;
|
||||
$dateNow = date("Y-m-d H:i:00",time());
|
||||
|
||||
$query = "SELECT * FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num";
|
||||
writeLog($query);
|
||||
$menuDates = db_query($query);
|
||||
|
||||
if (db_num_rows($menuDates) == 0) return(-1);
|
||||
|
||||
while ($mdate = db_fetch_assoc($menuDates)) {
|
||||
$CurrentScheduleMenus[] = $mdate;
|
||||
$menu_num = $mdate['record_num'];
|
||||
$menu_title = $mdate['menu_title'];
|
||||
$menu_date = $mdate['menu_date'];
|
||||
|
||||
$tclass = 'menudate-header';
|
||||
|
||||
if (($_SESSION['UserInfo']['type'] == 'Parent' || $_SESSION['UserInfo']['type'] == 'Staff')) {
|
||||
$ret = checkMenuAccess($menu_num, $ordered_by_num);
|
||||
if ($ret != 1) continue;
|
||||
}
|
||||
|
||||
$menuDateActive = "Y";
|
||||
$menu_available = $mdate['available'];
|
||||
if ($CurrentScheduleRecord['schedule_type_flag'] == 'Date Sensitive') {
|
||||
if ($mdate['menu_date'] < $OrderingCutOffTime) $menuDateActive = 'N';
|
||||
if ($schedule_record['custom_menu_end_dates'] == 'Y' && $mdate['menu_end_order_datetime'] < $dateNow) $menuDateActive = 'N';
|
||||
|
||||
if ($menuDateActive == 'N' || $menu_available == 'N') {
|
||||
$tclass = 'menudate-past';
|
||||
if ($_SESSION['UserInfo']['type'] == 'Parent' || $_SESSION['UserInfo']['type'] == 'Staff' || $_SESSION['UserInfo']['type'] == 'Guest') {
|
||||
$menu_title .= " - " . getLanguageText('TEXT-NOT-AVAILABLE-AT-THIS-TIME');
|
||||
//MWFMWF if ($hide_unavailable_dates == 'Y') $rowStyle = " style='display: none;'";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$menu_date = "";
|
||||
writeLog("menuDateActive: $menuDateActive");
|
||||
if ($schedule_record['display_menu_date'] == 'Y' && $mdate['menu_type'] != 'Footer') {
|
||||
$menu_date = date("l F jS, Y",strtotime($mdate['menu_date']));
|
||||
writeLog("menu_date: $menu_date");
|
||||
}
|
||||
|
||||
$CurrentMenuActive = $menuDateActive;
|
||||
|
||||
if ($CurrentScheduleRecord['schedule_type_flag'] == 'Date Sensitive')
|
||||
writeLog(" - Menu: $menu_title - $menu_date ($menu_num)");
|
||||
else
|
||||
writeLog(" - Menu: $menu_title ($menu_num)");
|
||||
|
||||
|
||||
displayMenuTitle($menu_title, $menu_num, $menu_date, $tclass);
|
||||
|
||||
buildMenu($schedule_num, $source, $menu_num, $menuDateActive, $tclass);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function checkScheduleAccess($schedule_num, $ordered_by_num) {
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
function checkMenuAccess($menu_num, $ordered_by_num) {
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
function displayMenuTitle($menu_title, $menu_num, $menu_date, $tclass) {
|
||||
|
||||
global $school_num, $school_record, $CurrentScheduleRecord, $OrderingCutOffTime, $CurrentMenuActive;
|
||||
|
||||
$tableClass = "menu-active-$CurrentMenuActive";
|
||||
|
||||
echo("<table width='95%' menu_num='$menu_num' visible='$CurrentMenuActive' class='menu-title-table $tableClass'>\n");
|
||||
echo("<tr>\n");
|
||||
echo("<td class='menu-header-div $tclass'>");
|
||||
echo("<div class='menu-title-div'> $menu_title</div>");
|
||||
echo("<div class='menu-date-div'>$menu_date </div>");
|
||||
echo("</td>");
|
||||
echo("</tr>\n");
|
||||
echo("</table>\n");
|
||||
}
|
||||
|
||||
|
||||
function buildMenu($schedule_num, $source, $menu_num, $menuDateActive, $tclass) {
|
||||
|
||||
global $school_num, $school_record, $CurrentScheduleRecord, $OrderingCutOffTime;
|
||||
|
||||
if (!isset($schedule_num) || intval($schedule_num) == 0) {
|
||||
return(-1);
|
||||
}
|
||||
|
||||
$schedule_num = intval($schedule_num);
|
||||
$menu_num = intval($menu_num);
|
||||
|
||||
$query = "SELECT * FROM hotlunch_menu_items " .
|
||||
"WHERE school_num = $school_num " .
|
||||
"AND menu_num = $menu_num " .
|
||||
"AND active != 'N' " .
|
||||
"ORDER BY sequence";
|
||||
writeLog($query);
|
||||
$menuItems = db_query($query);
|
||||
|
||||
echo("<div id='menu-div-$menu_num' class='menu-div-active-$menuDateActive'>\n");
|
||||
|
||||
while ($row = db_fetch_assoc($menuItems)) {
|
||||
$item_type = $row['item_type'];
|
||||
$item_type = $row['item_type'];
|
||||
|
||||
switch ($item_type) {
|
||||
case 'Item':
|
||||
displayMenuItem($schedule_num, $source, $menu_num, $row, $menuDateActive, $tclass);
|
||||
break;
|
||||
|
||||
case 'Heading':
|
||||
displayMenuHeading($schedule_num, $source, $menu_num, $row, $menuDateActive, $tclass);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
echo("</div>");
|
||||
}
|
||||
|
||||
|
||||
function displayMenuHeading($schedule_num, $source, $menu_num, $row, $menuDateActive, $tclass) {
|
||||
|
||||
global $school_num, $school_record, $CurrentScheduleRecord, $OrderingCutOffTime, $CurrentMenuActive;
|
||||
|
||||
extract($row);
|
||||
|
||||
$tableClass = "menu-active-$CurrentMenuActive";
|
||||
|
||||
echo("<table menu_num='$menu_num' class='menu-heading-table $tableClass'>\n");
|
||||
echo("<tr class='menu-subheading'>\n");
|
||||
echo("<td class='menudate-subheader'>");
|
||||
echo("$item_title");
|
||||
echo("</td>");
|
||||
echo("</tr>\n");
|
||||
echo("</table>\n");
|
||||
}
|
||||
|
||||
|
||||
function displayMenuItem($schedule_num, $source, $menu_num, $row, $menuDateActive, $tclass) {
|
||||
|
||||
global $school_num, $school_record, $CurrentScheduleRecord, $OrderingCutOffTime, $CurrentMenuActive, $menu_price_category, $currencySymbol;
|
||||
|
||||
extract($row);
|
||||
|
||||
$tableClass = "menu-active-$CurrentMenuActive";
|
||||
if (!isset($currencySymbol)) $currencySymbol = $school_record['currency_symbol'];
|
||||
|
||||
$display_price = $CurrentScheduleRecord['display_item_price'];
|
||||
$display_price = $CurrentScheduleRecord['schedule_prices'];
|
||||
writeLog("display_price: $display_price");
|
||||
|
||||
$item_price = "";
|
||||
$itemPrice = 0;
|
||||
$alt_flag = "alt-prices='N'";
|
||||
|
||||
if ($display_price == 'Y') {
|
||||
switch ($source) {
|
||||
case 'On-Line':
|
||||
$itemPrice = $online_price;
|
||||
$item_price = $currencySymbol . number_format($itemPrice,2);
|
||||
|
||||
$multiple = false;
|
||||
if ($school_record['implement_multiple_item_prices'] == 'Y') {
|
||||
if ($number_of_alternate_prices > 0 && $menu_price_category == 'Regular') {
|
||||
$multiple = true;
|
||||
$alt_flag = "alt-prices='Y'";
|
||||
|
||||
$item_price_d = "<select name='alt_prices_$record_num' id='alt_prices_$record_num' menu_item='$record_num' class='alternate-prices'>";
|
||||
$item_price_d .= "<option value='$itemPrice'>$item_price</option>";
|
||||
for ($n = 1; $n <= $number_of_alternate_prices; $n++) {
|
||||
$fname = "alternate_price$n";
|
||||
$alt_price = $$fname;
|
||||
$item_price_d .= "<option value='$alt_price'>$currencySymbol$alt_price</option>";
|
||||
}
|
||||
$item_price_d .= "</select>";
|
||||
$item_price = $item_price_d;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'Paper':
|
||||
$itemPrice = $offline_price;
|
||||
$item_price = $currencySymbol . number_format($itemPrice,2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$qtyfield = "<input type='text' name='qty-$record_num' id='qty-$record_num' class='item-qty' menu_num='$menu_num' menu_item='$record_num' size='2' " .
|
||||
"style='width: 40px;' value=''>";
|
||||
|
||||
$pricefield = "<input type='hidden' id='price-$record_num' value='$itemPrice' $alt_flag>";
|
||||
|
||||
$extendedpricefield = "<span name='extended-price-$record_num' id='extended-price-$record_num' menu_num='$menu_num' " .
|
||||
"style='width: 200px; border: none; text-align: right;'>";
|
||||
|
||||
echo("<table class='menu-item-table $tableClass'>\n");
|
||||
echo("<tr>\n");
|
||||
echo("<td class='menu-item-td'>");
|
||||
echo("<div menu_item='$record_num' class='item-qty-decrease'><img src='images/icons/subtract16.png' width='16' height='16' hspace='5'></div>");
|
||||
echo("<div menu_item='$record_num' class='menu-item-title-div'><b>$item_title</b></div>");
|
||||
echo("<div class='menu-item-price-div'>$item_price</div>");
|
||||
echo("<div class='menu-item-qty-div'>$qtyfield</div>");
|
||||
echo("<div class='menu-item-extended-price-div'>$extendedpricefield</div>");
|
||||
echo("<div menu_item='$record_num' class='item-qty-increase'><img src='images/icons/add16.png' width='16' height='16' hspace='5'></div>");
|
||||
|
||||
if (strlen($item_description)) {
|
||||
echo("<br>\n");
|
||||
echo("<div menu_item='$record_num' class='item-qty-increase item-description-div'>- $item_description</div>\n");
|
||||
}
|
||||
|
||||
echo($pricefield);
|
||||
|
||||
echo("</td>");
|
||||
echo("</tr>\n");
|
||||
echo("</table>\n");
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
Reference in new issue
Block a user