130 lines
3.9 KiB
PHP
130 lines
3.9 KiB
PHP
<?php
|
|
$ValidAccess = 2010;
|
|
include "include/globals.php";
|
|
|
|
// startLog("hotlunch.ordered-items.csv");
|
|
|
|
if (array_key_exists('schedule_num', $_GET)) $schedule_num = intval($_GET['schedule_num']);
|
|
if (array_key_exists('selected_menus', $_GET)) $selected_menus = $_GET['selected_menus'];
|
|
|
|
if (!isset($schedule_num) || !isset($selected_menus)) {
|
|
$form_message = "";
|
|
$error_message = getLanguageText('ERRORMSG-MISSING-DATA');
|
|
header("Location: /?action=schedule-reports&schedule_num=$schedule_num&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
|
|
exit();
|
|
}
|
|
|
|
|
|
// Get price categories
|
|
$query = "SELECT distinct price_category FROM hotlunch_order_header WHERE school_num = $school_num AND schedule_num = $schedule_num";
|
|
$results = db_query($query);
|
|
|
|
$Categories = array();
|
|
$CategoryCols = array();
|
|
$count = 0;
|
|
while ($row = db_fetch_assoc($results)) {
|
|
extract($row);
|
|
$Categories[] = $price_category;
|
|
$CategoryCols[$price_category] = $count;
|
|
$count++;
|
|
}
|
|
|
|
|
|
// Get menus
|
|
$query = "SELECT * FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num AND record_num IN ($selected_menus) ORDER BY sequence";
|
|
$results = db_query($query);
|
|
|
|
$MenuDates = array();
|
|
$MenuItems = array();
|
|
while ($row = db_fetch_assoc($results)) {
|
|
$MenuDates[] = $row;
|
|
$menu_num = $row['record_num'];
|
|
writeLog($row['menu_title']);
|
|
|
|
// Get menu items
|
|
$query = "SELECT * FROM hotlunch_menu_items WHERE school_num = $school_num AND menu_num = $menu_num ORDER BY sequence";
|
|
$mitems = db_query($query);
|
|
|
|
$menuItems = array();
|
|
while ($row = db_fetch_assoc($mitems)) {
|
|
$menuItems[] = $row;
|
|
writeLog(" - ".$row['item_title']);
|
|
}
|
|
|
|
$MenuItems[$menu_num] = $menuItems;
|
|
}
|
|
|
|
|
|
|
|
$data[] = array();
|
|
|
|
for ($m = 0; $m < count($MenuDates); $m++) {
|
|
$menuDate = $MenuDates[$m];
|
|
$mtitle = $menuDate['menu_title'];
|
|
$mdate = $menuDate['menu_date'];
|
|
$menu_num = $menuDate['record_num'];
|
|
|
|
$entry = array();
|
|
$entry[] = "$mtitle - $mdate";
|
|
$data[] = $entry;
|
|
|
|
$menuItems = $MenuItems[$menu_num];
|
|
for ($i = 0; $i < count($menuItems); $i++) {
|
|
$menuItem = $menuItems[$i];
|
|
$entry = array();
|
|
|
|
$item_title = $menuItem['item_title'];
|
|
$item_num = $menuItem['record_num'];
|
|
|
|
$entry[] = " - $item_title";
|
|
for ($j = 0; $j < count($Categories); $j++) {
|
|
$entry[] = '';
|
|
$entry[] = '';
|
|
}
|
|
|
|
|
|
// Get ordered item values
|
|
$query = "SELECT price_category,avg(menu_item_price) as price,sum(qty) AS qty FROM hotlunch_order_items AS hloi, hotlunch_order_header AS hloh " .
|
|
"WHERE hloi.school_num = $school_num " .
|
|
"AND hloh.school_num = $school_num " .
|
|
"AND hloi.schedule_num = $schedule_num " .
|
|
"AND hloh.schedule_num = $schedule_num " .
|
|
"AND hloi.order_num = hloh.record_num " .
|
|
"AND hloi.menu_item_num = $item_num " .
|
|
"GROUP BY 1";
|
|
writeLog($query);
|
|
$results = db_query($query);
|
|
if (db_num_rows($results)) {
|
|
while ($row = db_fetch_assoc($results)) {
|
|
$price = $row['price'];
|
|
$qty = $row['qty'];
|
|
$cat = $row['price_category'];
|
|
$col = intval($CategoryCols[$cat]) * 2 + 1;
|
|
|
|
$entry[$col] = $qty;
|
|
$entry[$col + 1] = $currencySymbol.number_format($price,2);
|
|
}
|
|
}
|
|
|
|
$data[] = $entry;
|
|
}
|
|
$data[] = '';
|
|
}
|
|
|
|
$titles1 = array(getLanguageText('TEXT-MENU-ITEM'));
|
|
$titles2 = array('');
|
|
for ($i = 0; $i < count($Categories); $i++) {
|
|
$cat = $Categories[$i];
|
|
$cat = getLanguageText('TEXT-'.str_replace(' ','-',strtoupper($cat)));
|
|
$titles1[] = $cat;
|
|
$titles1[] = $cat;
|
|
$titles2[] = getLanguageText('TEXT-QUANTITY');
|
|
$titles2[] = getLanguageText('TEXT-PRICE');
|
|
}
|
|
$titles = array($titles1, $titles2);
|
|
|
|
$fname = genFileName("ordered-items.csv");
|
|
xlsData($data,array(),$fname,$titles);
|
|
|
|
?>
|