2077 lines
94 KiB
Plaintext
2077 lines
94 KiB
Plaintext
<?php
|
|
|
|
$ValidAccess = 2010;
|
|
$sessionName = 'hotlunch';
|
|
session_name($sessionName);
|
|
session_start();
|
|
require_once("include/globals.php");
|
|
|
|
|
|
if (isset($action) && $action != 'trx-receipt' && (SessionActive() != 1 || ! UserLoggedIn())) {
|
|
logExit("Session is not active\n");
|
|
exit;
|
|
}
|
|
|
|
// CSRF token validation
|
|
include "include/ajax.csrfToken.php";
|
|
|
|
|
|
|
|
// Set default timezone
|
|
date_default_timezone_set("Canada/Pacific");
|
|
$now = date("Y-m-d H:i:s",time());
|
|
|
|
$moduleName = "ajax.DataTable.Fetch.php";
|
|
// if ($_SESSION['UserInfo']['type'] == 'SuperUser') startLog($moduleName);
|
|
// startLog($moduleName);
|
|
|
|
|
|
// Get parameters
|
|
if (array_key_exists('table_name', $_GET)) $table_name = db_escape_string($_GET['table_name']);
|
|
if (array_key_exists('sequence_flag', $_GET)) $sequence_flag = db_escape_string($_GET['sequence_flag']);
|
|
if (array_key_exists('sequence', $_GET)) $sequence_flag = db_escape_string($_GET['sequence']);
|
|
if (array_key_exists('action', $_GET)) $action = db_escape_string($_GET['action']);
|
|
if (array_key_exists('table_id', $_GET)) $table_id = db_escape_string($_GET['table_id']);
|
|
if (array_key_exists('action_name', $_GET)) $action_name = db_escape_string($_GET['action_name']);
|
|
|
|
writeLog("$action\n");
|
|
|
|
|
|
// Validate parameters
|
|
if (strstr($table_name,' ') !== FALSE) logExit("Invalid table name\n");
|
|
|
|
|
|
|
|
// sequence data if required
|
|
writeLog("sequence_flag: $sequence_flag");
|
|
if ($sequence_flag == 'Y') {
|
|
|
|
$stable = $table_name;
|
|
|
|
switch ($table_name) {
|
|
case 'form-fields':
|
|
case '_form_fields':
|
|
$stable = "_form_fields";
|
|
$query = "select * from _form_fields " .
|
|
"order by sequence";
|
|
break;
|
|
|
|
case '_form_actions':
|
|
$query = "select * from _form_actions " .
|
|
"order by sequence";
|
|
break;
|
|
|
|
default:
|
|
$query = "select * from $table_name " .
|
|
"where school_num = $school_num " .
|
|
"order by sequence";
|
|
break;
|
|
}
|
|
|
|
// Resequence the records
|
|
writeLog("$query\n");
|
|
$results = db_query($query);
|
|
if (db_num_rows($results)) {
|
|
$count = 1;
|
|
while ($row = db_fetch_array($results)) {
|
|
$rnum = $row['record_num'];
|
|
$query = "update $stable set sequence = $count where record_num = $rnum";
|
|
db_query($query);
|
|
$count++;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// Return data parameters
|
|
$return_data = array();
|
|
$return_data['content'] = "";
|
|
$localContent = "";
|
|
$data = array();
|
|
|
|
|
|
// Default commands
|
|
$commands = array();
|
|
$commands[] = "<a href='?record_num=%d' class='edit-data' rnum='%d' title='Edit Current Entry'>$edit_icon_small</a>";
|
|
$commands[] = "<a href='?record_num=%d' class='delete-data' rnum='%d' dflag='%s' title='Delete Current Entry'>$delete_icon_small</a>";
|
|
|
|
|
|
//
|
|
// Get data based on $action value
|
|
//
|
|
switch ($action) {
|
|
|
|
case 'generic-table-list':
|
|
|
|
// startLog("generic-table-list");
|
|
|
|
if (array_key_exists('table_name', $_GET)) $TableName = $_GET['table_name'];
|
|
if (array_key_exists('actual_table_name', $_GET)) $ActualTableName = $_GET['actual_table_name'];
|
|
if (array_key_exists('action-name', $_GET)) $action_name = db_escape_string($_GET['action-name']);
|
|
if (!isset($TableName)) logExit("$TableName is not set");
|
|
if (isset($TableName)) writeLog("TableName: $TableName");
|
|
if (isset($action_name)) {
|
|
writeLog("action_name: $action_name");
|
|
|
|
$query = "SELECT * FROM _form_actions WHERE action_name = '$action_name'";
|
|
writeLog($query);
|
|
$results = db_query($query);
|
|
$ActionRecord = db_fetch_assoc($results);
|
|
}
|
|
|
|
//
|
|
// Setup lookup arrays for foreign key fields
|
|
//
|
|
|
|
// Get classes lookup array
|
|
$query = "select * from classes where school_num = $school_num order by sequence";
|
|
$results = db_query($query);
|
|
|
|
$ClassesLookup = array(0 => '');
|
|
while ($row = db_fetch_array($results)) {
|
|
$rnum = $row['record_num'];
|
|
$class = getClassInfo($rnum, 'label');
|
|
$ClassesLookup[$rnum] = $class;
|
|
}
|
|
|
|
// Get staff categories lookup array
|
|
$query = "select * from staff_categories where school_num = $school_num order by sequence";
|
|
$scategories = db_query($query);
|
|
|
|
$StaffCategoriesLookup = array();
|
|
while ($row = db_fetch_array($scategories)) {
|
|
$title = $row['category_title'];
|
|
$rnum = $row['record_num'];
|
|
$StaffCategoriesLookup[$rnum] = $title;
|
|
}
|
|
|
|
// Get staff user accounts lookup array
|
|
$query = "select * from users where school_num = $school_num and type = 'Staff' order by last_name, first_name";
|
|
$susers = db_query($query);
|
|
|
|
$StaffUsersLookup = array();
|
|
while ($row = db_fetch_array($susers)) {
|
|
$title = $row['userid'];
|
|
$rnum = $row['record_num'];
|
|
$StaffUsersLookup[$rnum] = $title;
|
|
}
|
|
|
|
// Get class programs
|
|
$query = "select * from class_programs where school_num = $school_num order by sequence";
|
|
$programs = db_query($query);
|
|
|
|
$ClassProgramsLookup = array();
|
|
while ($row = db_fetch_array($programs)) {
|
|
$title = $row['program_name'];
|
|
$rnum = $row['record_num'];
|
|
$ClassProgramsLookup[$rnum] = $title;
|
|
}
|
|
|
|
|
|
$LookupArrays = array('staff_category' => $StaffCategoriesLookup,
|
|
'class_num' => $ClassesLookup,
|
|
'class_program' => $ClassProgramsLookup,
|
|
'user_num' => $StaffUsersLookup,
|
|
);
|
|
|
|
unset($query);
|
|
|
|
$commands = array();
|
|
$commands[] = "<a href='#' rnum='%d' class='edit-current-record' title='Edit Current Entry'>$edit_icon_small</a>";
|
|
$commands[] = "<a href='#' rnum='%d' class='delete-current-record' dflag='%s' title='Delete Current Entry'>$delete_icon_small</a>";
|
|
|
|
$orderBy = "1";
|
|
|
|
writeLog("Generic: $TableName");
|
|
|
|
switch ($TableName) {
|
|
case 'form-actions':
|
|
$columnFields = array('action_name',
|
|
'action_table_name',
|
|
'action_table_load_name',
|
|
'action_sortable_flag',
|
|
'action_searchable_flag',
|
|
'action_default_commands_flag');
|
|
$columnHeaders = array('Action Name',
|
|
'DB Table',
|
|
'DataTable Name',
|
|
'Sortable',
|
|
'Seach Field',
|
|
'Default Commands');
|
|
$columnAlign = array('left',
|
|
'left',
|
|
'left',
|
|
'center',
|
|
'center',
|
|
'center');
|
|
|
|
$cwhere = "";
|
|
$orderBy = "action_name";
|
|
|
|
$commands[] = "<a href='#' class='edit-form-fields' rnum='%d' title='Edit Form Fields'>$file_icon_small</a>";
|
|
$commands[] = "<a href='#' class='edit-form-permissions' rnum='%d' title='Edit Form Permissions'>$users_icon_small</a>";
|
|
$commands[] = "<a href='#' class='execute-action' rnum='%d' title='View Action in Action'>$web_icon_small</a>";
|
|
|
|
$query = "SELECT * FROM _form_actions ORDER BY action_name";
|
|
break;
|
|
|
|
case 'form-fields':
|
|
if (array_key_exists('current_form_action', $_GET)) $action_name = db_escape_string($_GET['current_form_action']);
|
|
if (!isset($action_name)) {
|
|
logExit("action_name is not set");
|
|
}
|
|
|
|
// Validate the sction_name
|
|
$query = "SELECT * FROM _form_actions WHERE action_name = '$action_name'";
|
|
writeLog($query);
|
|
$action_record = db_getVal($query);
|
|
if (!is_array($action_record)) {
|
|
logExit("action_name is invalid: $action_name");
|
|
}
|
|
|
|
$query = "SELECT count(*) FROM _form_fields WHERE action_name = '$action_name'";
|
|
$num = db_getVal($query);
|
|
writeLog("Num Fields Found: $num");
|
|
|
|
if ($num == 0) {
|
|
writeLog("action_table_name: ".$action_record['action_table_name']);
|
|
$table = new Table($action_record['action_table_name']);
|
|
$form_fields = new Table('_form_fields');
|
|
|
|
for ($i = 0; $i < count($table->column_names); $i++) {
|
|
$fname = $table->column_names[$i];
|
|
$ftype = $table->column_types[$i];
|
|
$fvalues = $table->column_values[$i];
|
|
$fdefault = $table->column_defaults[$i];
|
|
$flength = 0;
|
|
|
|
if ($fname == 'school_num') continue;
|
|
if ($fname == 'record_num') continue;
|
|
|
|
switch ($ftype) {
|
|
case 'text':
|
|
$ftype = 'textbox';
|
|
$flength = 60;
|
|
break;
|
|
|
|
case 'varchar':
|
|
case 'int':
|
|
case 'smallint':
|
|
case 'decimal':
|
|
$ftype = 'text';
|
|
$flength = 20;
|
|
break;
|
|
|
|
case 'enum':
|
|
$ftype = 'select';
|
|
if ($fvalues == "'Y','N'") $fvalues = 'YN';
|
|
break;
|
|
}
|
|
|
|
if ($fname == 'sequence') $ftype = 'hidden';
|
|
|
|
$entry = array();
|
|
|
|
$entry['action_name'] = $action_name;
|
|
$entry['action_fields_column_name'] = $fname;
|
|
$entry['action_fields_screen_field_type'] = $ftype;
|
|
$entry['action_fields_field_prompt'] = "TEXT-".strtoupper(str_replace('_','-',$fname));
|
|
$entry['action_fields_text_length'] = $flength;
|
|
$entry['action_fields_insert_active_flag'] = 'Y';
|
|
$entry['action_fields_update_active_flag'] = 'Y';
|
|
$entry['action_fields_required_field_flag'] = 'N';
|
|
$entry['action_fields_default_field_value'] = $fdefault;
|
|
$entry['action_fields_select_options'] = $fvalues;
|
|
$entry['action_fields_report_alignment'] = 'left';
|
|
$entry['sequence'] = $i;
|
|
|
|
$query = $form_fields->BuildInsert($entry);
|
|
db_query($query);
|
|
}
|
|
}
|
|
|
|
|
|
$columnFields = array('action_fields_column_name','action_fields_screen_field_type','action_fields_report_sequence',
|
|
'action_fields_insert_active_flag','action_fields_update_active_flag','action_fields_required_field_flag');
|
|
$columnHeaders = array('Column Name','Type','Report','Insert Active','Update Active','Required');
|
|
$columnAlign = array('left','left','center','center','center','center');
|
|
|
|
$cwhere = "";
|
|
$orderBy = "sequence, action_name";
|
|
|
|
// $commands[] = "<a href='#' class='edit-form-fields-details' rnum='%d' title='Edit Fields Details'>$file_icon_small</a>";
|
|
|
|
$query = "SELECT * FROM _form_fields WHERE action_name = '$action_name' ORDER BY sequence, action_name, action_fields_column_name";
|
|
break;
|
|
|
|
case 'form-permissions':
|
|
if (array_key_exists('current_form_action', $_GET)) $action_name = db_escape_string($_GET['current_form_action']);
|
|
|
|
$query = "SELECT * FROM _form_permission WHERE action_name = '$action_name' ORDER BY record_num";
|
|
writeLog($query);
|
|
$results = db_query($query);
|
|
|
|
if (db_num_rows($results) == 0) {
|
|
$table = new Table('_form_permission');
|
|
$options = GetFileListArray("user_types.txt", "", "");
|
|
|
|
$entry = array();
|
|
$entry['action_name'] = $action_name;
|
|
foreach ($options AS $value => $option) {
|
|
$utype = $option;
|
|
$entry['action_permission_user_type'] = $utype;
|
|
$entry['action_permission_allowed'] = 'N';
|
|
|
|
switch ($utype) {
|
|
case 'System Administrator':
|
|
case 'Application Administrator':
|
|
$entry['action_permission_allowed'] = 'Y';
|
|
break;
|
|
}
|
|
|
|
$query = $table->BuildInsert($entry);
|
|
writeLog($query);
|
|
db_query($query);
|
|
}
|
|
|
|
$query = "SELECT * FROM _form_permission WHERE action_name = '$action_name' ORDER BY record_num";
|
|
writeLog($query);
|
|
$results = db_query($query);
|
|
}
|
|
|
|
$columnFields = array('action_name','action_permission_user_type','action_permission_allowed');
|
|
$columnHeaders = array('Action Name','User Type','Access Allowed');
|
|
$columnAlign = array('left','left','center');
|
|
|
|
$data = array();
|
|
|
|
while ($row = db_fetch_assoc($results)) {
|
|
$entry = array();
|
|
|
|
$entry[] = $row['action_name'];
|
|
$entry[] = $row['action_permission_user_type'];
|
|
$entry[] = $row['action_permission_allowed'];
|
|
$entry['record_num'] = $row['record_num'];
|
|
|
|
$data[] = $entry;
|
|
}
|
|
|
|
$action = '';
|
|
$totals = array();
|
|
|
|
$return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals);
|
|
echo(json_encode($return_data));
|
|
exit;
|
|
break;
|
|
|
|
case 'staff-people':
|
|
$columnFields = array('first_name','last_name','user_num','staff_category','class_num');
|
|
$columnHeaders = array(getLanguageText('TEXT-FIRST-NAME'),
|
|
getLanguageText('TEXT-LAST-NAME'),
|
|
getLanguageText('TEXT-USER-ID'),
|
|
getLanguageText('TEXT-CATEGORY'),
|
|
$GlobalText['Class'],
|
|
);
|
|
$columnAlign = array('left','left','left','left','center');
|
|
|
|
if ($school_record['special_item_prices'] != 'N') {
|
|
$columnFields[] = 'menu_price_category';
|
|
$columnHeaders[] = getLanguageText('TEXT-MENU-PRICE-CATEGORY');
|
|
$columnAlign[] = 'center';
|
|
}
|
|
|
|
if ($school_record['implement_multiple_item_prices'] != 'N') {
|
|
$columnFields[] = 'access_to_multiple_item_prices';
|
|
$columnHeaders[] = getLanguageText('TEXT-ACCESS-TO-FLEX-PRICES');
|
|
$columnAlign[] = 'center';
|
|
}
|
|
|
|
$cwhere = " AND people_type = 'Staff' ";
|
|
$orderBy = "last_name,first_name";
|
|
if (array_key_exists('sort-field', $_GET)) $orderBy = db_escape_string($_GET['sort-field']);
|
|
if (array_key_exists('sort-order', $_GET)) $orderBy .= ' '.db_escape_string($_GET['sort-order']);
|
|
|
|
unset($query);
|
|
break;
|
|
|
|
case 'classes':
|
|
$columnFields = array();
|
|
$columnHeaders = array();
|
|
$columnAlign = array();
|
|
|
|
if ($school_record['p_display_division'] != 'N' || $school_record['i_display_division'] != 'N') {
|
|
$columnFields[] = 'division';
|
|
$columnHeaders[] = $school_record['division_class_num_text'];
|
|
$columnAlign[] = 'center';
|
|
}
|
|
|
|
if ($school_record['p_display_grade'] != 'N' || $school_record['i_display_grade'] != 'N') {
|
|
$columnFields[] = 'grade';
|
|
$columnHeaders[] = getLanguageText('TEXT-GRADE');
|
|
$columnAlign[] = 'center';
|
|
}
|
|
|
|
if ($school_record['p_display_program'] != 'N' || $school_record['i_display_program'] != 'N') {
|
|
$columnFields[] = 'class_program';
|
|
$columnHeaders[] = getLanguageText('TEXT-PROGRAM');
|
|
$columnAlign[] = 'center';
|
|
}
|
|
|
|
$columnFields[] = 'description';
|
|
$columnHeaders[] = getLanguageText('TEXT-DESCRIPTION');
|
|
$columnAlign[] = 'left';
|
|
|
|
$columnFields[] = 'label_description';
|
|
$columnHeaders[] = getLanguageText('TEXT-LABEL-DESCRIPTION');
|
|
$columnAlign[] = 'left';
|
|
|
|
$columnFields[] = 'default_price_category';
|
|
$columnHeaders[] = getLanguageText('TEXT-DEFAULT-PRICE-CATEGORY');
|
|
$columnAlign[] = 'center';
|
|
|
|
for ($i = 0; $i < count($columnFields); $i++) {
|
|
$fname = $columnFields[$i];
|
|
writeLog($fname);
|
|
}
|
|
|
|
$orderBy = "sequence";
|
|
$cwhere = "";
|
|
if (array_key_exists('custom-where', $_GET)) $cwhere .= $_GET['custom-where'];
|
|
writeLog("cwhere: $cwhere");
|
|
if (array_key_exists('cwhere', $_GET)) $cwhere .= $_GET['cwhere'];
|
|
writeLog("cwhere: $cwhere");
|
|
|
|
unset($query);
|
|
break;
|
|
|
|
default:
|
|
if (array_key_exists('action-name', $_GET)) $action_name = db_escape_string($_GET['action-name']);
|
|
|
|
$query = "SELECT * FROM _form_fields " .
|
|
"WHERE action_name = '$action_name' " .
|
|
"AND action_fields_report_sequence > 0 " .
|
|
"ORDER BY action_fields_report_sequence, sequence";
|
|
$results = db_query($query);
|
|
|
|
if (db_num_rows($results) == 0) {
|
|
$return_data['content'] = "No Report Fields Defined for : $action_name";
|
|
echo(json_encode($return_data));
|
|
exit;
|
|
}
|
|
|
|
$columnFields = array();
|
|
$columnTypes = array();
|
|
$columnHeaders = array();
|
|
$columnAlign = array();
|
|
unset($orderBy);
|
|
|
|
while ($row = db_fetch_assoc($results)) {
|
|
$fname = $row['action_fields_column_name'];
|
|
|
|
|
|
$skip = false;
|
|
switch ($fname) {
|
|
case 'menu_price_category':
|
|
if ($school_record['special_item_prices'] == 'N') $skip = true;
|
|
break;
|
|
}
|
|
|
|
if ($skip) continue;
|
|
writeLog("school_record['special_item_prices']: ".$school_record['special_item_prices']);
|
|
writeLog("Default: $fname");
|
|
|
|
$columnFields[] = $fname;
|
|
$columnTypes[] = $row['action_fields_screen_field_type'];
|
|
$columnAlign[] = $row['action_fields_report_alignment'];
|
|
$header = $row['action_fields_field_prompt'];
|
|
if (strpos($header, 'TEXT-') === 0) $header = getLanguageText($header);
|
|
if (strpos($header, 'GlobalText.') === 0) {
|
|
$pindex = str_replace('GlobalText.','',$header);
|
|
$header = $GlobalText[$pindex];
|
|
}
|
|
$columnHeaders[] = $header;
|
|
|
|
if (!isset($orderBy)) $orderBy = $row['action_fields_column_name'];
|
|
}
|
|
|
|
writeLog("ActionRecord['action_sort_fields']: ".$ActionRecord['action_sort_fields']);
|
|
if (strlen($ActionRecord['action_sort_fields'])) $orderBy = $ActionRecord['action_sort_fields'];
|
|
|
|
if (array_key_exists('sort-field', $_GET)) $orderBy = db_escape_string($_GET['sort-field']);
|
|
if (array_key_exists('sort-order', $_GET)) $orderBy .= ' '.db_escape_string($_GET['sort-order']);
|
|
if ($sequence_flag == 'Y') $orderBy = "sequence";
|
|
|
|
$cwhere = "";
|
|
if (array_key_exists('custom-where', $_GET)) $cwhere .= $_GET['custom-where'];
|
|
writeLog("cwhere: $cwhere");
|
|
if (array_key_exists('cwhere', $_GET)) $cwhere .= $_GET['cwhere'];
|
|
writeLog("cwhere: $cwhere");
|
|
$cwhere = str_ireplace('where','',$cwhere);
|
|
$cwhere = str_ireplace(';','',$cwhere);
|
|
writeLog("cwhere: $cwhere");
|
|
|
|
unset($query);
|
|
break;
|
|
|
|
}
|
|
|
|
if (!isset($ActualTableName)) $ActualTableName = $TableName;
|
|
if (!isset($cwhere)) $cwhere = "";
|
|
|
|
if (!isset($query)) {
|
|
$table = new Table($ActualTableName);
|
|
writeLog("orderBy: $orderBy");
|
|
if ($table->school_num_flag == 'Y') $query = "SELECT * FROM $ActualTableName WHERE school_num = $school_num $cwhere ORDER BY $orderBy";
|
|
else $query = "SELECT * FROM $ActualTableName WHERE 1 = 1 $cwhere ORDER BY $orderBy";
|
|
}
|
|
writeLog("$TableName query: $query");
|
|
$results = db_query($query);
|
|
|
|
$return_data['num_records'] = db_num_rows($results);
|
|
if ($return_data['num_records'] > 0) {
|
|
$data = array();
|
|
|
|
while ($row = db_fetch_assoc($results)) {
|
|
|
|
$entry = array();
|
|
for ($i = 0; $i < count($columnFields); $i++) {
|
|
$fname = $columnFields[$i];
|
|
$ftype = $columnTypes[$i];
|
|
if (! array_key_exists($fname, $row)) {
|
|
writeLog("fname error: $ActualTableName - $fname");
|
|
continue;
|
|
}
|
|
$fdata = $row[$fname];
|
|
|
|
if (isset($LookupArrays) && array_key_exists($fname, $LookupArrays)) {
|
|
if (array_key_exists($fdata, $LookupArrays[$fname])) $fdata = $LookupArrays[$fname][$fdata];
|
|
else $fdata = "";
|
|
}
|
|
|
|
if (strlen($fdata) && $ftype == 'money') {
|
|
$fdata = '$'.number_format(floatval($fdata), 2);
|
|
}
|
|
|
|
if ($i == 0 && array_key_exists('record_num',$row)) {
|
|
$rnum = $row['record_num'];
|
|
$fdata = "<span class='edit-current-record' rnum='$rnum'>$fdata</span>";
|
|
}
|
|
$entry[] = $fdata;
|
|
}
|
|
|
|
if (array_key_exists('record_num',$row)) $entry['record_num'] = $row['record_num'];
|
|
|
|
$data[] = $entry;
|
|
}
|
|
|
|
$action = '';
|
|
if (!isset($totals)) $totals = array();
|
|
|
|
$return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals);
|
|
}
|
|
else {
|
|
writeLog("No Records");
|
|
$return_data['content'] = "<p><b> --- ".getLanguageText('ERRORMSG-NO-RECORDS')." --- </b></p>";
|
|
echo(json_encode($return_data));
|
|
exit;
|
|
}
|
|
|
|
// writeLog($return_data['content']);
|
|
writeLog("end of generic-table-list");
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case 'polls':
|
|
// Setup format
|
|
$columnHeaders = array(getLanguageText('TEXT-TITLE'),
|
|
getLanguageText('TEXT-QUESTIONS'),
|
|
getLanguageText('TEXT-ANSWERS'),
|
|
);
|
|
$columnAlign = array('left','center','center');
|
|
|
|
// Get records to display
|
|
$query = "SELECT * FROM polls WHERE school_num = $school_num ORDER BY sequence";
|
|
writeLog("query: $query\n");
|
|
$results = db_query($query);
|
|
|
|
if (db_num_rows($results)) {
|
|
$data = array();
|
|
|
|
while ($row = db_fetch_assoc($results)) {
|
|
extract($row);
|
|
|
|
if (strlen(trim($description))) $description = "<br><span class='small'>".trim($description)."</span>";
|
|
$numQuestions = db_getVal("SELECT count(*) FROM poll_questions WHERE school_num = $school_num AND poll_num = $record_num");
|
|
$numAnswers = db_getVal("SELECT count(distinct user_num) FROM poll_answers WHERE school_num = $school_num AND poll_num = $record_num");
|
|
|
|
// Format for admin display
|
|
$data[] = array("<span class='edit-poll' rnum='$record_num' onClick=''><b>$poll_title</b></span>$description",
|
|
"<span class='poll-questions' rnum='$record_num' onClick=''>$numQuestions</span>",
|
|
"<span class='poll-questions' rnum='$record_num' onClick=''>$numAnswers</span>",
|
|
"record_num" => $record_num,"delete_flag" => 'Y');
|
|
|
|
}
|
|
|
|
$commands = array();
|
|
$commands[] = "<a href='?action=$action&naction=edit&record_num=%d' class='edit-poll' rnum='%d' title='Edit Current Entry'>$edit_icon_small</a>";
|
|
$commands[] = "<a href='?action=$action&naction=delete-confirmed&record_num=%d' class='delete-poll' rnum='%d' dflag='%s' title='Delete Current Entry'>$delete_icon_small</a>";
|
|
$commands[] = "<a href='?action=$action&naction=view-details&record_num=%d' class='poll-answers' rnum='%d' title='View Questions'>$view_icon_small</a>";
|
|
|
|
if (isset($table_id) && strlen($table_id)) $customTableID = $table_id;
|
|
$return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals);
|
|
|
|
}
|
|
else {
|
|
$return_data['content'] = "<p><b> --- ".getLanguageText('ERRORMSG-NO-RECORDS')." --- </b></p>";
|
|
}
|
|
break;
|
|
|
|
case 'student-categories':
|
|
// Setup format
|
|
$columnHeaders = array(getLanguageText('TEXT-CATEGORY'),
|
|
getLanguageText('TEXT-NUMBER'),
|
|
);
|
|
$columnAlign = array('left','center','center');
|
|
|
|
// Get records to display
|
|
$query = "SELECT * FROM student_categories WHERE school_num = $school_num ORDER BY sequence";
|
|
writeLog("query: $query\n");
|
|
$results = db_query($query);
|
|
|
|
if (db_num_rows($results)) {
|
|
$data = array();
|
|
|
|
while ($row = db_fetch_assoc($results)) {
|
|
extract($row);
|
|
|
|
$delete_flag = 'Y';
|
|
$numEntries = db_getVal("SELECT count(*) FROM people_categories WHERE school_num = $school_num AND category_num = $record_num");
|
|
if ($numEntries) $delete_flag = 'N';
|
|
|
|
$data[] = array($category,
|
|
$numEntries,
|
|
"record_num" => $record_num,"delete_flag" => $delete_flag);
|
|
}
|
|
|
|
// Commands
|
|
$commands = array();
|
|
$commands[] = "<a href='?record_num=%d' class='edit-data' rnum='%d' title='Edit Current Entry'>$edit_icon_small</a>";
|
|
$commands[] = "<a href='?record_num=%d' class='delete-data' rnum='%d' dflag='%s' title='Delete Current Entry'>$delete_icon_small</a>";
|
|
$commands[] = "<a href='?record_num=%d' class='view-details' rnum='%d' title='View Details'>$view_icon_small</a>";
|
|
|
|
if (isset($table_id) && strlen($table_id)) $customTableID = $table_id;
|
|
$TableWidth = 450;
|
|
$return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals);
|
|
|
|
}
|
|
else {
|
|
$return_data['content'] = "<p><b> --- ".getLanguageText('ERRORMSG-NO-RECORDS')." --- </b></p>";
|
|
}
|
|
break;
|
|
|
|
case 'delivery-classes':
|
|
// Setup format
|
|
$columnHeaders = array(getLanguageText('TEXT-CLASS'),
|
|
getLanguageText('TEXT-DELIVERY-GROUP'),
|
|
);
|
|
$columnAlign = array('left','center','center');
|
|
|
|
// Get records to display
|
|
$query = "SELECT * FROM classes WHERE school_num = $school_num ORDER BY sequence";
|
|
writeLog("query: $query\n");
|
|
$results = db_query($query);
|
|
|
|
if (db_num_rows($results)) {
|
|
$data = array();
|
|
|
|
// Get delivery groups
|
|
$query = "SELECT * FROM delivery_groups WHERE school_num = $school_num ORDER BY sequence";
|
|
writeLog("query: $query\n");
|
|
$groups = db_query($query);
|
|
if (db_num_rows($groups)) {
|
|
$groupEntries = array();
|
|
while ($row = db_fetch_assoc($groups)) {
|
|
$groupEntries[] = $row;
|
|
}
|
|
}
|
|
else {
|
|
$return_data['content'] = "<p><b> --- ".getLanguageText('TEXT-NO-DELIVERY-GROUPS-FOUND')." --- </b></p>";
|
|
return;
|
|
}
|
|
|
|
while ($row = db_fetch_assoc($results)) {
|
|
extract($row);
|
|
|
|
$classInfo = getClassInfo($record_num, 'internal');
|
|
|
|
$groupField = "<select name='delivery_group_$record_num' class='delivery-group' rnum='$record_num'>";
|
|
$groupField .= "<option></option>";
|
|
for ($i = 0; $i < count($groupEntries); $i++) {
|
|
$gRow = $groupEntries[$i];
|
|
$selected = "";
|
|
if ($delivery_group == $gRow['group_id']) $selected = " selected='selected'";
|
|
$groupField .= "<option value=\"".$gRow['group_id']."\"$selected>".$gRow['group_title']."</option>";
|
|
}
|
|
$groupField .= "</select>";
|
|
|
|
$data[] = array($classInfo, $groupField);
|
|
}
|
|
|
|
// Commands
|
|
$commands = array();
|
|
|
|
if (isset($table_id) && strlen($table_id)) $customTableID = $table_id;
|
|
$TableWidth = 600;
|
|
$return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals);
|
|
|
|
}
|
|
else {
|
|
$return_data['content'] = "<p><b> --- ".getLanguageText('ERRORMSG-NO-RECORDS')." --- </b></p>";
|
|
}
|
|
break;
|
|
|
|
case 'category-people':
|
|
// Get category number
|
|
$cnum = intval($_GET['cnum']);
|
|
|
|
// Setup format
|
|
$columnHeaders = array(getLanguageText('TEXT-NAME'),
|
|
);
|
|
$columnAlign = array('left','center','center');
|
|
|
|
// Get records to display
|
|
$query = "SELECT p.* FROM people_categories AS pc, people AS p " .
|
|
"WHERE pc.school_num = $school_num " .
|
|
"AND p.school_num = $school_num " .
|
|
"AND p.record_num = pc.people_num " .
|
|
"AND pc.category_num = $cnum " .
|
|
"ORDER BY last_name,first_name";
|
|
writeLog("query: $query\n");
|
|
$results = db_query($query);
|
|
|
|
if (db_num_rows($results)) {
|
|
$data = array();
|
|
|
|
while ($row = db_fetch_assoc($results)) {
|
|
extract($row);
|
|
|
|
$name = $first_name.' '.$last_name;
|
|
$delete_flag = 'Y';
|
|
|
|
$data[] = array($name,
|
|
"record_num" => $record_num);
|
|
}
|
|
|
|
// Commands
|
|
$commands = array();
|
|
$commands[] = "<a href='?record_num=%d' class='delete-people-category' rnum='%d' cnum='$cnum' title='Delete Current Entry'>$delete_icon_small</a>";
|
|
|
|
if (isset($table_id) && strlen($table_id)) $customTableID = $table_id;
|
|
$TableWidth = 450;
|
|
$return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals);
|
|
|
|
}
|
|
else {
|
|
$return_data['content'] = "<p><b> --- ".getLanguageText('ERRORMSG-NO-RECORDS')." --- </b></p>";
|
|
}
|
|
break;
|
|
|
|
case 'meal-locations':
|
|
// Setup format
|
|
$columnHeaders = array(getLanguageText('TEXT-ALTERNATE-LOCATION'),
|
|
getLanguageText('TEXT-NUMBER'),
|
|
);
|
|
$columnAlign = array('left','center','center');
|
|
|
|
// Get records to display
|
|
$query = "SELECT * FROM meal_locations " .
|
|
"WHERE school_num = $school_num " .
|
|
"ORDER BY sequence";
|
|
writeLog("query: $query\n");
|
|
$results = db_query($query);
|
|
|
|
if (db_num_rows($results)) {
|
|
$data = array();
|
|
|
|
while ($row = db_fetch_assoc($results)) {
|
|
extract($row);
|
|
|
|
$delete_flag = 'Y';
|
|
$numPeople = db_getVal("SELECT count(*) FROM people WHERE meal_location = $record_num");
|
|
|
|
$data[] = array($location,
|
|
$numPeople,
|
|
"record_num" => $record_num);
|
|
}
|
|
|
|
if (isset($table_id) && strlen($table_id)) $customTableID = $table_id;
|
|
$TableWidth = 450;
|
|
$return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals);
|
|
|
|
}
|
|
else {
|
|
$return_data['content'] = "<p><b> --- ".getLanguageText('ERRORMSG-NO-RECORDS')." --- </b></p>";
|
|
}
|
|
break;
|
|
|
|
case 'upcoming-demos':
|
|
case 'recent-demos':
|
|
// Get school demo info
|
|
$today = date("Y-m-d 00:00:00",time());
|
|
$cutoff = date("Y-m-d 00:00:00",time() - 24 * 60 * 60 * 60);
|
|
|
|
if ($action == 'upcoming-demos') $query = "SELECT * FROM schools WHERE demo_scheduled_date > '$today' ORDER BY demo_scheduled_date";
|
|
if ($action == 'recent-demos') $query = "SELECT * FROM schools WHERE demo_scheduled_date > '$cutoff' AND demo_scheduled_date <= '$today' ORDER BY demo_scheduled_date";
|
|
|
|
$return_data['content'] = "<p>[<a href='#' class='upcoming-demo-list'>Upcoming</a>] [<a href='#' class='recent-demo-list'>Recent</a>]</p>";
|
|
|
|
$results = db_query($query);
|
|
writeLog("num rows: " . db_num_rows($results) . "\n");
|
|
|
|
if (db_num_rows($results) == 0) {
|
|
$return_data['content'] .= "<p><b> --- No Demos Scheduled --- </b></p>";
|
|
writeLog($return_data['content'] . "\n");
|
|
}
|
|
else {
|
|
$return_data['content'] .= "<p><b>-- Hot Lunch Demos --</b></p>";
|
|
$return_data['content'] .= "<center><table cellpadding='1' cellspacing='3' border='0'>";
|
|
while ($row = db_fetch_assoc($results)) {
|
|
extract($row);
|
|
$return_data['content'] .= "<tr>";
|
|
$return_data['content'] .= "<td class='prompt show-school-info' snum='$record_num' align='left' width='300'>$school_name</td>";
|
|
$return_data['content'] .= "<td class='prompt show-school-info' snum='$record_num' width='150'>$demo_scheduled_date</td>";
|
|
$return_data['content'] .= "</tr>";
|
|
}
|
|
$return_data['content'] .= "</table>";
|
|
$return_data['content'] .= "</center>";
|
|
}
|
|
break;
|
|
|
|
case 'schedule-info':
|
|
// startLog("schedule-info");
|
|
|
|
$schedule_num = intval($_GET['schedule_num']);
|
|
writeLog("schedule_num: $schedule_num");
|
|
|
|
if ($schedule_num == 0) {
|
|
$return_data['content'] = "";
|
|
break;
|
|
}
|
|
|
|
$supplier_school_num = intval($school_record['supplier_school_num']);
|
|
if ($supplier_school_num == 0) $supplier_school_num = $school_num;
|
|
|
|
$query = "SELECT * FROM hotlunch_schedules WHERE school_num IN ($school_num, $supplier_school_num) AND record_num = $schedule_num";
|
|
$results = db_query($query);
|
|
if (db_num_rows($results) == 0) {
|
|
$return_data['content'] = getLanguageText('ERRORMSG-INVALID-SCHEDULE');
|
|
writeLog("Invalid Schedule");
|
|
break;
|
|
}
|
|
|
|
$schedule = db_fetch_assoc($results);
|
|
extract($schedule);
|
|
|
|
writeLog("schedule_name: $schedule_name");
|
|
$return_data['new_schedule'] = $schedule_name;
|
|
$return_data['ordering_start'] = substr($start_order_datetime,0,16);
|
|
$return_data['ordering_end'] = substr($end_order_datetime,0,16);
|
|
$return_data['schedule_start'] = $schedule_start_date;
|
|
|
|
$query = "SELECT count(*) FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num";
|
|
writeLog($query);
|
|
$numMenus = db_getVal($query);
|
|
writeLog("numMenus: $numMenus");
|
|
|
|
$numItems = db_getVal("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)");
|
|
|
|
$startDate = date("l F d, Y",strtotime($schedule_start_date));
|
|
|
|
$content = "<b>$schedule_name</b> ($schedule_type)<br>" .
|
|
getLanguageText('TEXT-MENUS') . ": $numMenus<br>" .
|
|
getLanguageText('TEXT-MENU-ITEMS') . ": $numItems<br>" .
|
|
getLanguageText('TEXT-SCHEDULE-START-DATE') . ": <b>$startDate</b>";
|
|
writeLog($content);
|
|
$return_data['content'] = $content;
|
|
break;
|
|
|
|
case 'school-info':
|
|
$school_num = intval($_GET['school_num']);
|
|
|
|
// Get school info
|
|
$query = "SELECT * FROM schools WHERE record_num = $school_num";
|
|
$results = db_query($query);
|
|
|
|
$row = db_fetch_assoc($results);
|
|
extract($row);
|
|
|
|
date_default_timezone_set($timezone);
|
|
$timeNow = date("Y-m-d H:i",time());
|
|
date_default_timezone_set("Canada/Pacific");
|
|
|
|
$sprices = "";
|
|
if (strlen($special_item_prices)) $sprices = " ($special_item_prices)";
|
|
|
|
$query = "SELECT last_login,userid FROM login_log WHERE school_num = $school_num ORDER BY last_login DESC LIMIT 0,1";
|
|
list($last_login,$userid) = db_getVal($query);
|
|
|
|
// Adjust URL if required
|
|
switch ($url) {
|
|
case 'larondepac.ca':
|
|
case 'aeslunchbox.com':
|
|
case 'clesharks.ca':
|
|
case 'ggpac.org':
|
|
case 'stonecresthotlunch.ca':
|
|
case 'sullivanpac.com':
|
|
$url = "www.$url";
|
|
break;
|
|
}
|
|
|
|
$return_data['content'] = "<b>$school_name</b> ($school_num) " .
|
|
"- [<a href='#' id='edit-school' rnum='$school_num'>edit</a>] " .
|
|
"- [<a href='#' snum='$school_num' class='refresh-info'>refresh</a>] " .
|
|
"- <a href='https://$url' target='_blank'>$url</a> " .
|
|
"- [<a href='https://$url/?db_mode=Current&display_content=No' target='_blank'>Clean</a>] $sprices<br>" .
|
|
"$city, $province - $phone<br>" .
|
|
"$principal - <a href='mailto:$principal_email'>$principal_email</a><br>";
|
|
$return_data['content'] .= " - Status: <span id='status-$school_num' class='status' snum='$school_num' status='$status'>$status</span><br>" .
|
|
" - Support: <span id='support-$school_num' class='support' snum='$school_num' support='$support_level'>$support_level</span><br>" .
|
|
" - Configuration: <span id='config-$school_num' class='configuration' snum='$school_num' config='$system_configuration'>$system_configuration</span><br>" .
|
|
" - Small School Discount: <span id='small-school-$school_num' class='small-school-discount' snum='$school_num' discount='$small_school_discount'>$small_school_discount</span><br>" .
|
|
" - Start Date: $start_date<br>" .
|
|
" - Expiry Date: <span id='info-ed-$school_num' class='expiry-date' snum='$school_num' edate='$expiry_date'>$expiry_date</span><br>" .
|
|
" - Last Login: $last_login ($userid)<br>" .
|
|
" - Timezone: $timezone<br>" .
|
|
" - Time Now: <b>$timeNow</b><br>" .
|
|
" - Access Code: $system_access_code<br>" .
|
|
" - Reseller Code: <span class='reseller-code'>$reseller</span><br>" .
|
|
" - Reminder Day: $email_reminder_day ($email_reminder_weeks)<br>";
|
|
|
|
if ($paypal_enabled == 'Y') {
|
|
$return_data['content'] .= " - PayPal Code: $paypal_code<br>\n";
|
|
$return_data['content'] .= " - PayPal Verified: <span class='paypal-verified' snum='$school_num'>$paypal_verified</span><br>\n";
|
|
}
|
|
|
|
if ($bambora_enabled == 'Y') {
|
|
$return_data['content'] .= " - Bambora MID: $bambora_merchant_id<br>\n";
|
|
}
|
|
|
|
// Demo and followup info
|
|
$return_data['content'] .= "<br>";
|
|
$return_data['content'] .= "<div style='width: 100%; overflow: hidden;'>\n";
|
|
$return_data['content'] .= "<div style='width: 400px; float: left; margin: 0 0 0 20px;'>\n";
|
|
$return_data['content'] .= "<table width='350' cellpadding='0' cellspacing='2' border='0'>";
|
|
$return_data['content'] .= "<tr>";
|
|
$return_data['content'] .= "<td class='prompt'><span class='welcome-email-sent' snum='$school_num'><b>Welcome Email Sent:</b></span></td>";
|
|
$return_data['content'] .= "<td class='school-data' align='center' width='150'><span id='welcome-email-sent-$school_num' class='welcome-email-sent' snum='$school_num'>$welcome_email_sent</span></td>";
|
|
$return_data['content'] .= "</tr>";
|
|
$return_data['content'] .= "<tr>";
|
|
$return_data['content'] .= "<td class='prompt'><span class='followup-email-sent' snum='$school_num'><b>Followup Email Sent:</b></span></td>";
|
|
$return_data['content'] .= "<td class='school-data' align='center'><span id='followup-email-sent-$school_num' class='followup-email-sent' snum='$school_num'>$followup_email_sent</span></td>";
|
|
$return_data['content'] .= "</tr>";
|
|
$return_data['content'] .= "<tr>";
|
|
$return_data['content'] .= "<td class='prompt'><span class='demo-scheduled' snum='$school_num'><b>Demo Scheduled For:</b></span></td>";
|
|
$return_data['content'] .= "<td class='school-data' align='center'><span id='demo-scheduled-$school_num' class='demo-scheduled' snum='$school_num'>$demo_scheduled_date</span></td>";
|
|
$return_data['content'] .= "</tr>";
|
|
$return_data['content'] .= "<tr>";
|
|
$return_data['content'] .= "<td class='prompt'><span class='last-demo-date' snum='$school_num'><b>Last Demo Date:</b></span></td>";
|
|
$return_data['content'] .= "<td class='school-data' align='center'><span id='last-demo-date-$school_num' class='last-demo-date' snum='$school_num'>$last_demo_date</span></td>";
|
|
$return_data['content'] .= "</tr>";
|
|
$return_data['content'] .= "<tr>";
|
|
$return_data['content'] .= "<td class='prompt'><span class='followup1-date' snum='$school_num'><b>Followup Date 1:</b></span></td>";
|
|
$return_data['content'] .= "<td class='school-data' align='center'><span id='followup1-date-$school_num' class='followup1-date' snum='$school_num'>$followup1_date</span></td>";
|
|
$return_data['content'] .= "</tr>";
|
|
$return_data['content'] .= "<tr>";
|
|
$return_data['content'] .= "<td class='prompt'><b>Followup Note 1:</b></td>";
|
|
$return_data['content'] .= "<td class='school-data' align='center'><input type='text' name='followup_note1' id='followup_note1' size='30' class='followup-note' snum='$school_num' " .
|
|
"note='1' value='$followup_note1'></td>";
|
|
$return_data['content'] .= "</tr>";
|
|
$return_data['content'] .= "<tr>";
|
|
$return_data['content'] .= "<td class='prompt'><span class='followup2-date' snum='$school_num'><b>Followup Date 2:</b></span></td>";
|
|
$return_data['content'] .= "<td class='school-data' align='center'><span id='followup2-date-$school_num' class='followup2-date' snum='$school_num'>$followup2_date</span></td>";
|
|
$return_data['content'] .= "</tr>";
|
|
$return_data['content'] .= "<tr>";
|
|
$return_data['content'] .= "<td class='prompt'><b>Followup Note 2:</b></td>";
|
|
$return_data['content'] .= "<td class='school-data' align='center'><input type='text' name='followup_note2' id='followup_note2' size='30' class='followup-note' snum='$school_num' " .
|
|
"note='2' value='$followup_note2'></td>";
|
|
$return_data['content'] .= "</tr>";
|
|
$return_data['content'] .= "<tr>";
|
|
$return_data['content'] .= "<td class='prompt'><span class='last-contact' snum='$school_num'><b>Last Contact Date:</b></span></td>";
|
|
$return_data['content'] .= "<td class='school-data' align='center'><span id='last-contact-date-$school_num' class='last-contact' snum='$school_num'>$last_contact_date</span></td>";
|
|
$return_data['content'] .= "</tr>";
|
|
$return_data['content'] .= "<tr>";
|
|
$return_data['content'] .= "<td class='prompt'><span class='testimonial' snum='$school_num'><b>Testimonial:</b></span></td>";
|
|
$return_data['content'] .= "<td class='school-data' align='center'><span id='testimonial-$school_num' class='testimonial' snum='$school_num'>$testimonial</span></td>";
|
|
$return_data['content'] .= "</tr>";
|
|
$return_data['content'] .= "<tr>";
|
|
$return_data['content'] .= "<td class='prompt'><span class='renewal-contact' snum='$school_num'><b>Renewal Contact:</b></span></td>";
|
|
$return_data['content'] .= "<td class='school-data' align='center'><span id='renewal-contact-$school_num' class='renewal-contact' snum='$school_num'>$renewal_contact</span></td>";
|
|
$return_data['content'] .= "</tr>";
|
|
$return_data['content'] .= "</table>";
|
|
$return_data['content'] .= "</div>\n";
|
|
|
|
$return_data['content'] .= "<div style='margin-left: 420px;'>\n";
|
|
// $return_data['content'] .= "<b>Notes:</b> - [<a href='#' id='edit-notes' snum='$school_num'>edit</a>]<br>\n";
|
|
$return_data['content'] .= "<b>Notes:</b><br>\n";
|
|
$return_data['content'] .= "<textarea rows='8' cols='45' id='school-notes'>$notes</textarea>";
|
|
$return_data['content'] .= "<input type='hidden' id='school-num' value='$school_num'>\n";
|
|
$return_data['content'] .= "</div>\n";
|
|
|
|
$return_data['content'] .= "</div>\n";
|
|
|
|
$return_data['contacts'] = "";
|
|
$return_data['invoices'] = "";
|
|
|
|
// Get list of admin accounts
|
|
$results = db_query("SELECT * FROM users WHERE school_num = $school_num AND type = 'System Administrator' ORDER BY userid");
|
|
if (db_num_rows($results)) {
|
|
$return_data['contacts'] .= "<b>Administrator Accounts:</b><br>";
|
|
while ($row = db_fetch_assoc($results)) {
|
|
extract($row);
|
|
$return_data['contacts'] .= " - $userid / $password<br>";
|
|
}
|
|
}
|
|
|
|
// Get contact list
|
|
$results = db_query("SELECT * FROM school_contact_list WHERE school_num = $school_num ORDER BY sequence");
|
|
while ($row = db_fetch_assoc($results)) {
|
|
extract($row);
|
|
$return_data['contacts'] .= "<br><b>$contact_name</b>";
|
|
if (strlen($contact_email)) $return_data['contacts'] .= " - <a href='mailto:$contact_email'>$contact_email</a>";
|
|
$return_data['contacts'] .= "<br>";
|
|
if (strlen($contact_phone)) $return_data['contacts'] .= " - Phone: $contact_phone<br>";
|
|
if (strlen($contact_cell)) $return_data['contacts'] .= " - Cell: $contact_cell<br>";
|
|
}
|
|
|
|
if (strpos($url,'hotlunches.net') !== false || strpos($url,'payschoolfees.net') !== false ||
|
|
strpos($url,'parentcouncil.net') !== false || strpos($url,'fundraiserorders.com') !== false ||
|
|
strpos($url,'registrationnow.net') !== false || strpos($url,'schoolcouncil.net') !== false ||
|
|
strpos($url,'schoollunchorders.net') !== false) {
|
|
|
|
$BaseURL = str_replace("$default_url_code.",'',$url);
|
|
$schoolID = $default_url_code;
|
|
$alias_email = trim($support_email);
|
|
if (strlen($alias_email) == 0) $alias_email = trim($reply_email);
|
|
$return_data['contacts'] .= "<br><br>";
|
|
$return_data['contacts'] .= "<b>Email Alias:</b> $schoolID@$BaseURL => $alias_email";
|
|
$return_data['contacts'] .= "<br><br>";
|
|
}
|
|
|
|
|
|
// Get any linked sites
|
|
$results = db_query("SELECT * FROM schools WHERE status = 'Linked' AND linked_site = $school_num ORDER BY link_sequence");
|
|
if (db_num_rows($results)) {
|
|
$return_data['content'] .= "<br>";
|
|
while ($row = db_fetch_assoc($results)) {
|
|
extract($row);
|
|
$editLink = "[<a href='?action=schools-list&naction=edit&record_num=$record_num'>edit</a>]";
|
|
$return_data['content'] .= "- ($record_num) <a href='http://$url' target='_blank'>$url</a> " .
|
|
"- <a href='http://$url/?display_content=No' target='_blank'>Clean</a> " .
|
|
"$editLink ($special_item_prices)<br>";
|
|
}
|
|
}
|
|
|
|
// Get any invoices info
|
|
$return_data['invoices'] .= "<br>";
|
|
$return_data['invoices'] = "<b>$school_name</b> ($school_num) " .
|
|
"- [<a href='?action=schools-list&naction=edit&record_num=$school_num'>edit</a>] " .
|
|
"- [<a href='#' snum='$school_num' class='refresh-info'>refresh</a>] " .
|
|
"- <a href='http://$url' target='_blank'>$url</a> $sprices<br><br>";
|
|
$results = db_query("SELECT * FROM invoice_header WHERE school_num = $school_num ORDER BY invoice_date DESC");
|
|
if (db_num_rows($results)) {
|
|
$return_data['invoices'] .= "<table class='invoices-table'>";
|
|
$return_data['invoices'] .= "<tr>";
|
|
$return_data['invoices'] .= "<td align='center' width='80'>YEAR</td>";
|
|
$return_data['invoices'] .= "<td align='center' width='80'>NUM</td>";
|
|
$return_data['invoices'] .= "<td align='center' width='80'>DATE</td>";
|
|
$return_data['invoices'] .= "<td align='center' width='70'>STATUS</td>";
|
|
$return_data['invoices'] .= "<td align='center' width='70'>TOTAL</td>";
|
|
$return_data['invoices'] .= "<td align='center' width='70'>PAID</td>";
|
|
$return_data['invoices'] .= "<td align='center' width='70'>BALANCE</td>";
|
|
$return_data['invoices'] .= "<td align='center' width='180'> </td>";
|
|
$return_data['invoices'] .= "</tr>";
|
|
|
|
while ($row = db_fetch_assoc($results)) {
|
|
extract($row);
|
|
$invnum = sprintf("%08d",$record_num + 500);
|
|
$edit = "?action=invoices&selected_school=$school_num&naction=edit&record_num=$record_num";
|
|
$print = "?action=inv-print&invoice_num=$record_num";
|
|
|
|
$pay = "";
|
|
if ($status == 'Open') {
|
|
$pay = "[<a href='?action=invoices&naction=inv-paid&return=schools-list&invoice_num=$record_num' snum='$school_num' inum='$record_num' amt='$total' class='paid-link'>paid</a>]";
|
|
$pay = "[<a href='#' snum='$school_num' inum='$record_num' amt='$total' class='paid-link'>paid</a>]";
|
|
$pay .= "[<a href='#' snum='$school_num' inum='$record_num' amt='$total' class='ezs-link'>ezs</a>]";
|
|
}
|
|
else {
|
|
$yesterday = date("Y-m-d",time() - 60 * 60 * 24);
|
|
if ($payment_date >= $yesterday) $pay .= "[<a href='#' snum='$school_num' inum='$record_num' amt='$total' class='ezs-link'>ezs</a>]";
|
|
}
|
|
|
|
$send = "[<a href='?action=invoices&naction=inv-outstanding&invoice_num=$record_num' class='send-link'>send</a>]";
|
|
|
|
$balance = number_format($total - $amount_paid,2);
|
|
$return_data['invoices'] .= "<tr>";
|
|
$return_data['invoices'] .= "<td align='center'>$school_year</td>";
|
|
$return_data['invoices'] .= "<td align='center'>#$invnum</td>";
|
|
$return_data['invoices'] .= "<td align='center'>$invoice_date</td>";
|
|
$return_data['invoices'] .= "<td align='center'>$status</td>";
|
|
$return_data['invoices'] .= "<td align='center'>$currencySymbol$total</td>";
|
|
$return_data['invoices'] .= "<td align='center'>$currencySymbol$amount_paid</td>";
|
|
$return_data['invoices'] .= "<td align='center'>$currencySymbol$balance</td>";
|
|
$return_data['invoices'] .= "<td align='center'>[<a href='$edit'>edit</a>] [<a href='$print'>print</a>] $pay $send</td>";
|
|
$return_data['invoices'] .= "</tr>";
|
|
}
|
|
$return_data['invoices'] .= "</table>";
|
|
}
|
|
$return_data['invoices'] .= " [<a href='?action=invoices&selected_school=$school_num&naction=add'>Add Invoice</a>]";
|
|
|
|
$return_data['content'] .= "<br>";
|
|
$return_data['content'] .= "[<a href='?action=schools-list&naction=create-link&record_num=$school_num'>Add Site</a>]";
|
|
$return_data['content'] .= " ";
|
|
$return_data['content'] .= "[<a href='?action=schools-list&naction=send-notification&record_num=$school_num'>Send Notification</a>]";
|
|
|
|
break;
|
|
|
|
case 'user-info':
|
|
$user_num = intval($_GET['user_num']);
|
|
|
|
// Get user info
|
|
$results = db_query("SELECT * FROM users WHERE record_num = $user_num");
|
|
if (!is_resource($results)) exit;
|
|
|
|
$row = db_fetch_assoc($results);
|
|
extract($row);
|
|
$user_type = $type;
|
|
$user_num = $record_num;
|
|
$user_status = $status;
|
|
|
|
|
|
// Get school info
|
|
$results = db_query("SELECT * FROM schools WHERE record_num = $school_num");
|
|
$row = db_fetch_assoc($results);
|
|
extract($row);
|
|
|
|
$return_data['content'] = "<b><span class='show-school-info' snum='$school_num'>$school_name</span></b> ($school_num) " .
|
|
"- <a href='http://$url' target='_blank'>$url</a> $sprices<br>" .
|
|
"$city, $province - $phone<br>";
|
|
|
|
$return_data['content'] .= "<br><br>" .
|
|
"<b><span class='user-id-span' rnum='$user_num' snum='$school_num'>$userid</span> - $first_name $last_name</b> ($user_type)<br>" .
|
|
"<a href='mailto:$email'>$email</a> - $phone<br>" .
|
|
"Last Login: $last_login<br>";
|
|
|
|
$return_data['content'] .= "<b><span onclick='#' class='user-status' rnum='$user_num' snum='$school_num'>$user_status</span></b><br><br>";
|
|
|
|
$return_data['content'] .= "<button id='reset-user-password' snum='$school_num' unum='$user_num' userid='$userid' last='$last_login'> Update Password </button><br><br>";
|
|
|
|
// Get student info
|
|
$results = db_query("SELECT * FROM people WHERE school_num = $school_num AND user_num = $user_num");
|
|
while ($row = db_fetch_assoc($results)) {
|
|
$return_data['content'] .= " - ".$row['first_name'].' '.$row['last_name']."<br>";
|
|
}
|
|
break;
|
|
|
|
case 'user-account':
|
|
// Get user number
|
|
$user_num = intval($_GET['user_num']);
|
|
|
|
// Get records
|
|
$columnHeaders = array("User ID","TRX Date","TRX Type","Charges","Credits","Method");
|
|
$columnAlign = array('left','center','left','right','right','left');
|
|
$query = "SELECT u.userid,substring(transaction_datetime,1,10) as trx_date,transaction_type,note,transaction_amount,schedule_num,order_num," .
|
|
"payment_method,payment_reference,order_payments,ua.user_num,people_num,people_type,additional_note,ua.record_num,deleted," .
|
|
"deleted_datetime,deleted_by_user_num,delete_reason,u.first_name,u.last_name " .
|
|
"FROM user_account as ua LEFT JOIN people as p ON ua.people_num = p.record_num, users AS u " .
|
|
"WHERE u.school_num = $base_school_num " .
|
|
"AND ua.school_num = $school_num " .
|
|
"AND ua.user_num = u.record_num " .
|
|
"AND ua.user_num = $user_num " .
|
|
"ORDER BY transaction_datetime,record_num";
|
|
$transactions = db_query($query);
|
|
|
|
$data = array();
|
|
while ($row = db_fetch_assoc($transactions)) {
|
|
extract($row);
|
|
|
|
if ($transaction_amount < 0) {
|
|
$charge = "";
|
|
$credit = "-$currencySymbol".number_format(abs($transaction_amount),2);
|
|
}
|
|
else {
|
|
$credit = "";
|
|
$charge = "$currencySymbol".number_format(abs($transaction_amount),2);
|
|
}
|
|
|
|
if ($transaction_type == 'Order' && intval($schedule_num) > 0) {
|
|
$sname = db_getVal("SELECT schedule_name FROM hotlunch_schedules WHERE school_num = $school_num AND record_num = $schedule_num");
|
|
$transaction_type .= " (#$order_num - $sname)";
|
|
}
|
|
|
|
if ($payment_method == 'Check') $payment_method .= " #$payment_reference";
|
|
|
|
$data[] = array($userid,$trx_date,$transaction_type,$charge,$credit,$payment_method);
|
|
}
|
|
|
|
$customTableID = "account-table";
|
|
$return_data['content'] = getDataCustom($data,$columnHeaders,$action,array(),'N',$columnAlign,$totals);
|
|
|
|
break;
|
|
|
|
case 'trx-history':
|
|
// Get trx number
|
|
$rnum = intval($_GET['rnum']);
|
|
writeLog("rnum: $rnum\n");
|
|
$info = "<center><table width='90%' class='content-table'>";
|
|
$info .= "<tr class='data-header'>";
|
|
$info .= "<td align='left'><b>".getLanguageText('TEXT-TRANSACTION-TYPE')."</b></td>";
|
|
$info .= "<td align='right'><b>".getLanguageText('TEXT-AMOUNT')."</b></td>";
|
|
$info .= "<td align='left'><b>".getLanguageText('TEXT-SCHEDULE')."</b></td>";
|
|
$info .= "</tr>";
|
|
|
|
// Get record
|
|
$query = "SELECT * FROM user_account WHERE school_num = $school_num AND record_num = $rnum";
|
|
writeLog("query: $query\n");
|
|
$results = db_query($query);
|
|
$row = db_fetch_assoc($results);
|
|
writeLog("trx_history: ".$row['trx_history']."\n");
|
|
|
|
$entries = explode("\n",$row['trx_history']);
|
|
for ($i = 0; $i < count($entries); $i++) {
|
|
$row = explode('|',$entries[$i]);
|
|
|
|
if (strlen($row[0])) {
|
|
$bgclass = "data-even";
|
|
if ($i % 2) $bgclass = "data-odd";
|
|
|
|
$info .= "<tr class='$bgclass'>";
|
|
$info .= "<td align='left' valign='top'>".$row[0]."</td>";
|
|
$info .= "<td align='right' valign='top'>".$row[1]."</td>";
|
|
$info .= "<td align='left' valign='top'>".$row[2]."<br>".$row[3]."</td>";
|
|
$info .= "</tr>";
|
|
}
|
|
}
|
|
|
|
$info .= "</table></center><br>";
|
|
|
|
$return_data['content'] = $info;
|
|
|
|
break;
|
|
|
|
case 'trx-receipt':
|
|
// Get trx number
|
|
$trxNum = intval($_GET['trxnum']);
|
|
|
|
// Get trx record
|
|
$query = "SELECT * FROM user_account WHERE school_num = $school_num AND record_num = $trxNum";
|
|
writeLog("query: $query\n");
|
|
$results = db_query($query);
|
|
$trx = db_fetch_assoc($results);
|
|
$userNum = $trx['user_num'];
|
|
|
|
adjustUserAccountDetails($userNum);
|
|
|
|
// Get receipt number
|
|
$user_num = $userNum;
|
|
$rcptNum = db_getVal("SELECT receipt_number FROM user_account_detail WHERE school_num = $school_num AND user_num = $user_num AND transaction_num = $trxNum LIMIT 0,1");
|
|
writeLog("rcptNum: $rcptNum\n");
|
|
|
|
// Get user info
|
|
$query = "SELECT * FROM users WHERE school_num = $school_num AND record_num = $user_num";
|
|
writeLog("query: $query\n");
|
|
$results = db_query($query);
|
|
$user = db_fetch_assoc($results);
|
|
$name = $user['first_name'].' '.$user['last_name'];
|
|
|
|
// Get transaction information
|
|
$trx_details = "";
|
|
|
|
$trxTotal = 0;
|
|
|
|
// Transaction based processing
|
|
if ($school_record['select_transactions_on_post'] == 'Y') {
|
|
// Get transactions in this receipt
|
|
$query = "SELECT detail.*,ua.transaction_type,ua.transaction_amount AS trx_amount,ua2.transaction_datetime,ua.note,ua.schedule_num,ua.order_num " .
|
|
"FROM user_account_detail AS detail, user_account AS ua, user_account AS ua2 " .
|
|
"WHERE detail.school_num = $school_num " .
|
|
"AND detail.school_num = ua.school_num " .
|
|
"AND detail.school_num = ua2.school_num " .
|
|
"AND ua.user_num = $user_num " .
|
|
"AND ua2.user_num = $user_num " .
|
|
"AND detail.user_num = $user_num " .
|
|
"AND detail.receipt_number = '$rcptNum' " .
|
|
"AND detail.posted_to_transaction = ua.record_num " .
|
|
"AND detail.transaction_num = ua2.record_num " .
|
|
"AND (ua.deleted != 'Y' OR ua.deleted IS NULL) " .
|
|
"AND (ua2.deleted != 'Y' OR ua2.deleted IS NULL) " .
|
|
"ORDER BY ua2.transaction_datetime,ua.record_num";
|
|
writeLog("query: $query\n");
|
|
$transactions = db_query($query);
|
|
writeLog("# transactions: ".db_num_rows($transactions)."\n");
|
|
|
|
while ($row = db_fetch_assoc($transactions)) {
|
|
if ($row['transaction_num'] == $trxNum) {
|
|
$trnum = $row['transaction_num'];
|
|
$ptnum = $row['posted_to_transaction'];
|
|
$amt = $row['posted_amount'] * -1;
|
|
$type = $row['transaction_type'];
|
|
$note = $row['note'];
|
|
$onum = $row['order_num'];
|
|
$snum = $row['schedule_num'];
|
|
$prnum = $row['record_num'];
|
|
$rcpt = $row['receipt_number'];
|
|
$trxdate = $row['transaction_datetime'];
|
|
|
|
$trx_total = db_getVal("SELECT transaction_amount FROM user_account WHERE school_num = $school_num AND record_num = $trnum");
|
|
|
|
if ($type == 'Order') {
|
|
$type .= " (#$onum)";
|
|
$query = "SELECT transaction_datetime FROM user_account_detail WHERE school_num = $school_num AND user_num = $user_num AND receipt_number = '$rcptNum' AND posted_to_transaction = $ptnum";
|
|
writeLog("query: $query\n");
|
|
// $amt = db_getVal($query) * -1;
|
|
// $amt = $trx_total;
|
|
// $row['transaction_datetime'] = db_getVal($query);
|
|
$amt = $row['trx_amount'];
|
|
}
|
|
|
|
// Get schedule name
|
|
$sname = '';
|
|
if ($snum == 1) $sname = getLanguageText('TEXT-MISCELLANEOUS-CHARGES');
|
|
if (intval($snum) > 1) {
|
|
$query = "SELECT schedule_name FROM hotlunch_schedules WHERE school_num = $school_num AND record_num = $snum";
|
|
writeLog("query: $query\n");
|
|
$sname = db_getVal($query);
|
|
$note .= " ($sname)";
|
|
}
|
|
if ($trx_total > 0) $note .= " $currencySymbol".number_format($trx_total,2);
|
|
}
|
|
else {
|
|
$trnum = $row['transaction_num'];
|
|
$ptnum = $row['posted_to_transaction'];
|
|
$amt = $row['posted_amount'];
|
|
$rcpt = $row['receipt_number'];
|
|
|
|
$results = db_query("SELECT * FROM user_account WHERE school_num = $school_num AND user_num = $user_num AND record_num = $trnum");
|
|
$row = db_fetch_assoc($results);
|
|
$type = $row['transaction_type'];
|
|
$note = $row['note'];
|
|
}
|
|
|
|
$sign = '';
|
|
if ($amt < 0) $sign = '- ';
|
|
|
|
$trxTotal += $amt;
|
|
$date = date($school_record['date_format'],strtotime($row['transaction_datetime']));
|
|
|
|
$trx_details .= "<tr>";
|
|
$trx_details .= "<td valign='top' align='left'>$type</td>";
|
|
$trx_details .= "<td valign='top' align='left'>$date</td>";
|
|
$trx_details .= "<td valign='top' align='left'>$note</td>";
|
|
$trx_details .= "<td valign='top' align='right'>$sign$currencySymbol".number_format(abs($amt),2)."</td>";
|
|
$trx_details .= "</tr>";
|
|
|
|
}
|
|
|
|
// Add current trx to details
|
|
$trx_details .= "<tr>";
|
|
$trx_details .= "<td valign='top' align='left'>".$trx['transaction_type']."</td>";
|
|
$trx_details .= "<td valign='top' align='left'>$date</td>";
|
|
$trx_details .= "<td valign='top' align='left'>".$trx['note']."</td>";
|
|
$trx_details .= "<td valign='top' align='right'>- $currencySymbol".number_format(abs($trx['transaction_amount']),2)."</td>";
|
|
$trx_details .= "</tr>";
|
|
|
|
$trxTotal += $trx['transaction_amount'];
|
|
}
|
|
|
|
// Get order information
|
|
if ($school_record['select_transactions_on_post'] != 'Y' && strlen($trx['order_payments']) && strlen($trx['transaction_payments']) == 0) {
|
|
$orders = explode('|',$trx['order_payments']);
|
|
$trx_details = "";
|
|
$trxTotal = 0;
|
|
for ($i = 0; $i < count($orders); $i++) {
|
|
$oinfo = $orders[$i];
|
|
$oinfo = str_replace('{','',$oinfo);
|
|
$oinfo = str_replace('}','',$oinfo);
|
|
list($onum,$amt) = explode(':',$oinfo);
|
|
|
|
if ($onum > 0) {
|
|
// Get order information
|
|
$query = "SELECT * FROM hotlunch_order_header WHERE school_num = $school_num AND record_num = $onum";
|
|
writeLog("query: $query\n");
|
|
$results = db_query($query);
|
|
$order = db_fetch_assoc($results);
|
|
|
|
$snum = $order['schedule_num'];
|
|
$pnum = $order['ordered_by_num'];
|
|
|
|
// Get schedule name
|
|
$sname = "";
|
|
if (intval($snum) > 1) {
|
|
$query = "SELECT schedule_name FROM hotlunch_schedules WHERE school_num = $school_num AND record_num = $snum";
|
|
writeLog("query: $query\n");
|
|
$sname = db_getVal($query);
|
|
}
|
|
|
|
// Get person name
|
|
$query = "SELECT * FROM people WHERE school_num = $school_num AND record_num = $pnum";
|
|
writeLog("query: $query\n");
|
|
$results = db_query($query);
|
|
$person = db_fetch_assoc($results);
|
|
|
|
$pname = $person['first_name'].' '.$person['last_name'];
|
|
|
|
$trx_details .= "<tr>";
|
|
$trx_details .= "<td valign='top' align='left'>$pname</td>";
|
|
$trx_details .= "<td valign='top' align='left'>$sname</td>";
|
|
$trx_details .= "<td valign='top' align='right'>$currencySymbol".number_format($amt,2)."</td>";
|
|
$trx_details .= "</tr>";
|
|
|
|
$trxTotal += $amt;
|
|
|
|
$query = "SELECT * FROM user_account WHERE school_num = $school_num AND order_num = $onum AND transaction_type != 'Order' AND deleted != 'Y' ORDER BY record_num";
|
|
writeLog("query: $query\n");
|
|
$results = db_query($query);
|
|
if (db_num_rows($results)) {
|
|
while ($row = db_fetch_assoc($results)) {
|
|
$tname = $row['transaction_type'];
|
|
$note = $row['note'];
|
|
$amt = $row['transaction_amount'];
|
|
|
|
$trx_details .= "<tr>";
|
|
$trx_details .= "<td valign='top' align='left'>$tname</td>";
|
|
$trx_details .= "<td valign='top' align='left'>$note</td>";
|
|
$trx_details .= "<td valign='top' align='right'>$currencySymbol".number_format($amt,2)."</td>";
|
|
$trx_details .= "</tr>";
|
|
|
|
$trxTotal += $amt;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$transaction_type = $trx['transaction_type'];
|
|
if (strlen($trx['payment_method'])) {
|
|
if ($trx['payment_method'] == 'Check') $transaction_type .= " - ".getLanguageText('TEXT-'.strtoupper($trx['payment_method']));
|
|
else $transaction_type .= " - ".$trx['payment_method'];
|
|
if ($trx['payment_method'] == 'Check') $transaction_type .= " (#".$trx['payment_reference'].")";
|
|
}
|
|
|
|
$transaction_time = dateString('datetime',strtotime($trx['transaction_datetime']));
|
|
|
|
|
|
// Start content
|
|
$return_data['content'] = "<table width='100%'><tr><td align='left'>";
|
|
|
|
// School header
|
|
$return_data['content'] .= "<table width='100%'><tr><td align='left'>";
|
|
$return_data['content'] .= "<span class='school-name'>".$school_record['pac_name']."</span><br>";
|
|
$return_data['content'] .= $school_record['address'].", ".$school_record['city'].", ".$school_record['province']." ".$school_record['postal']."<br>";
|
|
|
|
// Receipt header
|
|
$return_data['content'] .= "<br>";
|
|
$return_data['content'] .= "<br>";
|
|
$return_data['content'] .= "<span class='receipt-title'>".getLanguageText('TEXT-RECEIPT')."</span><br>";
|
|
$return_data['content'] .= "<div class='line'></div>";
|
|
$return_data['content'] .= "<br>";
|
|
$return_data['content'] .= "</td></tr></table>";
|
|
|
|
// Receipt content
|
|
$return_data['content'] .= "<br>";
|
|
$return_data['content'] .= "<table width='100%'><tr><td width='75%' align='left'>";
|
|
$return_data['content'] .= "<span class='receipt-large'>".getLanguageText('TEXT-FOR').": $name</span><br>";
|
|
$return_data['content'] .= "</td>";
|
|
$return_data['content'] .= "<td width='25%' align='left' style='border: 1px solid #000000; padding: 3px;'>";
|
|
$return_data['content'] .= "<span class='receipt-large'> # $rcptNum</span><br>";
|
|
$return_data['content'] .= "</td></tr></table>";
|
|
|
|
// Payment content
|
|
$return_data['content'] .= "<br>";
|
|
$return_data['content'] .= "<table width='100%'><tr><td width='25%' align='left' style='border: 1px solid #000000; padding: 3px;'>";
|
|
$return_data['content'] .= "<span class='receipt-large'> ".getLanguageText('TEXT-PAID').": $currencySymbol".number_format(abs($trx['transaction_amount']),2)."</span><br>";
|
|
$return_data['content'] .= "</td>";
|
|
$return_data['content'] .= "<td width='75%' align='center'>";
|
|
$return_data['content'] .= "<span class='receipt-large'> $transaction_type</span><br>";
|
|
$return_data['content'] .= $transaction_time."<br>";
|
|
$return_data['content'] .= "</td></tr></table>";
|
|
|
|
// Detail content
|
|
if (strlen($trx_details)) {
|
|
$return_data['content'] .= "<br>";
|
|
$return_data['content'] .= "<table width='100%'>";
|
|
$return_data['content'] .= "<tr>";
|
|
$return_data['content'] .= "<td width='15%' valign='top' align='left' style='border-bottom: 1px solid #000000'><b>".getLanguageText('TEXT-NAME')."</b></td>";
|
|
$return_data['content'] .= "<td width='20%' valign='top' align='left' style='border-bottom: 1px solid #000000'><b>".getLanguageText('TEXT-DATE')."</b></td>";
|
|
$return_data['content'] .= "<td width='45%' valign='top' align='left' style='border-bottom: 1px solid #000000'><b>".getLanguageText('TEXT-ITEM')."</b></td>";
|
|
$return_data['content'] .= "<td width='20%' valign='top' align='right' style='border-bottom: 1px solid #000000'><b>".getLanguageText('TEXT-AMOUNT')."</b></td>";
|
|
$return_data['content'] .= "</tr>";
|
|
|
|
$return_data['content'] .= $trx_details;
|
|
|
|
if ($trxTotal > -0.01 && $trxTotal < 0.01) $trxTotal = 0.00;
|
|
$return_data['content'] .= "<tr>";
|
|
$return_data['content'] .= "<td colspan='3' align='left'> </td>";
|
|
$return_data['content'] .= "<td align='right' style='border-top: 1px solid #000000'><b>$currencySymbol".number_format($trxTotal,2)."</b></td>";
|
|
$return_data['content'] .= "</tr>";
|
|
|
|
$return_data['content'] .= "<tr>";
|
|
$return_data['content'] .= "<td colspan='3'><br><br><br><br><br></td>";
|
|
$return_data['content'] .= "</tr>";
|
|
|
|
$balance = db_getVal("SELECT sum(transaction_amount) FROM user_account " .
|
|
"WHERE school_num = $school_num " .
|
|
"AND user_num = $user_num " .
|
|
"AND (deleted != 'Y' OR deleted IS NULL)");
|
|
$balance = intval($balance * 100) / 100;
|
|
if ($balance > -0.01 && $balance < 0.01) $balance = 0.00;
|
|
$return_data['content'] .= "<tr>";
|
|
$return_data['content'] .= "<td colspan='2' valign='top' align='right'><b>".getLanguageText('TEXT-CURRENT-ACCT-BALANCE').": </b></td>";
|
|
$return_data['content'] .= "<td valign='top' align='right'><b>$currencySymbol".number_format($balance,2)."</b></td>";
|
|
$return_data['content'] .= "</tr>";
|
|
|
|
$return_data['content'] .= "<tr>";
|
|
$return_data['content'] .= "<td colspan='3'><br><br><br><br><br></td>";
|
|
$return_data['content'] .= "</tr>";
|
|
$return_data['content'] .= "</table>";
|
|
}
|
|
|
|
$printed_time = dateString('datetime',time());
|
|
$return_data['content'] .= "<br>";
|
|
$return_data['content'] .= "<p><b>".getLanguageText('TEXT-PRINTED').": $printed_time</b></p>";
|
|
|
|
// End content table
|
|
$return_data['content'] .= "</td></tr></table>";
|
|
|
|
break;
|
|
|
|
case 'login-log':
|
|
// Get login log parameters
|
|
$sdate = db_escape_string($_GET['sdate']);
|
|
$edate = db_escape_string($_GET['edate']);
|
|
$userid = db_escape_string($_GET['userid']);
|
|
$ip = db_escape_string($_GET['ip']);
|
|
|
|
$where = "AND last_login BETWEEN '$sdate 00:00:00' AND '$edate 23:59:59' ";
|
|
if ($userid != 'All') $where .= "AND userid = '$userid' ";
|
|
if ($ip != 'All') $where .= "AND user_ip = '$ip' ";
|
|
|
|
if ($_SESSION['UserInfo']['type'] != 'SuperUser') $where .= "AND userid != 'superuser' ";
|
|
|
|
|
|
$columnHeaders = array(getLanguageText('TEXT-USERID'),
|
|
getLanguageText('TEXT-LOGIN'),
|
|
getLanguageText('TEXT-LAST-ACTIVITY'),
|
|
getLanguageText('TEXT-DURATION'),
|
|
getLanguageText('TEXT-IP-ADDRESS'));
|
|
$query = "SELECT * FROM login_log " .
|
|
"WHERE school_num = $school_num " .
|
|
$where .
|
|
"ORDER BY last_login desc";
|
|
writeLog("query: $query\n");
|
|
$results = db_query($query);
|
|
|
|
$data = array();
|
|
while ($row = db_fetch_assoc($results)) {
|
|
extract($row);
|
|
|
|
$dstr = "";
|
|
$last_action = "";
|
|
|
|
$last_action = date("Y-m-d H:i:s",$last_activity);
|
|
$duration = $last_activity - $login_time;
|
|
$dhr = intval($duration / 3600);
|
|
$dmin = ($duration % 3600) / 60;
|
|
$dsec = $duration % 60;
|
|
$dstr = sprintf("%dh %02dm %02ds",$dhr,$dmin,$dsec);
|
|
|
|
$data[] = array("<a href='?action=users&naction=show-info&user_num=$user_num' title='$user_agent' class='title-text'>$userid</a>",
|
|
$last_login,
|
|
$last_action,
|
|
$dstr,
|
|
$user_ip);
|
|
}
|
|
|
|
$return_data['content'] = getDataCustom($data,$columnHeaders,$action,array(),'N');
|
|
break;
|
|
|
|
|
|
case 'payment-posting-errors':
|
|
// startLog("payment-posting-errors");
|
|
|
|
// Get parameters
|
|
$sdate = $_GET['sdate'];
|
|
$edate = $_GET['edate'];
|
|
|
|
$columnHeaders = array(getLanguageText('TEXT-DATE'),
|
|
getLanguageText('TEXT-USER-ID'),
|
|
getLanguageText('TEXT-NAME'),
|
|
getLanguageText('TEXT-ORDER-NUMBER'),
|
|
getLanguageText('TEXT-PAYMENT-METHOD'),
|
|
getLanguageText('TEXT-ORDER-TOTAL'),
|
|
getLanguageText('TEXT-AMOUNT-PAID'));
|
|
|
|
$query = "SELECT school_num, record_num, ordered_by_num, added_date, payment_method, order_total, amount_paid " .
|
|
"FROM hotlunch_order_header " .
|
|
"WHERE school_num = $school_num " .
|
|
"AND amount_paid > (order_total * 2) " .
|
|
"AND added_date BETWEEN '$sdate' AND '$edate' " .
|
|
"ORDER BY added_date";
|
|
writeLog($query);
|
|
$orders = db_query($query);
|
|
$num = db_num_rows($orders);
|
|
writeLog("num: $num");
|
|
|
|
$data = array();
|
|
while ($row = db_fetch_assoc($orders)) {
|
|
extract($row);
|
|
|
|
$query = "SELECT * FROM people WHERE school_num = $school_num AND record_num = $ordered_by_num";
|
|
$results = db_query($query);
|
|
$student = db_fetch_assoc($results);
|
|
$user_num = $student['user_num'];
|
|
$name = $student['first_name'].' '.$student['last_name'];
|
|
writeLog("$user_num - $name");
|
|
|
|
$userid = getLanguageText('TEXT-UNKNOWN') . " $ordered_by_num";
|
|
if (intval($user_num) > 0) {
|
|
$query = "SELECT * FROM users WHERE school_num = $school_num AND record_num = $user_num";
|
|
$results = db_query($query);
|
|
$user = db_fetch_assoc($results);
|
|
$userid = $user['userid'];
|
|
}
|
|
|
|
$order_total = '$' . number_format($order_total,2);
|
|
$amount_paid = '$' . number_format($amount_paid,2);
|
|
|
|
$entry = array();
|
|
$entry[] = $added_date;
|
|
$entry[] = $userid;
|
|
$entry[] = $name;
|
|
$entry[] = $record_num;
|
|
$entry[] = $payment_method;
|
|
$entry[] = $order_total;
|
|
$entry[] = $amount_paid;
|
|
|
|
$data[] = $entry;
|
|
}
|
|
|
|
$return_data['content'] = getDataCustom($data,$columnHeaders,'',array(),'N');
|
|
|
|
break;
|
|
|
|
|
|
case 'order-log-detail':
|
|
// Get order log detail
|
|
$order_num = intval($_GET['order_num']);
|
|
$record_num = intval($_GET['record_num']);
|
|
|
|
$return_data['content'] = "";
|
|
|
|
$query = "SELECT * FROM hotlunch_order_change_log WHERE school_num = $school_num AND order_num = $order_num AND record_num = $record_num";
|
|
$results = db_query($query);
|
|
if (db_num_rows($results) == 1) {
|
|
$row = db_fetch_assoc($results);
|
|
extract($row);
|
|
|
|
$userid = "Unknown";
|
|
if ($updated_by > 1) $userid = db_getVal("SELECT userid FROM users WHERE school_num = $base_school_num AND record_num = $updated_by");
|
|
if (!$userid) $userid = "Unknown";
|
|
|
|
$student_name = "";
|
|
if ($ordered_by_num > 0) $student_name = db_getVal("SELECT concat(first_name,' ',last_name) FROM people WHERE school_num = $school_num AND record_num = $ordered_by_num");
|
|
|
|
$return_data['content'] .= "<table width='400'>";
|
|
|
|
$return_data['content'] .= "<tr><td align='left' width='100'>".getLanguageText("TEXT-ACTIVITY").":</td><td align='left'><b>$order_action</b></td></tr>\n";
|
|
$return_data['content'] .= "<tr><td align='left'>".getLanguageText("TEXT-DATE").":</td><td align='left'><b>$updated_time</b></td></tr>\n";
|
|
$return_data['content'] .= "<tr><td align='left'>".getLanguageText("TEXT-USER-ID").":</td><td align='left'><b>$userid</b></td></tr>\n";
|
|
|
|
$return_data['content'] .= "<tr><td colspan='2'> </td></tr>";
|
|
|
|
$return_data['content'] .= "<tr><td align='left'>".getLanguageText("TEXT-ORDER-NUMBER").":</td><td align='left'><b>$order_num</b></td></tr>\n";
|
|
$return_data['content'] .= "<tr><td align='left'>".getLanguageText("TEXT-ORDERED-BY").":</td><td align='left'><b>$student_name</b></td></tr>\n";
|
|
|
|
if ($user_num > 1) {
|
|
$userid = db_getVal("SELECT userid FROM users WHERE school_num = $base_school_num AND record_num = $user_num");
|
|
if ($userid) $return_data['content'] .= "<tr><td align='left'>".getLanguageText("TEXT-USER-ACCOUNT").":</td><td align='left'><b>$userid</b></td></tr>\n";
|
|
}
|
|
|
|
$order_total = $currencySymbol . number_format($order_total,2);
|
|
$return_data['content'] .= "<tr><td align='left'>".getLanguageText("TEXT-ORDER-TOTAL").":</td><td align='left'><b>$order_total</b></td></tr>\n";
|
|
|
|
$return_data['content'] .= "</table>";
|
|
}
|
|
else {
|
|
$return_data['content'] = "<span class='error'>".getLanguageText("ERRORMSG-NOT-FOUND")."</span><br><br>";
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
case 'email-queue':
|
|
// Get email queue parameters
|
|
$sdate = $_GET['sdate'];
|
|
$edate = $_GET['edate'];
|
|
|
|
$columnHeaders = array(getLanguageText('TEXT-POSTED'),
|
|
getLanguageText('TEXT-STATUS'),
|
|
getLanguageText('TEXT-EMAIL'),
|
|
getLanguageText('TEXT-EMAIL-SUBJECT'));
|
|
$query = "SELECT posted_time,posted_date_time,status,email_to,email_subject,record_num " .
|
|
"FROM email_queue " .
|
|
"WHERE school_num = $school_num " .
|
|
"AND posted_date_time BETWEEN '$sdate 00:00:00' AND '$edate 23:59:59' " .
|
|
"ORDER BY posted_date_time";
|
|
writeLog("query: $query\n");
|
|
$results = db_query($query);
|
|
|
|
$data = array();
|
|
while ($row = db_fetch_assoc($results)) {
|
|
extract($row);
|
|
$posted_date_time = date($school_record['date_format'].' '.$school_record['time_format'],$posted_time);
|
|
$data[] = array("<span class='msg' rnum='$record_num'>$posted_date_time</span>",
|
|
"<span class='msg' rnum='$record_num'>$status</span>",
|
|
"<span class='msg' rnum='$record_num'>$email_to</span>",
|
|
"<span class='msg' rnum='$record_num'>$email_subject</span>");
|
|
}
|
|
|
|
$return_data['content'] = getDataCustom($data,$columnHeaders,$action,array(),'N');
|
|
break;
|
|
|
|
case 'email-msg':
|
|
// Get email queue number
|
|
$rnum = intval($_GET['rnum']);
|
|
|
|
$query = "SELECT * FROM email_queue WHERE school_num = $school_num AND record_num = $rnum";
|
|
writeLog("query: $query\n");
|
|
$results = db_query($query);
|
|
$msg = db_fetch_assoc($results);
|
|
extract($msg);
|
|
|
|
$sent_time = dateFormat($processing_end_time);
|
|
|
|
$msg = strip_tags($email_message);
|
|
if ($msg == $email_message) $email_message = nl2br($email_message);
|
|
|
|
$info = "<center><table width='95%' class='content-table'>";
|
|
$info .= "<tr><td align='left' valign='top'><b>".getLanguageText('TEXT-EMAIL') .":</b></td><td>$email_to</td></tr>";
|
|
$info .= "<tr><td align='left' valign='top'><b>".getLanguageText('TEXT-EMAIL-SUBJECT') .":</b></td><td>$email_subject</td></tr>";
|
|
$info .= "<tr><td align='left' valign='top'><b>".getLanguageText('TEXT-PROCESSED-TIME') .":</b></td><td>$sent_time</td></tr>";
|
|
$info .= "<tr><td align='left' valign='top'><b>".getLanguageText('TEXT-STATUS') .":</b></td><td>$status</td></tr>";
|
|
$info .= "<tr><td colspan='2' valign='top'><hr></td></tr>";
|
|
$info .= "<tr><td colspan='2' align='left' valign='top'><b>".getLanguageText('TEXT-MESSAGE') .":</b><br>".nl2br($email_message)."</td></tr>";
|
|
$info .= "</table></center><br>";
|
|
$return_data['content'] = $info;
|
|
|
|
break;
|
|
|
|
case 'cafeteria-students':
|
|
// Get parameters
|
|
$menuNum = intval($_GET['menuNum']);
|
|
$classNum = intval($_GET['classNum']);
|
|
|
|
$where = "";
|
|
if ($classNum > 0) $where = "AND class_num = $classNum ";
|
|
|
|
$query = "SELECT * FROM people WHERE school_num = $base_school_num $where ORDER BY last_name,first_name";
|
|
$people = db_query($query);
|
|
|
|
if (db_num_rows($people)) {
|
|
$return_data['content'] .= "<div class='cafeteria-students-div'>\n";
|
|
while ($row = db_fetch_assoc($people)) {
|
|
extract($row);
|
|
$people_num = $record_num;
|
|
|
|
$userBalance = round(db_getVal("SELECT sum(transaction_amount) FROM user_account WHERE school_num = $school_num AND user_num = $user_num AND (deleted != 'Y' OR deleted IS NULL)"),2);
|
|
|
|
$balance_class = "";
|
|
if ($userBalance > $school_record['cafeteria_balance_limit']) $balance_class = " cafeteria-balance-low";
|
|
|
|
$prefix = $school_record['currency_symbol'];
|
|
if ($userBalance < 0) $prefix = "- " . $school_record['currency_symbol'];
|
|
$userBalance = "<span class='$class'>" . $prefix . number_format(abs($userBalance),2) . "</span>";
|
|
|
|
$itemsOrdered = db_getVal("SELECT count(*) FROM hotlunch_order_items WHERE school_num = $school_num AND ordered_by_num = $people_num AND menu_num = $menuNum");
|
|
$oclass = "";
|
|
if ($itemsOrdered > 0) $oclass = "cafeteria-student-with-order";
|
|
|
|
$return_data['content'] .= "<div class='cafeteria-student-entry $oclass' rnum='$record_num' name='$first_name $last_name'>\n";
|
|
$return_data['content'] .= "<a href='#' class='cafeteria-student-name'>$first_name $last_name</a> ($people_type)";
|
|
$return_data['content'] .= "<div class='cafeteria-balance$balance_class'>$userBalance</div>";
|
|
$return_data['content'] .= "</div>\n";
|
|
}
|
|
$return_data['content'] .= "</div>\n";
|
|
$return_data['content'] .= "<br>\n";
|
|
$return_data['content'] .= "<br>\n";
|
|
}
|
|
|
|
break;
|
|
|
|
case 'cafeteria-student-menu':
|
|
// Get parameters
|
|
$scheduleNum = intval($_GET['scheduleNum']);
|
|
$menuNum = intval($_GET['menuNum']);
|
|
$classNum = intval($_GET['classNum']);
|
|
$studentNum = intval($_GET['studentNum']);
|
|
|
|
$query = "SELECT * FROM hotlunch_schedules WHERE school_num = $school_num AND record_num = $scheduleNum";
|
|
$results = db_query($query);
|
|
$schedule = db_fetch_assoc($results);
|
|
|
|
$query = "SELECT * FROM hotlunch_menu_dates WHERE school_num = $school_num AND record_num = $menuNum";
|
|
$results = db_query($query);
|
|
$menu_date = db_fetch_assoc($results);
|
|
|
|
$qtyFieldFormat = $menu_date['order_format'];
|
|
|
|
$query = "SELECT * FROM people WHERE school_num = $base_school_num AND record_num = $studentNum";
|
|
$results = db_query($query);
|
|
$people = db_fetch_assoc($results);
|
|
extract($people);
|
|
|
|
$order_num = intval(db_getVal("SELECT record_num FROM hotlunch_orders WHERE school_num = $school_num AND student_num = $studentNum AND schedule_num = $scheduleNum"));
|
|
if ($orderNum > 0) $orderNum = " ($order_num)";
|
|
else $orderNum = "";
|
|
|
|
if ($classNum > 0) $class = getClassInfo($classNum);
|
|
|
|
$return_data['content'] .= "<span class='cafeteria-student-name-text'>$first_name $last_name $orderNum</span><br>";
|
|
if ($classNum > 0) $return_data['content'] .= "<span class='cafeteria-student-class-text'>$class</span><br>";
|
|
|
|
$query = "SELECT * FROM hotlunch_menu_items WHERE school_num = $school_num AND menu_num = $menuNum";
|
|
writeLog("query: $query\n");
|
|
$menu_items = db_query($query);
|
|
|
|
$symbol = $school_record['currency_symbol'];
|
|
|
|
$iconWidth = 25;
|
|
$iconHeight = 25;
|
|
|
|
$orderTotal = 0;
|
|
$tabIndex = 1;
|
|
|
|
if (db_num_rows($menu_items)) {
|
|
|
|
$return_data['content'] .= "<table class='cafeteria-menu-entry'>";
|
|
|
|
while ($row = db_fetch_assoc($menu_items)) {
|
|
extract($row);
|
|
$menu_item_num = $record_num;
|
|
|
|
if ($item_type == 'Heading') {
|
|
$return_data['content'] .= "<tr class='cafeteria-heading'>";
|
|
$return_data['content'] .= "<td colspan='4'>";
|
|
$return_data['content'] .= "<span class='menu-item-title'>$item_title</span>";
|
|
$return_data['content'] .= "</td>";
|
|
$return_data['content'] .= "</tr>\n";
|
|
}
|
|
|
|
if ($item_type == 'Item') {
|
|
$query = "SELECT * FROM hotlunch_order_items WHERE school_num = $school_num AND ordered_by_num = $studentNum AND menu_num = $menuNum AND menu_item_num = $menu_item_num";
|
|
$results = db_query($query);
|
|
if (db_num_rows($results)) {
|
|
$ordered_item = db_fetch_assoc($results);
|
|
$qty = $ordered_item['qty'];
|
|
}
|
|
else $qty = 0;
|
|
|
|
$item_price = $online_price;
|
|
$item_total = $qty * $item_price;
|
|
$jprice = $item_price;
|
|
|
|
if (strlen($item_description)) $item_title .= "<br><span class='cafeteria-item-description'>$item_description</span>";
|
|
|
|
// Handle options
|
|
|
|
|
|
if ($item_price == 0.00) {
|
|
$jprice = 0;
|
|
$item_price = "";
|
|
$item_total = "";
|
|
}
|
|
|
|
$line_total = $qty * $jprice;
|
|
$orderTotal += $line_total;
|
|
|
|
$lineTotal = "";
|
|
if ($line_total != 0) {
|
|
if ($line_total > 0) $lineTotal = $symbol . number_format($line_total,2);
|
|
else $lineTotal = "- " . $symbol . number_format(abs($line_total),2);
|
|
}
|
|
|
|
$return_data['content'] .= "<tr class='cafeteria-item' item_num='$menu_item_num'>";
|
|
$return_data['content'] .= "<td class='cafeteria-menu-item-title'>$item_title</td>";
|
|
$return_data['content'] .= "<td class='cafeteria-menu-item-qty'>";
|
|
|
|
if ($qtyFieldFormat == 'Quantity' && $menu_item_format == 'D' || $menu_item_format == 'Q') {
|
|
$return_data['content'] .= "<table cellpadding='0' cellspacing='0' class='qty-table'><tr>" .
|
|
"<td valign='top'><a href='#' class='minus' item_num='$menu_item_num' price='$jprice'>" .
|
|
"<img src='images/minus.png' align='left' hspace='10' vspace='0' height='$iconHeight' width='$iconWidth'></a></td>" .
|
|
"<td valign='top'><input type='text' class='cafeteria-qty' size='2' id='qty_$menu_item_num' value='$qty' item_num='$menu_item_num' price='$jprice' tabindex='$tabIndex'></td>" .
|
|
"<td valign='top'><a href='#' class='plus' item_num='$menu_item_num' price='$jprice'>" .
|
|
"<img src='images/plus.png' align='right' hspace='10' vspace='0' height='$iconHeight' width='$iconWidth'></a></td>" .
|
|
"</tr></table>";
|
|
}
|
|
else {
|
|
$checked = "";
|
|
if ($qty == 1) $checked = "checked='checked'";
|
|
$return_data['content'] .= "<input type='checkbox' class='cafeteria-checkbox' id='qty_$menu_item_num' value='1' $checked item_num='$menu_item_num' price='$jprice'>";
|
|
}
|
|
|
|
$return_data['content'] .= "<input type='hidden' class='line-total' id='total-$menu_item_num' value='$line_total'>";
|
|
$return_data['content'] .= "<input type='hidden' id='prev_qty_$menu_item_num' value='$qty'>";
|
|
$return_data['content'] .= "</td>";
|
|
$return_data['content'] .= "<td class='cafeteria-menu-item-price' id='price_$menu_item_num'>$symbol" . number_format($item_price,2) . "</td>";
|
|
$return_data['content'] .= "<td class='cafeteria-menu-item-price'><span id='total_$menu_item_num'>$lineTotal</span></td>";
|
|
$return_data['content'] .= "</tr>";
|
|
|
|
$tabIndex++;
|
|
}
|
|
}
|
|
|
|
$return_data['content'] .= "<tr><td colspan='3' align='right'>" . getLanguageText('TEXT-TOTAL') .
|
|
"</td><td class='cafeteria-item cafeteria-menu-item-price'><span id='cafeteria-total'>$symbol" . number_format($orderTotal,2) . "</span></td></tr>\n";
|
|
$return_data['content'] .= "</table>\n";
|
|
|
|
$return_data['content'] .= "<input type='hidden' name='cafeteria_schedule_num' id='cafeteria_schedule_num' value='$scheduleNum'>";
|
|
$return_data['content'] .= "<input type='hidden' name='cafeteria_menu_num' id='cafeteria_menu_num' value='$menuNum'>";
|
|
$return_data['content'] .= "<input type='hidden' name='cafeteria_student_num' id='cafeteria_student_num' value='$studentNum'>";
|
|
$return_data['content'] .= "<input type='hidden' name='cafeteria_order_num' id='cafeteria_order_num' value='$order_num'>";
|
|
|
|
$return_data['content'] .= "<span id='order_num_span'>$order_num</span>";
|
|
}
|
|
|
|
break;
|
|
|
|
case 'update-students':
|
|
$logging = false;
|
|
$user_num = intval($_GET['usernum']);
|
|
$mode = $_GET['mode'];
|
|
$return_data['count'] = 0;
|
|
|
|
$query = "SELECT* FROM people WHERE school_num = $school_num AND user_num = $user_num AND people_type = 'Student'";
|
|
writeLog("query: $query\n");
|
|
$students = db_query($query);
|
|
|
|
if (db_num_rows($students)) {
|
|
$return_data['count'] = db_num_rows($students);
|
|
// Get classes
|
|
$Classes = array();
|
|
$results = db_query("SELECT * FROM classes WHERE school_num = $school_num AND entry_type = 'Class' ORDER BY sequence");
|
|
while ($row = db_fetch_assoc($results)) {
|
|
$cnum = $row['record_num'];
|
|
$classInfo = getClassInfo($cnum,'dropdown');
|
|
$row['info'] = $classInfo;
|
|
$Classes[] = $row;
|
|
}
|
|
|
|
$content = "<center><table width='95%' class='content-table'>";
|
|
$content .= "<tr>";
|
|
$content .= "<td class='heading'>" . getLanguageText('TEXT-NAME') . "</td>";
|
|
$content .= "<td class='heading'>" . $GlobalText['Class'] . "</td>";
|
|
$content .= "</tr>";
|
|
|
|
$class = 'data-odd';
|
|
|
|
while ($row = db_fetch_assoc($students)) {
|
|
extract($row);
|
|
writeLog("class_num: $class_num\n");
|
|
|
|
if ($class == 'data-odd') $class = 'data-even';
|
|
else $class = 'data-odd';
|
|
|
|
$content .= "<tr>";
|
|
$content .= "<td class='$class'>$first_name $last_name</td>";
|
|
$content .= "<td class='$class'>";
|
|
$content .= "<select name='student_class' class='student-class' snum='$record_num'>";
|
|
|
|
if ($class_num == 0) $content .= "<option value=0></option>";
|
|
|
|
for ($i = 0; $i < count($Classes); $i++) {
|
|
$class = $Classes[$i];
|
|
$cnum = $class['record_num'];
|
|
$info = $class['info'];
|
|
$selected = "";
|
|
if ($class_num == $cnum) $selected = " selected='selected'";
|
|
$content .= "<option value=$cnum $selected>$info</option>";
|
|
}
|
|
|
|
$content .= "</select>";
|
|
$content .= "</td>";
|
|
$content .= "</tr>";
|
|
}
|
|
|
|
$content .= "</table></center>";
|
|
$return_data['content'] = $content;
|
|
}
|
|
|
|
break;
|
|
|
|
case 'load-image-gallery':
|
|
$content = "";
|
|
$image_path = "files/$subpath/image";
|
|
$imagedir = opendir($image_path);
|
|
|
|
$file_names = array();
|
|
while ($file = readdir($imagedir)) {
|
|
if ($file == ".") continue;
|
|
if ($file == "..") continue;
|
|
|
|
if (strstr($file,"-tn.jpg") !== false) $file_names[] = $file;
|
|
if (strstr($file,"-tn.png") !== false) $file_names[] = $file;
|
|
if (strstr($file,"-tn.gif") !== false) $file_names[] = $file;
|
|
}
|
|
|
|
sort($file_names);
|
|
$count = count($file_names);
|
|
$rows = intval(($count + 3) / 4);
|
|
$columns = 4;
|
|
$img = 0;
|
|
|
|
if (count($file_names)) {
|
|
$content = "<center><table width='850' class='content-table'>";
|
|
|
|
for ($r = 0; $r < $rows; $r++) {
|
|
$content .= "<tr>";
|
|
|
|
for ($c = 0; $c < $columns; $c++) {
|
|
$content .= "<td align='center' width='200'>";
|
|
|
|
if ($img < count($file_names)) {
|
|
$thumbnail = $file_names[$img];
|
|
$image = str_replace("-tn.",".",$thumbnail);
|
|
$content .= "<img src='$image_path/$thumbnail' class='gallery-image' filename='$image_path/$image' style='border: solid 1px #000000'>";
|
|
$img++;
|
|
}
|
|
else $content .= " ";
|
|
|
|
$content .= "</td>";
|
|
}
|
|
|
|
$content .= "</tr>";
|
|
}
|
|
|
|
$content .= "</table></center>";
|
|
}
|
|
|
|
$return_data['content'] = $content;
|
|
break;
|
|
}
|
|
|
|
$return_data['content'] .= $localContent;
|
|
// writeLog("".$return_data['content']."\n");
|
|
|
|
writeLog("complete\n");
|
|
echo(json_encode($return_data));
|
|
|
|
?>
|