Files
2026-10-19 15:22:52 -07:00

356 lines
13 KiB
PHP

<?php
require_once("include/globals.php");
if (SessionActive() != 1 || ! UserLoggedIn()) {
header("Location: /?error_message=" . urlencode(getLanguageText('ERRORMSG-SESSION-EXPIRED')));
exit();
}
// Ensure that only valid user types have access to this module
$AllowedUserTypes = array('SuperUser','System Administrator');
if (checkPermission($AllowedUserTypes) != 1) {
$error_message = getLanguageText('ERRORMSG-ACCESS-DENIED');
$action = '';
$naction = '';
header("Location: /?action=$action&naction=$naction$headerArgs&form_message=" . urlencode($form_message) . "&error_message=" . urlencode($error_message));
exit();
}
// startLog("order_log.php");
writeLog(print_r($_POST,true));
//
// Process all actions to list and edit records
//
$action = "order-log";
$CurrentTable = "hotlunch_order_change_log";
$FormFile = "";
$OrderBy = "log_time asc";
// Start the template and output buffering
startTemplate();
$templatePageTitle = getLanguageText('TEXT-ORDER-LOG');
$headerArgs = "";
if (array_key_exists('selected_user_num',$_GET)) $selected_user_num = $_GET['selected_user_num'];
if (array_key_exists('selected_user_num',$_POST)) $selected_user_num = $_POST['selected_user_num'];
if (array_key_exists('selected_order_num',$_GET)) $selected_order_num = $_GET['selected_order_num'];
if (array_key_exists('selected_order_num',$_POST)) $selected_order_num = $_POST['selected_order_num'];
if (array_key_exists('selected_people_num',$_GET)) $selected_people_num = $_GET['selected_people_num'];
if (array_key_exists('selected_people_num',$_POST)) $selected_people_num = $_POST['selected_people_num'];
if (array_key_exists('selected_start_date',$_POST)) $selected_start_date = $_POST['selected_start_date'];
if (array_key_exists('selected_end_date',$_POST)) $selected_end_date = $_POST['selected_end_date'];
$dateSearch = false;
if (isset($selected_start_date) && isset($selected_end_date)) $dateSearch = true;
$school_num = $school_record['record_num'];
$message_width = 400;
include "form.messages.php";
$ParametersEntered = false;
// Process naction parameters
if (array_key_exists('naction',$_GET) && strlen($_GET['naction']) > 0) $naction = $_GET['naction'];
//
// Parse any parameters
//
$where = "where school_num = $school_num ";
// View only a selected user_num
if (isset($selected_user_num) && strlen($selected_user_num) > 0) {
$where .= "and user_num = '" . intval($selected_user_num) . "' ";
$ParametersEntered = true;
}
// View only a selected order_num
if (isset($selected_order_num) && strlen($selected_order_num) > 0) {
$where .= "and order_num = '" . intval($selected_order_num) . "' ";
$ParametersEntered = true;
}
// View only a selected people_num
if (isset($selected_people_num) && strlen($selected_people_num) > 0) {
$where .= "and ordered_by_num = '" . intval($selected_people_num) . "' ";
$ParametersEntered = true;
}
if ($dateSearch) {
$where .= "and updated_time BETWEEN '$selected_start_date 00:00:00' AND '$selected_end_date 23:59:59' ";
$ParametersEntered = true;
}
if (!isset($selected_start_date)) $selected_start_date = date("Y-m-d",time());
if (!isset($selected_end_date)) $selected_end_date = date("Y-m-d",time());
?>
<br>
<form method='post' name='orderlog_date_search' id='orderlog_date_search' action="/">
<table width='500' cellpadding='5' class='content-table'>
<tr>
<td align='left'>
<?php displayLanguageText('TEXT-START-DATE'); ?>:<br>
<input type='text' name='selected_start_date' id='selected_start_date' class='date-field' value='<?php echo($selected_start_date) ?>'><br>
<?php displayLanguageText('TEXT-END-DATE'); ?>:<br>
<input type='text' name='selected_end_date' id='selected_end_date' class='date-field' value='<?php echo($selected_end_date) ?>'>
</td>
<td align='right'><br><a href='#' class='btn btn--primary btn--xsmall' onClick='document.orderlog_date_search.submit();'><?php displayLanguageText('TEXT-VIEW'); ?></a></td>
</tr>
</table>
<input type='hidden' name='action' value='order-log'>
<input type='hidden' name='selected_people_num' id='selected_people_num'>
</form>
<br>
<form method='post' name='orderlog_person_search' id='orderlog_person_search' action="/">
<table width='500' cellpadding='5' class='content-table'>
<tr>
<td align='left'><?php displayLanguageText('TEXT-ORDERED-BY'); ?>:<br>
<input type='text' name='selected_person_search' id='selected_person_search'></td>
<td align='right'><br><a href='#' class='btn btn--primary btn--xsmall' onClick='document.orderlog_person_search.submit();'><?php displayLanguageText('TEXT-VIEW'); ?></a></td>
</tr>
</table>
<input type='hidden' name='action' value='order-log'>
<input type='hidden' name='selected_people_num' id='selected_people_num'>
</form>
<br>
<form method='post' name='orderlog_order_num' id='orderlog_order_num' action="/">
<table width='500' cellpadding='5' class='content-table'>
<tr>
<td align='left'><?php displayLanguageText('TEXT-ORDER-NUMBER'); ?>:<br>
<input type='text' name='selected_order_num' id='order_num'></td>
<td align='right'><br><a href='#' class='btn btn--primary btn--xsmall' onClick='document.orderlog_order_num.submit();'><?php displayLanguageText('TEXT-VIEW'); ?></a></td>
</tr>
</table>
<input type='hidden' name='action' value='order-log'>
</form>
<br>
<!--
<form method='post' name='orderlog_person' action="/">
<table width='500' cellpadding='5' class='content-table'>
<tr>
<td align='left'><?php displayLanguageText('TEXT-ORDERED-BY'); ?>:<br>
<select name='selected_people_num' class='select-width400'>
<option value=''><?php displayLanguageText('TEXT-SELECT'); ?></option>
<?php
// List people from order_log
$results = db_query("SELECT DISTINCT p.first_name,p.last_name,p.record_num,count(*) AS num " .
"FROM hotlunch_order_change_log AS hlol, people AS p " .
"WHERE hlol.school_num = $school_num " .
"AND p.school_num = $base_school_num " .
"AND p.record_num = hlol.ordered_by_num " .
"GROUP BY 1,2,3 " .
"ORDER BY last_name,first_name ASC");
while ($row = db_fetch_assoc($results)) {
$people_num = $row['record_num'];
$name = $row['first_name'] . ' ' . $row['last_name'];
$num = $row['num'];
$selected = "";
if (isset($selected_people_num) && $selected_people_num == $people_num) $selected = " selected='selected'";
echo(" <option value='$people_num'$selected>$name ($num)</option>\n");
}
?>
</select>
</td>
<td align='right'><br><a href='#' class='btn btn--primary btn--xsmall' onClick='document.orderlog_person.submit();'><?php displayLanguageText('TEXT-VIEW'); ?></a></td>
</tr>
</table>
<input type='hidden' name='action' value='order-log'>
</form>
<br>
-->
<form method='post' name='orderlog_user' action="/">
<table width='500' cellpadding='5' class='content-table'>
<tr>
<td align='left'><?php displayLanguageText('TEXT-USER-ID'); ?>:<br>
<select name='selected_user_num' class='select-width400'>
<option value=''><?php displayLanguageText('TEXT-SELECT'); ?></option>
<?php
// List userid's from order_log
$results = db_query("SELECT DISTINCT u.* " .
"FROM users AS u " .
"WHERE u.school_num = $base_school_num " .
"ORDER BY userid ASC");
while ($row = db_fetch_assoc($results)) {
$user_num = $row['record_num'];
$userid = $row['userid'];
$name = $row['first_name'] . ' ' . $row['last_name'];
$selected = "";
if (isset($selected_user_num) && $selected_user_num == $user_num) $selected = " selected='selected'";
echo(" <option value='$user_num'$selected>$userid - $name</option>\n");
}
?>
</select>
</td>
<td align='right'><br><a href='#' class='btn btn--primary btn--xsmall' onClick='document.orderlog_user.submit();'><?php displayLanguageText('TEXT-VIEW'); ?></a></td>
</tr>
</table>
<input type='hidden' name='action' value='order-log'>
</form>
<center>
<?php
//
// Only show superuser entries to superuser
//
// if ($_SESSION['UserInfo']['type'] != 'SuperUser') $where .= "and userid != 'superuser' ";
//
// List all requested records
//
if ($ParametersEntered) {
$columnHeaders = array(getLanguageText('TEXT-USER'),
getLanguageText('TEXT-STUDENT'),
getLanguageText('TEXT-ORDER-NUMBER'),
getLanguageText('TEXT-SCHEDULE-TITLE'),
getLanguageText('TEXT-DATE'),
getLanguageText('TEXT-TOTAL'),
getLanguageText('TEXT-ACTIVITY'));
if (isset($selected_order_num) && intval($selected_order_num) > 0) {
$columnHeaders = array(getLanguageText('TEXT-USER'),
getLanguageText('TEXT-STUDENT'),
getLanguageText('TEXT-ORDER-NUMBER'),
getLanguageText('TEXT-DATE'),
getLanguageText('TEXT-TOTAL'),
getLanguageText('TEXT-BALANCE'),
getLanguageText('TEXT-ACTIVITY'));
}
$query = "SELECT * " .
"FROM hotlunch_order_change_log $where order by log_time";
$entries = db_query($query);
$data = array();
$balance = 0;
$prev = 0;
while ($row = db_fetch_assoc($entries)) {
extract($row);
$student = "Unknown";
if ($ordered_by_num > 0) {
$results = db_query("SELECT * FROM people WHERE school_num IN ($school_num, $base_school_num) AND record_num = $ordered_by_num");
$student = "";
if (db_num_rows($results)) {
$person = db_fetch_assoc($results);
$student = $person['first_name'].' '.$person['last_name'];
$user_num = $person['user_num'];
$snum = $person['school_num'];
if ($snum != $base_school_num) $student = "<span class='warning'>$student</span>";
}
}
$userid = "Unknown";
if ($user_num > 0) {
$results = db_query("SELECT * FROM users WHERE school_num IN ($school_num, $base_school_num) AND record_num = $user_num");
$userid = "";
if (db_num_rows($results)) {
$user = db_fetch_assoc($results);
$userid = $user['first_name'].' '.$user['last_name'];
}
}
$schedule = "Unknown";
if ($schedule_num > 0) {
$results = db_query("SELECT * FROM hotlunch_schedules WHERE school_num = $school_num AND record_num = $schedule_num");
$schedule = "";
if (db_num_rows($results)) {
$row = db_fetch_assoc($results);
$schedule = $row['schedule_name'];
}
}
$prefix = '$';
if (strstr($order_action,"PAYMENT") !== FALSE) {
$prefix = '';
$order_change = $order_total - $prev;
$balance = 0;
$ot = '';
}
else {
$order_change = $order_total - $prev;
$balance += $order_change;
$ot = $order_total;
}
$prev = $order_total;
if ($balance < 0) $bal = '-$'.number_format($balance,2);
else $bal = '$'.number_format($balance,2);
if (isset($selected_order_num) && intval($selected_order_num) > 0) {
$data[] = array("<span class='user-id' rnum='$user_num'>$userid</span>",
$student,
$order_num,
date("Y-m-d H:i:s",$log_time),
$prefix.$ot,
$bal,
"<span class='order-action' onum='$order_num' rnum='$record_num'>$order_action</span>");
}
else {
$data[] = array("<span class='user-id' rnum='$user_num'>$userid</span>",
$student,
$order_num,
$schedule,
date("Y-m-d H:i:s",$log_time),
$prefix.$ot,
"<span class='order-action' onum='$order_num' rnum='$record_num'>$order_action</span>");
}
}
listDataCustom($data,$columnHeaders,$action,array(),'N');
}
?>
<script>
$(document).ready(function(){
<?php include "include/ajax.Setup.php" ?>
$("#selected_person_search").autocomplete({
source: "ajax.studentSearch.php",
minLength: 2,
width: 750,
selectFirst: false,
select: function( event, results ) {
var student_num = results.item.student_num;
$("#selected_people_num").val(student_num);
$("#orderlog_person_search").submit();
}
});
$(document).on('click', '.order-action', function(){
var order_num = $(this).attr('onum');
var record_num = $(this).attr('rnum');
var data = "table_name=hotlunch_order_log"+
"&sequence_flag=N"+
"&action=order-log-detail"+
"&table_id="+
"&order_num="+order_num+
"&record_num="+record_num;
// Display order detail
$.getJSON( "ajax.DataTable.Fetch.php",data,
function(results) {
$("#info-content").html(results.content);
$("#text-info-dialog").dialog("open");
}
);
});
});
</script>
<?php
endTemplate();
?>