Files
HotLunches/hotlunch.menu_summary.csv.php
2026-10-19 15:22:52 -07:00

148 lines
5.5 KiB
PHP

<?php
$ValidAccess = 2010;
include "include/globals.php";
if (array_key_exists('schedule_num', $_POST)) $schedule_num = $_POST['schedule_num'];
if (array_key_exists('menu_num', $_POST)) $menu_num = $_POST['menu_num'];
if (!isset($schedule_num) || !isset($menu_num)) {
$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();
}
$Groups = db_query("SELECT DISTINCT menu_group FROM hotlunch_menu_items WHERE school_num = $school_num AND menu_num = $menu_num AND menu_group >= 'A'");
$numGroups = db_num_rows($Groups);
if ($numGroups == 0) {
$form_message = "";
$error_message = getLanguageText('ERRORMSG-NO-GROUPS-SELECTED');
header("Location: /?action=schedule-reports&schedule_num=$schedule_num&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
exit();
}
$Combo1 = array();
$Combo2 = array();
$Combo3 = array();
while ($row = db_fetch_assoc($Groups)) {
extract($row);
$entry = $_POST["group$menu_group"];
switch ($entry) {
case '1':
$Combo1[] = "'$menu_group'";
break;
case '2':
$Combo2[] = "'$menu_group'";
break;
case '3':
$Combo3[] = "'$menu_group'";
break;
}
}
if (count($Combo1)) $combo1 = implode(',',$Combo1);
if (count($Combo2)) $combo2 = implode(',',$Combo2);
if (count($Combo3)) $combo3 = implode(',',$Combo3);
if (!isset($combo1) || strlen($combo1) == 0) {
$form_message = "";
$error_message = getLanguageText('ERRORMSG-COMBO-COMPONENT-NOT-SPECIFIED').": 1";
header("Location: /?action=schedule-reports&schedule_num=$schedule_num&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
exit();
}
if (!isset($combo2) || strlen($combo2) == 0) {
$form_message = "";
$error_message = getLanguageText('ERRORMSG-COMBO-COMPONENT-NOT-SPECIFIED').": 2";
header("Location: /?action=schedule-reports&schedule_num=$schedule_num&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
exit();
}
if (!isset($combo3) || strlen($combo3) == 0) {
$form_message = "";
$error_message = getLanguageText('ERRORMSG-COMBO-COMPONENT-NOT-SPECIFIED').": 3";
header("Location: /?action=schedule-reports&schedule_num=$schedule_num&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
exit();
}
$GroupBy = "1,2";
$total_col = "item_title2";
$Select = "SELECT hloi.menu_item_num AS item1, hloi2.menu_item_num AS item2";
$From = "FROM hotlunch_order_items AS hloi, hotlunch_order_items AS hloi2";
$Where = "WHERE hloi.school_num = $school_num " .
"AND hloi.schedule_num = $schedule_num " .
"AND hloi.menu_num = $menu_num " .
"AND hloi.menu_item_num IN (SELECT record_num FROM hotlunch_menu_items WHERE school_num = $school_num AND menu_num = $menu_num AND menu_group IN ($combo1)) " .
"AND hloi2.school_num = $school_num " .
"AND hloi2.schedule_num = $schedule_num " .
"AND hloi2.menu_num = $menu_num " .
"AND hloi2.menu_item_num IN (SELECT record_num FROM hotlunch_menu_items WHERE school_num = $school_num AND menu_num = $menu_num AND menu_group IN ($combo2)) " .
"AND hloi.order_num = hloi2.order_num ";
if (isset($combo3) && strlen($combo3)) {
$Select .= ", hloi3.menu_item_num AS item3";
$From .= ", hotlunch_order_items AS hloi3";
$Where .= "AND hloi3.school_num = $school_num " .
"AND hloi3.schedule_num = $schedule_num " .
"AND hloi3.menu_num = $menu_num " .
"AND hloi3.menu_item_num IN (SELECT record_num FROM hotlunch_menu_items WHERE school_num = $school_num AND menu_num = $menu_num AND menu_group IN ($combo3)) " .
"AND hloi.order_num = hloi3.order_num ";
$GroupBy = "1,2,3";
$total_col = "item_title3";
}
$query = "$Select, COUNT(*) AS qty $From $Where GROUP BY $GroupBy";
// echo("$query\n\n");
$results = db_query($query);
$totals = array();
$data = array();
while ($row = db_fetch_assoc($results)) {
extract($row);
$item_title1 = db_getVal("SELECT item_title FROM hotlunch_menu_items " .
"WHERE school_num = $school_num " .
"AND menu_num = $menu_num " .
"AND record_num = $item1");
$item_title2 = db_getVal("SELECT item_title FROM hotlunch_menu_items " .
"WHERE school_num = $school_num " .
"AND menu_num = $menu_num " .
"AND record_num = $item2");
$item_title3 = "";
if (isset($combo3) && strlen($combo3)) {
$item_title3 = db_getVal("SELECT item_title FROM hotlunch_menu_items " .
"WHERE school_num = $school_num " .
"AND menu_num = $menu_num " .
"AND record_num = $item3");
}
// printf("%-60s %10d\n","$item_title1 $item_title2 $item_title3",$qty);
$data[] = array("$item_title1 $item_title2 $item_title3",$qty);
if (isset($totals[$$total_col])) $totals[$$total_col] += $qty;
else $totals[$$total_col] = $qty;
}
// echo("\n");
$data[] = array();
foreach ($totals AS $key => $val) {
// echo("$key -> $val\n");
$data[] = array($key,$val);
}
$fname = genFileName("menu-summary.csv");
xlsData($data,array(getLanguageText('TEXT-ITEM'),getLanguageText('TEXT-QUANTITY')),$fname);
?>