$edit_icon_small"; $commands[] = "$delete_icon_small"; // // 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); } unset($query); $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; $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[] = "$file_icon_small"; $commands[] = "$users_icon_small"; $commands[] = "$web_icon_small"; $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"; $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]; $fkey = $action_name.'.'.$fname; unset($odata); if (isset($LookupArrays) && array_key_exists($fkey, $LookupArrays)) { $odata = $fdata; if (array_key_exists($fdata, $LookupArrays[$fkey])) $fdata = $LookupArrays[$fkey][$fdata]; else $fdata = ""; } if (strlen($fdata) && $ftype == 'money') { $fdata = '$'.number_format(floatval($fdata), 2); } if (array_key_exists('record_num',$row)) { $rnum = $row['record_num']; if ($i == 0) $fdata = "$fdata"; else { $span_name = str_replace('_','-',$fname).'-data-span'; $id = str_replace('_','-',$fname).'-data-span-id-'.$rnum; $stext = ""; if (isset($odata)) $stext = " ref-num='$odata'"; $fdata = "$fdata"; } } $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'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; 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); $return_data['num_records'] = db_num_rows($results); if (db_num_rows($results)) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); if (strlen(trim($description))) $description = "
".trim($description).""; $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("$poll_title$description", "$numQuestions", "$numAnswers", "record_num" => $record_num, "delete_flag" => 'Y'); } $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; $commands[] = "$view_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'delivery-groups': // Setup format $columnHeaders = array(getLanguageText('TEXT-GROUP'), getLanguageText('TEXT-TITLE'), getLanguageText('TEXT-CLASSES'), ); $columnAlign = array('center','center','center'); // Get records to display $query = "SELECT * FROM delivery_groups WHERE school_num = $school_num ORDER BY sequence,group_id"; writeLog("query: $query\n"); $results = db_query($query); $return_data['num_records'] = db_num_rows($results); if (db_num_rows($results)) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); $delete_flag = 'Y'; $numEntries = db_getVal("SELECT count(*) FROM classes WHERE school_num = $school_num AND delivery_group = '$group_id'"); if ($numEntries) $delete_flag = 'N'; $data[] = array($group_id, $group_title, $numEntries, "record_num" => $record_num, "delete_flag" => $delete_flag); } // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 450; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } 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); $return_data['num_records'] = db_num_rows($results); $warnings = ""; if (db_num_rows($results)) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); $numEntries = db_getVal("SELECT count(*) FROM people_categories WHERE school_num = $school_num AND category_num = $record_num"); $warnings .= "\n"; if (!isset($delete_flag)) $delete_flag = 'Y'; if ($numEntries > 0) $delete_flag = 'N'; $data[] = array($category, $numEntries, "record_num" => $record_num, "delete_flag" => $delete_flag); } // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; $commands[] = "$students_icon_small"; // $commands[] = "$view_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 450; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); $return_data['content'] .= $warnings; } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'staff-categories': // Setup format $columnHeaders = array(getLanguageText('TEXT-CATEGORY'), getLanguageText('TEXT-NUMBER'), getLanguageText('TEXT-DEFAULT'), ); $columnAlign = array('left','center','center'); // Get records to display $query = "SELECT * FROM staff_categories WHERE school_num = $school_num ORDER BY sequence"; writeLog("query: $query\n"); $results = db_query($query); $return_data['num_records'] = db_num_rows($results); 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 WHERE school_num = $base_school_num AND people_type = 'Staff' AND staff_category = $record_num"); if ($numEntries) $delete_flag = 'N'; if (!isset($is_default)) $is_default = ''; $data[] = array($category_title, $numEntries, "$is_default", "record_num" => $record_num, "delete_flag" => $delete_flag); } // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 450; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'staff-list': // Are staff categories in use $nCategories = db_getVal("SELECT count(*) FROM people WHERE school_num = $school_num AND people_type = 'Staff' AND staff_category > 0"); // Setup format $columnHeaders = array(); $columnHeaders[] = getLanguageText('TEXT-NAME'); if ($nCategories > 0) $columnHeaders[] = getLanguageText('TEXT-CATEGORY'); $columnHeaders[] = getLanguageText('TEXT-USER-ID'); $columnHeaders[] = getLanguageText('TEXT-CLASS'); $columnAlign = array(); $columnAlign[] = 'left'; if ($nCategories > 0) $columnAlign[] = 'center'; $columnAlign[] = 'left'; $columnAlign[] = 'left'; if ($school_record['special_item_prices'] != 'N') { $columnHeaders[] = getLanguageText('TEXT-MENU-PRICE-CATEGORY'); $columnAlign[] = "center"; } $div_text = $school_record['division_class_num_text']; $query = "SELECT p.*,category_title " . "FROM people AS p LEFT JOIN staff_categories AS sc ON (sc.school_num = $school_num AND sc.record_num = p.staff_category) " . "WHERE p.school_num = $base_school_num " . "AND people_type = 'Staff' " . "ORDER BY last_name,first_name"; writeLog("query: $query\n"); $results = db_query($query); $return_data['num_records'] = db_num_rows($results); if (db_num_rows($results)) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); // Format the name if (strlen($title)) $name = "$title $first_name $last_name"; else $name = "$first_name $last_name"; // Get and format userid $userid = ''; $ruser = db_query("SELECT * FROM users WHERE school_num = $base_school_num AND record_num = $user_num"); if (db_num_rows($ruser)) { $user = db_fetch_assoc($ruser); $userid = $user['userid']; $userid = "$userid"; // If there is an email address create a link for the name field if (strlen($user['email']) && strstr($user['email'],'@')) { $name = "$name"; } } $numOrders = 0; $numOrders = db_getVal("SELECT count(*) FROM hotlunch_order_header WHERE school_num = $school_num AND ordered_by_num = $record_num"); if ($numOrders > 0) $name .= " ($numOrders)"; if ($school_record['implement_meal_locations'] == 'Y') { $location = ""; if ($meal_location > 0) { if ($meal_location != $class_num) { $location = "" . db_getVal("SELECT description FROM classes WHERE school_num = $base_school_num AND record_num = $meal_location") . ""; } else { $location = "" . getLanguageText('TEXT-CLASSROOM') . ""; } } if (strlen($location)) $name .= "
$location"; } $class_num = db_getVal("SELECT record_num FROM classes WHERE teacher1 = $record_num ORDER BY sequence LIMIT 1"); $classinfo = ''; if (isset($class_num) && $class_num > 3) { $classinfo = getClassInfo($class_num, 'internal'); db_query("UPDATE people SET class_num = $class_num WHERE school_num = $school_num AND people_type = 'Staff' AND record_num = $record_num"); } else $classinfo = getLanguageText('TEXT-'.strtoupper($people_type)); $entry = array(); $entry[] = $name; if ($nCategories > 0)$entry[] = $category_title; $entry[] = $userid; if (strlen($classinfo) > 50) $classinfo = substr($classinfo, 0, 45)."..."; $entry[] = $classinfo; if ($school_record['special_item_prices'] == 'Y') { $mcat = strtolower(str_replace(' ','',$menu_price_category)); $mclass = ''; $menu_price_category_text = getLanguageText('TEXT-'.$menu_price_category); if ($menu_price_category != 'Regular') { $mclass = 'warning'; switch ($menu_price_category) { case 'Special 1': if (strlen($school_record['special1_text'])) $menu_price_category_text = $school_record['special1_text']; break; case 'Special 2': if (strlen($school_record['special2_text'])) $menu_price_category_text = $school_record['special2_text']; break; case 'Special 3': if (strlen($school_record['special3_text'])) $menu_price_category_text = $school_record['special3_text']; break; } } $menu_price_category = "" . $menu_price_category_text . ""; $entry[] = $menu_price_category; } $entry['record_num'] = $record_num; $data[] = $entry; } // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 900; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'application-contacts': // Setup format $columnHeaders = array(getLanguageText('TEXT-NAME'), getLanguageText('TEXT-EMAIL'), getLanguageText('TEXT-PHONE'), getLanguageText('TEXT-CELL-PHONE'), getLanguageText('TEXT-POSITION'), ); $columnAlign = array('left','left','left','left','left'); // Get records to display $query = "SELECT contact_name,contact_email,contact_phone,contact_cell,contact_position,sequence,record_num " . "FROM school_contact_list " . "WHERE school_num = $school_num " . "ORDER BY sequence"; writeLog("query: $query\n"); $results = db_query($query); $return_data['num_records'] = db_num_rows($results); $num = db_num_rows($results); if ($num > 0) { $data = array(); while ($row = db_fetch_assoc($results)) { $delete_flag = 'Y'; if ($num == 1) $delete_flag = 'N'; $email = $row['contact_email']; $data[] = array( $row['contact_name'], "$email", $row['contact_phone'], $row['contact_cell'], $row['contact_position'], $row['sequence'], "record_num" => $row['record_num'], "delete_flag" => $delete_flag); } // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 650; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'user-account-trx-codes': // Setup format $columnHeaders = array(getLanguageText('TEXT-TRANSACTION-CODE'), getLanguageText('TEXT-CATEGORY'), getLanguageText('TEXT-COUNT') ); $columnAlign = array('left','center','center'); // Get records to display $query = "select transaction_type_code,trx_category,sequence,record_num " . "from user_account_trx_codes " . "where school_num = $school_num " . "order by trx_category,sequence"; writeLog("query: $query\n"); $results = db_query($query); $return_data['num_records'] = db_num_rows($results); if (db_num_rows($results)) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); $count = db_getVal("SELECT count(*) FROM user_account WHERE school_num = $school_num AND transaction_type = '$transaction_type_code'"); $delete_flag = 'Y'; if ($count > 0) $delete_flag = 'N'; $trxCat = getLanguageText('TEXT-'.$trx_category); $data[] = array($transaction_type_code, $trxCat, $count, "record_num" => $record_num, "delete_flag" => $delete_flag); } // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 650; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'admin-user-access-list': // Get records to display $query = "SELECT userid, record_num FROM users " . "WHERE school_num = $base_school_num " . "AND type NOT IN ('Parent','Staff','Guest','Application Volunteer','Schedule Volunteer')"; $users = db_query($query); $content = ""; $schoolName = $school_record['school_name']; if (db_num_rows($users) > 0) { $content = "

$schoolName

\n"; $content .= ""; $content .= ""; $content .= ""; $content .= ""; $content .= ""; $class = 'data-odd'; while ($row = db_fetch_assoc($users)) { extract($row); $access = 'N'; $query = "SELECT * FROM admin_user_access WHERE school_num = $school_num AND user_num = $record_num"; $results = db_query($query); if (db_num_rows($results)) { $r = db_fetch_assoc($results); $access = $r['access']; $rnum = $r['record_num']; } else { $query = "INSERT INTO admin_user_access (school_num,user_num,access) VALUES ($school_num, $record_num, 'N')"; db_query($query); $rnum = db_insert_id(); } if ($class == 'data-odd') $class = 'data-even'; else $class = 'data-odd'; $content .= ""; $content .= ""; $content .= ""; $content .= ""; } $content .= "
".getLanguageText('TEXT-USER-ID')."".getLanguageText('TEXT-ACCESS')."
$userid$access
"; } $return_data['content'] = $content; break; case 'class-programs': // Setup format $columnHeaders = array($GlobalText['ClassProgram'], getLanguageText('TEXT-NUMBER'), ); $columnAlign = array('left','center'); // Get records to display $query = "SELECT program_name,count(c.record_num) AS count,cp.sequence,cp.record_num " . "FROM class_programs as cp left join classes as c on c.class_program = cp.record_num " . "WHERE cp.school_num = $school_num " . "GROUP BY 1,3,4 " . "ORDER BY sequence,program_name"; writeLog("query: $query\n"); $results = db_query($query); $return_data['num_records'] = db_num_rows($results); if (db_num_rows($results)) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); $delete_flag = 'Y'; if ($count > 0) $delete_flag = 'N'; $data[] = array($program_name, $count, "record_num" => $record_num, "delete_flag" => $delete_flag); } // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 450; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'deposit-amounts': // Setup format $columnHeaders = array(getLanguageText('TEXT-AMOUNT')); $columnAlign = array('center'); // Get records to display $query = "select amount,record_num " . "from account_deposit_amounts " . "where school_num = $school_num " . "order by amount"; writeLog("query: $query\n"); $results = db_query($query); $return_data['num_records'] = db_num_rows($results); if (db_num_rows($results)) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); $delete_flag = 'Y'; $data[] = array($currencySymbol.number_format($amount,2), "record_num" => $record_num, "delete_flag" => $delete_flag); } // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 350; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'organization-contacts': // Setup format $columnHeaders = array(getLanguageText('TEXT-POSITION'), getLanguageText('TEXT-NAME'), getLanguageText('TEXT-EMAIL'), ); $columnAlign = array('left','left','left'); // Get records to display $query = "select position,person,email,sequence,record_num " . "from organization_contacts " . "where school_num = $school_num " . "order by sequence,position"; writeLog("query: $query\n"); $results = db_query($query); $return_data['num_records'] = db_num_rows($results); if (db_num_rows($results)) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); $delete_flag = 'Y'; $data[] = array($position, $person, $email, "record_num" => $record_num, "delete_flag" => $delete_flag); } // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 650; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'payment-discounts': // Setup format $columnHeaders = array(getLanguageText('TEXT-TYPE'), getLanguageText('TEXT-AMOUNT'), getLanguageText('TEXT-START-DATE'), getLanguageText('TEXT-END-DATE') ); $columnAlign = array('left','center','center','center'); // Get records to display $query = "select discount_type,discount,start_date,end_date,record_num " . "from payment_discounts " . "where school_num = $school_num " . "order by start_date,end_date"; writeLog("query: $query\n"); $results = db_query($query); $return_data['num_records'] = db_num_rows($results); if (db_num_rows($results)) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); $delete_flag = 'Y'; $data[] = array($discount_type, $currencySymbol.number_format($discount,2), $start_date, $end_date, "record_num" => $record_num, "delete_flag" => $delete_flag); } // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 600; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'document-categories': // Setup format $columnHeaders = array(getLanguageText('TEXT-TITLE'), getLanguageText('TEXT-DOCUMENTS'), ); $columnAlign = array('left','center'); // Get records to display $query = "select dc.category,count(d.record_num) as number,dc.sequence,dc.record_num " . "from document_categories as dc left join documents as d on d.school_num = $school_num and d.category_num = dc.record_num " . "where dc.school_num = $base_school_num " . "group by 1,3,4 " . "order by sequence,category"; writeLog("query: $query\n"); $results = db_query($query); $return_data['num_records'] = db_num_rows($results); if (db_num_rows($results)) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); $delete_flag = 'Y'; if ($number > 0) $delete_flag = 'N'; $data[] = array($category, $number, "record_num" => $record_num, "delete_flag" => $delete_flag); } // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 450; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'documents': // Set document path $documentPath = "files/" . sprintf("%08d",$school_num) . "/uploads/"; // Get set of documents in system $columnHeaders = array(getLanguageText('TEXT-FILE'), getLanguageText('TEXT-TITLE'), getLanguageText('TEXT-DATE'), getLanguageText('TEXT-STATUS')); $columnAlign = array("left","left","center","center"); $query = "SELECT document_name,document_title,notes,added_datetime,status,record_num FROM school_documents " . "WHERE school_num = $school_num " . "ORDER BY added_datetime DESC"; writeLog("query: $query"); $documents = db_query($query); $cutoff = date("Y-m-d 00:00:00",time() - 60 * 60 * 24 * 30); $data = array(); if (db_num_rows($documents)) { while ($row = db_fetch_assoc($documents)) { extract($row); $entry = array(); if (!file_exists("$documentPath$document_name")) { if ($status == 'Uploaded') db_query("UPDATE school_documents SET status = 'Deleted' WHERE school_num = $school_num AND record_num = $record_num"); $status = 'Deleted'; } if ($status == 'Deleted' && $added_datetime < $cutoff) { db_query("DELETE FROM school_documents WHERE school_num = $school_num AND record_num = $record_num"); continue; } if (!isset($notes)) $notes = ''; $note = str_replace("'","'",$notes); $entry[] = "$document_name"; $entry[] = $document_title; $entry[] = $added_datetime; $entry[] = $status; $entry['record_num'] = $record_num; $data[] = $entry; } $commands = array(); $commands[] = "$delete_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; writeLog("table_id: $table_id\n"); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,array()); } else { $return_data['content'] = "

--- " . getLanguageText('ERRORMSG-NO-RECORDS') . " ---

"; } break; case 'content-tabs': // Setup format $columnHeaders = array(getLanguageText('TEXT-TITLE'), getLanguageText('TEXT-VISIBLE-TO-PARENTS'), getLanguageText('TEXT-PAGES'), ); $columnAlign = array('left','center','center'); // Get records to display $query = "select ct.tab_title,ct.visible_to_parents,count(fc.record_num) as number,ct.sequence,ct.record_num " . "from content_tabs as ct left join formatted_content as fc on fc.tab_num = ct.record_num " . "where ct.school_num = $school_num " . "group by 1,2,4,5 " . "order by 4,1"; writeLog("query: $query\n"); $results = db_query($query); $return_data['num_records'] = db_num_rows($results); if (db_num_rows($results)) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); $delete_flag = 'Y'; if ($number > 0) $delete_flag = 'N'; $data[] = array($tab_title, $visible_to_parents, $number, "record_num" => $record_num, "delete_flag" => $delete_flag); } // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 550; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'page-content': // startLog('page-content'); // Setup format $columnHeaders = array(getLanguageText('TEXT-PAGE-NAME'), getLanguageText('TEXT-DATE-MODIFIED'), ); $columnAlign = array('left','center'); // Get records to display $query = "select content_id,date_modified,record_num " . "from formatted_content " . "where school_num = $school_num " . "and content_type = 'C' " . "order by content_id"; writeLog("query: $query"); $results = db_query($query); $numPages = db_num_rows($results); writeLog("Pages: $numPages"); $return_data['num_records'] = $numPages; if ($numPages == 0) { $today = date("Y-m-d",time()); $pQuery = $query; $query = "INSERT INTO formatted_content (school_num,content_id,content_title,content_type,tab_num,date_added,date_modified) " . "VALUES($school_num,'Login Page','','C',0,'$today','$today')"; writeLog("query: $query"); db_query($query); $query = "INSERT INTO formatted_content (school_num,content_id,content_title,content_type,tab_num,date_added,date_modified) " . "VALUES($school_num,'Welcome Page','','C',0,'$today','$today')"; writeLog("query: $query"); db_query($query); $results = db_query($pQuery); $numPages = db_num_rows($results); } if ($numPages > 0) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); $delete_flag = 'Y'; $content_id = getLanguageText('ID-'.$content_id); $content_id .= ""; $data[] = array($content_id, $date_modified, "record_num" => $record_num, "delete_flag" => $delete_flag); } // Commands $reset_icon = "Refresh Page Content"; $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$reset_icon"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 650; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'additional-pages': // Setup format $columnHeaders = array(getLanguageText('TEXT-MENU-TAB'), getLanguageText('TEXT-PAGE-NAME'), getLanguageText('TEXT-DATE-MODIFIED'), getLanguageText('TEXT-PUBLIC'), ); $columnAlign = array('left','left','center','center'); // Get records to display $query = "select ct.tab_title,content_id,date_modified,public_page,fc.record_num,ct.sequence as tab_sequence,fc.sequence " . "from formatted_content as fc left join content_tabs as ct on ct.record_num = fc.tab_num " . "where fc.school_num = $school_num " . "and fc.content_type = 'A' " . "order by tab_sequence,sequence,content_id"; writeLog("query: $query"); $results = db_query($query); $return_data['num_records'] = db_num_rows($results); if (db_num_rows($results)) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); $delete_flag = 'Y'; if (strlen($tab_title) == 0) $tab_title = "-- ".getLanguageText('MENUTAB-HOME')." --"; $flag = 'Y'; if ($public_page == 'Y') $flag = 'N'; $public_page = " $public_page "; $data[] = array($tab_title, $content_id, $date_modified, $public_page, "record_num" => $record_num, "delete_flag" => $delete_flag); } // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 650; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } 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 = $base_school_num ORDER BY sequence"; writeLog("query: $query"); $results = db_query($query); $return_data['num_records'] = db_num_rows($results); 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"); $groups = db_query($query); if (db_num_rows($groups)) { $groupEntries = array(); while ($row = db_fetch_assoc($groups)) { $groupEntries[] = $row; } } else { $return_data['content'] = "

--- ".getLanguageText('TEXT-NO-DELIVERY-GROUPS-FOUND')." ---

"; return; } while ($row = db_fetch_assoc($results)) { extract($row); $classInfo = getClassInfo($record_num, 'internal'); $groupField = ""; $data[] = array($classInfo, $groupField); } // Commands $commands = array(); if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 600; if (!isset($totals)) $totals = array(); if (isset($totals)) $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'classes-list': // startLog('classes-list'); $columnFields = array(); $columnHeaders = array(); $columnAlign = array(); $columnFields[] = 'teachers'; $columnHeaders[] = $GlobalText['Teacher']; $columnAlign[] = 'left'; 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'; if ($school_record['implement_delivery_groups'] == 'Y') { $columnFields[] = 'delivery_group'; $columnHeaders[] = getLanguageText('TEXT-DELIVERY-GROUP'); $columnAlign[] = 'center'; } $columnFields[] = 'num_students'; $columnHeaders[] = getLanguageText('TEXT-NUMBER'); $columnAlign[] = 'center'; // Get set of class programs $Programs = array(); $query = "SELECT * FROM class_programs WHERE school_num = $base_school_num ORDER BY sequence"; writeLog("query: $query"); $results = db_query($query); while ($row = db_fetch_assoc($results)) { $Programs[$row['record_num']] = $row['program_name']; } // Get records to display $query = "SELECT * FROM classes WHERE school_num = $base_school_num AND entry_type = 'Class' ORDER BY sequence"; writeLog("query: $query"); $results = db_query($query); $return_data['num_records'] = db_num_rows($results); writeLog("Classes: ".db_num_rows($results)); if (db_num_rows($results)) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); writeLog(print_r($row,true)); $teachers = ''; if (intval($teacher1) > 0) { $r = db_getVal("SELECT title,first_name,last_name FROM people WHERE school_num = $base_school_num AND record_num = $teacher1"); if (is_array($r)) { extract($r); if ($school_record['staff_titles'] == 'Y') $teachers = "$title $first_name $last_name"; else $teachers = "$first_name $last_name"; } } if (intval($teacher2) > 0) { $r = db_getVal("SELECT title,first_name,last_name FROM people WHERE school_num = $base_school_num AND record_num = $teacher2"); if (is_array($r)) { extract($r); if ($school_record['staff_titles'] == 'Y') $teachers .= "
$title $first_name $last_name"; else $teachers .= "
$first_name $last_name"; } } $num_students = db_getVal("SELECT count(*) FROM people WHERE school_num = $base_school_num AND class_num = $record_num AND people_type != 'Student'"); $delete_flag = 'Y'; if ($num_students > 0) $delete_flag = 'N'; $entry = array(); for ($i = 0; $i < count($columnFields); $i++) { $fname = $columnFields[$i]; $value = $$fname; if ($fname == 'class_program' && array_key_exists($value, $Programs)) $value = $Programs[$value]; if ($fname == 'default_price_category') { $ftext = getLanguageText('TEXT-'.$default_price_category); $mclass = ''; if ($default_price_category != 'Regular') { $mclass = 'warning'; switch ($default_price_category) { case 'Special 1': if (strlen($school_record['special1_text'])) $ftext = $school_record['special1_text']; break; case 'Special 2': if (strlen($school_record['special2_text'])) $ftext = $school_record['special2_text']; break; case 'Special 3': if (strlen($school_record['special3_text'])) $ftext = $school_record['special3_text']; break; } } $mcat = strtolower(str_replace(' ','',$default_price_category)); $ftext = "" . $ftext . ""; $value = $ftext; } $tText = $value; if ($fname == 'description' && strlen($value) > 50) { $value = substr($value, 0, 45)."..."; $value = "$value"; } if ($fname == 'grade' && strlen($value) > 30) { $value = substr($value, 0, 25)."..."; $value = "$value"; } // $entry[] = "$value"; $entry[] = $value; } $entry['record_num'] = $record_num; $entry['delete_flag'] = $delete_flag; $data[] = $entry; } // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; $commands[] = "$students_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; writeLog("customTableID: $customTableID"); $TableWidth = 850; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'locations-list': $columnFields = array(); $columnHeaders = array(); $columnAlign = array(); $columnFields[] = 'description'; $columnHeaders[] = getLanguageText('TEXT-DESCRIPTION'); $columnAlign[] = 'left'; $columnFields[] = 'label_description'; $columnHeaders[] = getLanguageText('TEXT-LABEL-DESCRIPTION'); $columnAlign[] = 'left'; if ($school_record['implement_delivery_groups'] == 'Y') { $columnFields[] = 'delivery_group'; $columnHeaders[] = getLanguageText('TEXT-DELIVERY-GROUP'); $columnAlign[] = 'center'; } // Get records to display $query = "SELECT * FROM classes WHERE school_num = $base_school_num AND entry_type = 'Location' ORDER BY sequence"; writeLog("query: $query"); $results = db_query($query); $return_data['num_records'] = db_num_rows($results); if (db_num_rows($results)) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); $entry = array(); for ($i = 0; $i < count($columnFields); $i++) { $fname = $columnFields[$i]; $value = $$fname; if ($fname == 'class_program') $value = $Programs[$value]; $entry[] = $value; } $entry['record_num'] = $record_num; $data[] = $entry; } // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; writeLog("customTableID: $customTableID"); $TableWidth = 850; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'suppliers-list': $set = 'Active'; if (array_key_exists('set', $_GET)) $set = $_GET['set']; $columnFields = array(); $columnHeaders = array(); $columnAlign = array(); $columnFields[] = 'supplier_name'; $columnHeaders[] = getLanguageText('TEXT-SUPPLIER'); $columnAlign[] = 'left'; $columnFields[] = 'contact_name'; $columnHeaders[] = getLanguageText('TEXT-CONTACT-PERSON'); $columnAlign[] = 'left'; $columnFields[] = 'work_phone'; $columnHeaders[] = getLanguageText('TEXT-PHONE'); $columnAlign[] = 'left'; $columnFields[] = 'status'; $columnHeaders[] = getLanguageText('TEXT-STATUS'); $columnAlign[] = 'left'; $columnFields[] = 'num_products'; $columnHeaders[] = getLanguageText('TEXT-PRODUCTS'); $columnAlign[] = 'center'; $swhere = ""; if ($set == 'Active') $swhere = "and s.status NOT IN ('Inactive','Deleted') "; // Get records to display $query = "select supplier_name,contact_name,work_phone,s.status," . "count(distinct sp.record_num) as num_products,email,s.school_num as actual_school_num,s.record_num " . "from suppliers as s left join supplier_products as sp on " . "sp.school_num = $supplier_school_num and s.record_num = sp.supplier_num AND sp.status = 'Active' AND product_type = 'Product' " . "where s.school_num = $supplier_school_num " . $swhere . "group by 1,2,3,4,6,7,8 " . "order by supplier_name"; writeLog("query: $query"); $results = db_query($query); $return_data['num_records'] = db_num_rows($results); if (db_num_rows($results)) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); $entry = array(); for ($i = 0; $i < count($columnFields); $i++) { $fname = $columnFields[$i]; $value = $$fname; if ($fname == 'num_products' && intval($value) > 0) { $query = "SELECT * FROM supplier_products " . "WHERE school_num = $supplier_school_num " . "AND supplier_num = $record_num " . "AND status = 'Active' " . "AND product_type = 'Product' " . "ORDER BY sequence"; $products = db_query($query); $numProducts = db_num_rows($products); $value = $numProducts; $entry['delete_flag'] = 'Y'; if ($numProducts > 0) { $Tip = "" . "" . "" . "" . "" . ""; $pcount = 0; while ($prow = db_fetch_array($products)) { $Tip .= "" . "" . "" . "" . ""; $pcount++; if ($pcount > 15) { $Tip .= ""; break 1; } } $Tip .= "
".getLanguageText('TEXT-PRODUCT')."".getLanguageText('TEXT-COST')."".getLanguageText('TEXT-PRICE')."
" . $prow['product_name'] . "$" . number_format($prow['package_cost'],2) . "$" . number_format($prow['standard_online_price'],2) . "
$numProducts " . getLanguageText('TEXT-TOTAL-ITEMS') . "
"; $value = "
$numProducts " . "$Tip\n" . "
"; $entry['delete_flag'] = 'N'; } } if ($fname == 'status' && $value != 'Active') $value = "$value"; $entry[] = $value; } $entry['record_num'] = $record_num; $data[] = $entry; } $edit_icon = "Edit Supplier Information"; $product_icon = "Edit Supplier Products"; $upload_icon = "Upload Supplier Products"; $prices_icon = "Update Product Prices"; $post_icon = "Post Product Info to Menu"; $create_menu_icon = "Create A Menu"; $delete_products = "Delete Supplier Products"; $print_icon = "Print Products"; // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; $commands[] = "$product_icon"; // $commands[] = "$upload_icon"; // $commands[] = "$prices_icon"; $commands[] = "$post_icon"; // $commands[] = "$delete_products"; $commands[] = "$print_icon"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; writeLog("customTableID: $customTableID"); $TableWidth = 850; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'supplier-products-list': $set = 'Active'; $supplier_num = 0; if (array_key_exists('set', $_GET)) $set = $_GET['set']; if (array_key_exists('supplier_num', $_GET)) $supplier_num = intval($_GET['supplier_num']); // startLog("supplier-products-list"); writeLog("supplier_num: $supplier_num"); writeLog("set: $set"); $columnFields = array(); $columnHeaders = array(); $columnAlign = array(); $columnWidths = array(); $columnFields[] = 'product_name'; $columnHeaders[] = getLanguageText('TEXT-PRODUCT'); $columnAlign[] = 'left'; $columnWidths[] = 250; if ($set != 'Description') { if ($set != 'Special') { $columnFields[] = 'label_name'; $columnHeaders[] = getLanguageText('TEXT-LABEL'); $columnAlign[] = 'left'; $columnWidths[] = 200; $columnFields[] = 'supplier_name'; $columnHeaders[] = getLanguageText('TEXT-SUPPLIER'); $columnAlign[] = 'left'; $columnWidths[] = 150; $columnFields[] = 'package_qty'; $columnHeaders[] = getLanguageText('TEXT-PACKAGE-QUANTITY'); $columnAlign[] = 'center'; $columnWidths[] = 30; } $columnFields[] = 'package_cost'; $columnHeaders[] = getLanguageText('TEXT-COST'); $columnAlign[] = 'right'; $columnWidths[] = 60; $columnFields[] = 'standard_online_price'; $columnHeaders[] = getLanguageText('TEXT-ON-LINE-PRICE'); $columnAlign[] = 'right'; $columnWidths[] = 60; $columnFields[] = 'standard_offline_price'; $columnHeaders[] = getLanguageText('TEXT-PAPER-PRICE'); $columnAlign[] = 'right'; $columnWidths[] = 60; if ($set == 'Special') { $columnFields[] = 'special_price1'; $columnHeaders[] = $Special1_Title; $columnAlign[] = 'right'; $columnWidths[] = 60; $columnFields[] = 'special_price2'; $columnHeaders[] = $Special2_Title; $columnAlign[] = 'right'; $columnWidths[] = 60; $columnFields[] = 'special_price3'; $columnHeaders[] = $Special3_Title; $columnAlign[] = 'right'; $columnWidths[] = 60; } } else { $columnFields[] = 'product_description'; $columnHeaders[] = getLanguageText('TEXT-DESCRIPTION'); $columnAlign[] = 'left'; $columnWidths[] = 200; $columnFields[] = 'label_name'; $columnHeaders[] = getLanguageText('TEXT-LABEL'); $columnAlign[] = 'left'; $columnWidths[] = 200; } $columnFields[] = 'sales_summary_item'; $columnHeaders[] = "".getLanguageText('TEXT-SALES-SUMMARY').""; $columnAlign[] = 'center'; $columnWidths[] = 30; $swhere = ""; if ($set == 'Active' || $set == 'Special') $swhere = "and sp.status = 'Active' AND s.status = 'Active' "; if ($supplier_num > 0) { // if (strlen($swhere)) $swhere .= "AND "; $swhere .= "AND supplier_num = $supplier_num "; } // Get records to display $query = "select supplier_num,product_type,product_name,product_description,label_name,supplier_code,sp.status," . "package_qty,package_cost,standard_online_price,standard_offline_price,special_price1,special_price2,special_price3," . "sales_summary_item,sequence,sp.record_num,supplier_name " . "from supplier_products as sp, suppliers as s " . "WHERE s.school_num = $supplier_school_num " . "AND sp.school_num = $supplier_school_num " . "AND s.record_num = sp.supplier_num " . "AND sp.product_type = 'Product' " . $swhere . "order by sequence,product_name,supplier_name"; writeLog("query: $query"); $results = db_query($query); $num_records = db_num_rows($results); writeLog("Num Records: $num_records"); $return_data['num_records'] = $num_records; if ($num_records) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); $entry = array(); for ($i = 0; $i < count($columnFields); $i++) { $fname = $columnFields[$i]; switch ($fname) { case 'product_name': if ($set != 'Description') { $style = ""; if ($status == 'Inactive') $style = " class='warning'"; $entry[] = "$product_name
$product_description"; } else { $value = $product_name; $fid = $fname . '_' . $record_num; $class = 'supplier_product_field'; $field = ""; $entry[] = $field; } break; case 'product_description': $value = $product_description; $fid = $fname . '_' . $record_num; $class = 'supplier_product_field'; $field = ""; $entry[] = $field; break; case 'label_name': $value = $label_name; $fid = $fname . '_' . $record_num; $class = 'supplier_product_field'; $field = ""; $entry[] = $field; break; case 'package_cost': case 'standard_online_price': case 'standard_offline_price': $value = $currencySymbol. sprintf($costFmt,$$fname); if ($set == 'Special') $entry[] = $value; else { $style = "style='text-align: right;'"; $fid = $fname . '_' . $record_num; $class = 'supplier_product_field'; $field = ""; $entry[] = $field; } break; case 'special_price1': case 'special_price2': case 'special_price3': $value = $currencySymbol. sprintf($costFmt,$$fname); $style = "style='text-align: right;'"; $fid = $fname . '_' . $record_num; $class = 'supplier_product_field'; $field = ""; $entry[] = $field; break; case 'package_qty': $value = intval($$fname); if ($supplier_num == 0) $entry[] = $value; else { $style = "style='text-align: center;'"; $fid = $fname . '_' . $record_num; $class = 'supplier_product_field'; $field = ""; $entry[] = $field; } break; case 'sales_summary_item': $entry[] = $$fname; break; default: $entry[] = $$fname; break; } } $entry['record_num'] = $record_num; $data[] = $entry; } $copy_icon = "Copy Supplier Product"; // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; $commands[] = "$copy_icon"; // $table_id = "products-table"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; writeLog("customTableID: $customTableID"); $TableWidth = 920; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); // writeLog($return_data['content']); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'menu-dates-list': // if ($_SESSION['UserInfo']['type'] == 'SuperUser') startLog("menu-dates-list"); if (array_key_exists('schedule_num', $_GET)) $schedule_num = intval($_GET['schedule_num']); writeLog("schedule_num: $schedule_num"); // Get schedule record $results = db_query("SELECT * FROM hotlunch_schedules WHERE school_num = $school_num AND record_num = $schedule_num"); if (db_num_rows($results) == 0) { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-INVALID-SCHEDULE-NUM')." ---

"; break; } $hotlunch_schedule = db_fetch_assoc($results); // Get menu orders data $query = "SELECT menu_num, sum(qty) AS qty_ordered FROM hotlunch_order_items " . "WHERE school_num = $school_num " . "AND schedule_num = $schedule_num " . "AND ordered_by_type != 'Concession' " . "AND active != 'N' " . "AND order_num NOT IN (" . "SELECT record_num FROM hotlunch_order_header " . "WHERE school_num = $school_num " . "AND schedule_num = $schedule_num " . "AND status IN ('Deleted','Inactive')) " . "GROUP BY 1"; $results = db_query($query); $MenuOrderCount = array(); if (db_num_rows($results) > 0) { while ($row = db_fetch_assoc($results)) { extract($row); writeLog("$menu_num => $qty_ordered"); $MenuOrderCount[$menu_num] = $qty_ordered; if ($qty_ordered == 0) { db_query("UPDATE hotlunch_menu_dates SET order_revenue = 0, other_revenue = 0, supplier_costs = 0, other_costs = 0 WHERE school_num = $school_num AND record_num = $menu_num"); } } } else { db_query("UPDATE hotlunch_menu_dates SET order_revenue = 0, other_revenue = 0, supplier_costs = 0, other_costs = 0 WHERE school_num = $school_num AND schedule_num = $schedule_num"); } // Determine if there are any linked menus in this set db_query("UPDATE hotlunch_menu_dates SET menu_link = 'No' WHERE school_num = $school_num AND schedule_num = $schedule_num AND menu_link = ''"); db_query("UPDATE hotlunch_menu_dates SET current_menu_link = 'No' WHERE school_num = $school_num AND schedule_num = $schedule_num AND menu_link = 'No'"); $num_links = db_getVal("select count(*) from hotlunch_menu_dates where school_num = $school_num and schedule_num = $schedule_num and menu_link != 'No'"); $num_titles = db_getVal("select count(*) from hotlunch_menu_dates where school_num = $school_num and schedule_num = $schedule_num and length(menu_title) > 0"); // Setup arrays $columnFields = array(); $columnHeaders = array(); $columnAlign = array(); $columnWidths = array(); $numCols = 0; $groupBy = ""; $queryCols = ""; if ($num_titles > 0) { $columnFields[] = 'menu_title'; $columnHeaders[] = getLanguageText('TEXT-TITLE'); $columnAlign[] = 'left'; $columnWidths[] = 150; $queryCols .= "hlmd.menu_title,"; $numCols++; if (strlen($groupBy)) $groupBy .= ","; $groupBy .= $numCols; $date_col = 0; } $displayDate = false; if ($hotlunch_schedule['schedule_type'] == 'Date Sensitive' || $hotlunch_schedule['menu_display_mode'] == 'Calendar') $displayDate = true; if ($hotlunch_schedule['display_menu_date'] == 'Y' || $hotlunch_schedule['menu_display_mode'] == 'Calendar') $displayDate = true; if ($displayDate) { $columnFields[] = 'menu_date'; $columnHeaders[] = getLanguageText('TEXT-DATE'); $columnAlign[] = "center"; $columnWidths[] = 60; $queryCols .= "hlmd.menu_date,"; $date_col = 1; $numCols++; if (strlen($groupBy)) $groupBy .= ","; $groupBy .= "$numCols"; } $columnFields[] = 'num_items'; if ($siteType == 'hotlunch' || $siteType == 'fundraising') { $columnHeaders[] = getLanguageText('TEXT-NUMBER-OF-ITEMS')."
(".getLanguageText('TEXT-ORDERS').")"; } else { $columnHeaders[] = getLanguageText('TEXT-NUMBER-OF-ITEMS'); } $columnAlign[] = "center"; $columnWidths[] = 60; $queryCols .= "count(hlmi.record_num) as num_items,"; $numCols++; if ($siteType == 'hotlunch' || $siteType == 'fundraising') { if ($hotlunch_schedule['schedule_type'] != 'Volunteer Only') { $columnFields[] = 'revenue'; $columnHeaders[] = getLanguageText('TEXT-REVENUE'); $columnAlign[] = "right"; $columnWidths[] = 60; $queryCols .= "concat('$currencySymbol',hlmd.order_revenue + hlmd.other_revenue) as revenue,"; $numCols++; if (strlen($groupBy)) $groupBy .= ","; $groupBy .= "$numCols"; $columnFields[] = 'costs'; $columnHeaders[] = getLanguageText('TEXT-COSTS'); $columnAlign[] = "right"; $columnWidths[] = 60; $queryCols .= "concat('$currencySymbol',hlmd.supplier_costs + hlmd.other_costs) as costs,"; $numCols++; if (strlen($groupBy)) $groupBy .= ","; $groupBy .= "$numCols"; $columnFields[] = 'net'; $columnHeaders[] = getLanguageText('TEXT-NET'); $columnAlign[] = "right"; $columnWidths[] = 60; $queryCols .= "concat('$currencySymbol',hlmd.order_revenue + hlmd.other_revenue - hlmd.supplier_costs - hlmd.other_costs) as net,"; $numCols++; if (strlen($groupBy)) $groupBy .= ","; $groupBy .= "$numCols"; } } $columnFields[] = 'active'; $columnHeaders[] = getLanguageText('TEXT-ACTIVE'); $columnAlign[] = "center"; $columnWidths[] = 40; $queryCols .= "hlmd.active,"; $numCols++; if (strlen($groupBy)) $groupBy .= ","; $groupBy .= "$numCols"; if ($siteType == 'hotlunch' || $siteType == 'fundraising') { if ($num_links > 0) { $columnFields[] = 'menu_link'; $columnHeaders[] = getLanguageText('TEXT-LINK'); $columnAlign[] = "center"; $columnWidths[] = 60; $numCols++; if (strlen($groupBy)) $groupBy .= ","; $groupBy .= "$numCols"; $columnFields[] = 'source_menu'; $columnHeaders[] = getLanguageText('TEXT-SOURCE-MENU'); $columnAlign[] = "center"; $columnWidths[] = 60; $numCols++; if (strlen($groupBy)) $groupBy .= ","; $groupBy .= "$numCols"; $linkCol = $numCols - 1; $queryCols .= "hlmd.menu_link,hlmd.source_menu,"; } } $queryCols .= "hlmd.record_num"; $numCols++; if (strlen($groupBy)) $groupBy .= ","; $groupBy .= "$numCols"; writeLog("columnFields: ".count($columnFields)); $query = "select $queryCols " . "from hotlunch_menu_dates as hlmd left join hotlunch_menu_items as hlmi " . "on hlmi.school_num = $school_num and hlmd.record_num = hlmi.menu_num and hlmi.item_type != 'Heading' " . "where hlmd.school_num = $school_num " . "and hlmd.schedule_num = $schedule_num " . "GROUP BY $groupBy " . "ORDER BY hlmd.sequence,hlmd.menu_date asc"; writeLog($query); $results = db_query($query); $return_data['num_records'] = db_num_rows($results); $numRecords = db_num_rows($results); if ($numRecords > 0) { $data = array(); $menuDates = array(); $max_items = 0; while ($row = db_fetch_assoc($results)) { $record_num = $row['record_num']; if (array_key_exists('menu_date', $row)) { $menu_date = $row['menu_date']; $menuDates[$record_num] = $menu_date; } $menu_link = 'No'; if (array_key_exists('menu_link', $row)) $menu_link = $row['menu_link']; $entry = array(); for ($i = 0; $i < count($columnFields); $i++) { $fname = $columnFields[$i]; $value = $row[$fname]; switch ($fname) { case 'menu_title': $value = "$value"; break; case 'menu_date': $dow = dateString('day', strtotime($value)); $value = "$value
($dow)"; break; case 'active': $value = "$value"; $mtitle = ""; if (array_key_exists('menu_title', $row)) $mtitle .= $row['menu_title']; if (array_key_exists('menu_date', $row)) { if (strlen($mtitle) > 0) $mtitle .= ' - '; $mtitle .= $row['menu_date']; } if (strlen($mtitle)) { $value .= ""; } break; case 'num_items': writeLog("num_items: $record_num"); $num_items = $row['num_items']; $value = "$value"; $menu_items_tooltip = ""; if ($num_items > 0) { $menu_items = db_query("SELECT * FROM hotlunch_menu_items WHERE school_num = $school_num AND menu_num = $record_num ORDER BY sequence"); if (db_num_rows($menu_items)) { $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; while ($mrow = db_fetch_assoc($menu_items)) { if ($mrow['item_type'] == 'Heading') $menu_items_tooltip .= ""; else { $menu_item_num = $mrow['record_num']; $query = "SELECT count(*) FROM hotlunch_menu_products " . "WHERE school_num IN ($supplier_school_num,$school_num) " . "AND menu_item_num = $menu_item_num"; $prods = db_getVal($query); $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; $menu_items_tooltip .= ""; } } $menu_items_tooltip .= "
" . getLanguageText('TEXT-ITEM-NAME') . "" . getLanguageText('TEXT-PAPER') . "" . getLanguageText('TEXT-ON-LINE') . "" . getLanguageText('TEXT-PRODUCTS') . "" . getLanguageText('TEXT-MAXIMUM') . "" . getLanguageText('TEXT-AVAILABLE') . "" . getLanguageText('TEXT-ACTIVE') . "" . getLanguageText('TEXT-GROUP') . "
" . $mrow['item_title'] . "
" . $mrow['item_title'] . "$" . $mrow['offline_price'] . "$" . $mrow['online_price'] . "" . $prods . "" . $mrow['max_quantity'] . "" . $mrow['quantity_available'] . "" . $mrow['active'] . "" . $mrow['menu_group'] . "
"; } } if (strlen($menu_items_tooltip)) { $value = "
$value " . "$menu_items_tooltip\n" . "
"; } $value .= ""; if (array_key_exists($record_num, $MenuOrderCount) && $MenuOrderCount[$record_num] > 0) { $value .= "
(".$MenuOrderCount[$record_num].")"; } $menu_link = 'No'; if (array_key_exists('menu_link', $row)) $menu_link = $row['menu_link']; $value .= ""; break; case 'menu_link': switch($menu_link) { case 'No': $text = getLanguageText('TEXT-NOT-LINKED'); break; case 'Admin': $text = getLanguageText('TEXT-LINKED-FOR-ADMIN'); break; case 'Paper': $text = getLanguageText('TEXT-LINKED-FOR-PAPER-ORDERS'); break; case 'All': $text = getLanguageText('TEXT-LINKED-FOR-ALL-ORDERS'); break; } $value = "$text"; break; case 'source_menu': if (array_key_exists($value, $menuDates)) $value = $menuDates[$value]; else $value = ''; break; } if (count($data) == 0) writeLog("value: $value"); $entry[] = $value; } $entry['record_num'] = $record_num; $delete_flag = 'Y'; if (array_key_exists($record_num, $MenuOrderCount) && $MenuOrderCount[$record_num] > 0) $delete_flag = 'N'; if (!isset($menu_link)) $menu_link = 'No'; writeLog("$delete_flag ".$menu_link); if ($delete_flag == 'Y' && $menu_link == 'No') { $nLinked = db_getVal("SELECT count(*) FROM hotlunch_menu_dates WHERE school_num = $school_num AND source_menu = $record_num"); writeLog("nLinked: $nLinked"); if ($nLinked > 0) { $delete_flag = 'N'; $localContent .= "\n"; } writeLog("delete_flag: $delete_flag"); } $entry['delete_flag'] = $delete_flag; $record_num = $row['record_num']; $menu_num = $record_num; // Check if school is in session on this date if (array_key_exists('menu_date',$entry)) { $menu_date = $entry['menu_date']; $numEvents = db_getVal("SELECT count(*) FROM event_calendar, event_types " . "WHERE event_calendar.school_num = $school_num " . "AND event_types.school_num = $school_num " . "AND event_type = event_type_title " . "AND school_in_session = 'N' " . "AND start_date <= '$menu_date' AND '$menu_date' <= end_date"); if ($numEvents > 0) $entry['menu_date'] = "" . $entry['menu_date'] . ""; } $data[] = $entry; } // Commands $menu_icon = "Manage Menu Items"; $copy_icon = "Copy or Link Order Menus"; $classlist_icon = "Print Class Delivery List"; $sup_orders_icon = "Print Supplier Orders for Menu Date"; $totals_icon = "Edit Transaction Totals for Menu Date"; $menu_generate_icon = "Generate Menu from Supplier Products"; $set_source_icon = "Change Source Menu to This Date"; $print_icon = "Print Menu Order Form"; // Determine which icons can be displayed $num_orders = db_getVal("SELECT count(*) FROM hotlunch_order_header WHERE school_num = $school_num AND schedule_num = $schedule_num AND status NOT IN ('Inactive','Deleted','Concession')"); $numSuppliers = db_getVal("SELECT count(*) FROM suppliers WHERE school_num = $supplier_school_num AND status = 'Active'"); $num_links = db_getVal("select count(*) from hotlunch_menu_dates where school_num = $school_num and schedule_num = $schedule_num and menu_link != 'No' and active != 'N'"); $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; $commands[] = "$menu_icon"; if ($num_orders == 0 || $_SESSION['UserInfo']['type'] == 'SuperUser') { $commands[] = "$copy_icon"; if ($numSuppliers > 0) { $commands[] = "$menu_generate_icon"; $commands[] = "$totals_icon"; } } else { if ($numSuppliers > 0) { if ($num_links == 0) { $commands[] = "$menu_generate_icon"; } $commands[] = "$classlist_icon"; $commands[] = "$sup_orders_icon"; $commands[] = "$totals_icon"; $commands[] = "$print_icon"; } } $commands[] = "$print_icon"; $commands[] = ""; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; writeLog("customTableID: $customTableID"); $TableWidth = 900; if (!isset($totals)) $totals = array(); if (!isset($titleText)) $titleText = ''; $return_data['count'] = count($data); $return_data['content'] = $titleText . getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'menu-items-list': // startLog("menu-items-list"); if (array_key_exists('schedule_num', $_GET)) $schedule_num = intval($_GET['schedule_num']); if (array_key_exists('menu_num', $_GET)) $menu_num = intval($_GET['menu_num']); if (array_key_exists('menu_link', $_GET)) $menu_link = db_escape_string($_GET['menu_link']); writeLog("schedule_num: $schedule_num"); writeLog("menu_num: $menu_num"); // Get schedule record $results = db_query("SELECT * FROM hotlunch_schedules WHERE school_num = $school_num AND record_num = $schedule_num"); if (db_num_rows($results) == 0) { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-INVALID-SCHEDULE-NUM')." ---

"; break; } $hotlunch_schedule = db_fetch_assoc($results); // Determine if groups are in use in this menu $query = "SELECT count(*) FROM hotlunch_menu_items " . "WHERE school_num = $school_num " . "AND menu_num = $menu_num " . "AND menu_group IN ('A','B','C','D','E')"; $groupCount = db_getVal($query); // Setup arrays $columnFields = array(); $columnHeaders = array(); $columnAlign = array(); $columnWidths = array(); $queryCols = ""; $numCols = 0; $columnFields[] = 'item_title'; $columnHeaders[] = getLanguageText('TEXT-TITLE'); $columnAlign[] = 'left'; $columnWidths[] = 200; $queryCols .= "item_title,"; $numCols++; // $columnFields[] = 'item_type'; // $columnHeaders[] = getLanguageText('TEXT-TYPE'); // $columnAlign[] = 'left'; // $columnWidths[] = 50; // $queryCols .= "item_type,"; // $numCols++; $columnFields[] = 'label_title'; $columnHeaders[] = getLanguageText('TEXT-LABEL-TITLE'); $columnAlign[] = 'left'; $columnWidths[] = 100; $queryCols .= "label_title,"; $numCols++; // if ($groupCount > 0) { $columnFields[] = 'menu_group'; $columnHeaders[] = getLanguageText('TEXT-GROUP'); $columnAlign[] = 'center'; $columnWidths[] = 50; $queryCols .= "menu_group,"; $numCols++; // } $columnFields[] = 'online_price'; $columnHeaders[] = getLanguageText('TEXT-ON-LINE'); $columnAlign[] = 'right'; $columnWidths[] = 50; $queryCols .= "online_price,"; $numCols++; $columnFields[] = 'offline_price'; $columnHeaders[] = getLanguageText('TEXT-PAPER'); $columnAlign[] = 'right'; $columnWidths[] = 50; $queryCols .= "offline_price,"; $numCols++; $columnFields[] = 'num_products'; $columnHeaders[] = getLanguageText('TEXT-PRODUCTS'); $columnAlign[] = 'center'; $columnWidths[] = 50; // $queryCols .= "num_products,"; $numCols++; $columnFields[] = 'active'; $columnHeaders[] = getLanguageText('TEXT-ACTIVE'); $columnAlign[] = 'center'; $columnWidths[] = 50; $queryCols .= "active,"; $numCols++; $columnFields[] = 'sales_summary_item'; $columnHeaders[] = getLanguageText('TEXT-SUMMARY'); $columnAlign[] = 'center'; $columnWidths[] = 50; $queryCols .= "sales_summary_item,"; $numCols++; // Get menu items $query = "SELECT $queryCols item_description,item_type,heading_visibility,record_num FROM hotlunch_menu_items " . "WHERE school_num = $school_num " . "AND menu_num = $menu_num " . "ORDER BY sequence"; $menu_items = db_query($query); if (db_num_rows($menu_items)) { $data = array(); while ($menu_item = db_fetch_assoc($menu_items)) { $item_num = $menu_item['record_num']; $record_num = $menu_item['record_num']; $item_title = $menu_item['item_title']; $item_type = $menu_item['item_type']; $entry = array(); writeLog($item_title); if ($item_type == 'Item') { $query = "SELECT supplier_name,product_name,package_qty,package_cost,product_sequence,supplier_product_qty,suppliers.status " . "FROM suppliers,supplier_products,hotlunch_menu_products " . "WHERE suppliers.school_num IN ($supplier_school_num,$school_num) " . "AND suppliers.status = 'Active' " . "AND supplier_products.school_num IN ($supplier_school_num,$school_num) " . "AND hotlunch_menu_products.school_num IN ($supplier_school_num,$school_num) " . "AND hotlunch_menu_products.menu_item_num = $item_num " . "AND hotlunch_menu_products.supplier_product_num = supplier_products.record_num " . "AND supplier_products.supplier_num = suppliers.record_num " . "ORDER BY product_sequence"; writeLog($query); $products = db_query($query); $menu_item['num_products'] = db_num_rows($products); $products_tooltip = ""; if (db_num_rows($products)) { $products_tooltip .= ""; while ($row = db_fetch_assoc($products)) { $status = $row['status']; $products_tooltip .= ""; $products_tooltip .= ""; $products_tooltip .= ""; $products_tooltip .= ""; $products_tooltip .= ""; } $products_tooltip .= "
".getLanguageText('TEXT-SUPPLIER')."".$row['supplier_name']." ($status)
".getLanguageText('TEXT-PRODUCT')."".$row['product_name']."
".getLanguageText('TEXT-QUANTITY')."".$row['supplier_product_qty']."
".getLanguageText('TEXT-PACKAGE-QUANTITY')."".$row['package_qty']."
".getLanguageText('TEXT-PACKAGE-COST')."$currencySymbol".sprintf("%0.".$school_record['supplier_costs_decimals']."f",$row['package_qty'])."
"; } $row = $menu_item; for ($i = 0; $i < count($columnFields); $i++) { $fname = $columnFields[$i]; $value = ''; if (array_key_exists($fname, $row)) $value = $row[$fname]; switch ($fname) { case 'item_title': $item_type = $menu_item['item_type']; $item_type = ""; $value = "$value$item_type"; if (strlen($row['item_description'])) { $max = 40; $item_description = $row['item_description']; if (strlen($item_description) > $max) $item_description = substr($item_description,0,$max)."..."; $value .= "
- ".$item_description.""; } break; case 'online_price': case 'offline_price': $value = $currencySymbol.number_format(floatval($value),2); if ($menu_link == 'No') { $style = "style='text-align: right;'"; $fid = $fname . '_' . $record_num; $class = 'menu_item_field'; $field = ""; $value = $field; } break; case 'num_products': if (strlen($products_tooltip)) { $value = "
$value " . "$products_tooltip\n" . "
"; } break; case 'menu_group': if ($menu_link == 'No') { $v = $value; if ($value == "") { $v = 'none'; $value = getLanguageText('TEXT-NO-GROUP'); } $fid = 'menu_group_' . $record_num; $value = "$value"; } break; case 'active': if ($menu_link == 'No') { $value_text = getLanguageText('TEXT-'.$value); $value = "$value_text"; } break; case 'sales_summary_item': if ($menu_link == 'No') { $value_text = getLanguageText('TEXT-'.$value); $value = "$value_text"; } break; default: break; } $entry[] = $value; writeLog($value); } $record_num = $item_num; $entry['record_num'] = $record_num; $delete_flag = 'Y'; $query = "SELECT count(*) FROM hotlunch_order_items " . "WHERE school_num = $school_num " . "AND schedule_num = $schedule_num " . "AND menu_num = $menu_num " . "AND menu_item_num = $item_num " . "AND active = 'Y'"; $numOrders = db_getVal($query); if ($numOrders > 0) $delete_flag = 'N'; $entry['delete_flag'] = $delete_flag; } else { writeLog("item_title: $item_title"); $item_type = ""; $value = "".$menu_item['item_title']."$item_type"; $entry[] = $value; $value = $menu_item['heading_visibility']; $value_text = getLanguageText('TEXT-'.$value); $value = "$value_text"; $entry[] = $value; for ($i = 2; $i < count($columnFields); $i++) { $entry[] = ''; } $entry['delete_flag'] = 'Y'; $record_num = $item_num; $entry['record_num'] = $record_num; } $data[] = $entry; } // Commands $copy_icon_small = "Copy Menu Item"; $commands = array(); // if ($menu_link == 'No' || $_SESSION['UserInfo']['type'] == 'SuperUser') { if ($menu_link == 'No') { $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; $commands[] = "$copy_icon_small"; } else { $titleText = getLanguageText('TEXT-MENU-LINK').' - '; switch ($menu_link) { case 'Admin': $titleText .= getLanguageText('TEXT-LINKED-FOR-ADMIN'); break; case 'All': $titleText .= getLanguageText('TEXT-LINKED-FOR-ALL-ORDERS'); break; case 'Paper': $titleText .= getLanguageText('TEXT-LINKED-FOR-PAPER-ORDERS'); break; } $titleText = "
$titleText"; } if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 900; if (!isset($totals)) $totals = array(); if (!isset($titleText)) $titleText = ''; $return_data['count'] = count($data); $return_data['content'] = $titleText . getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals,'N'); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'supplier-products-select': // startLog("supplier-products-select"); if (array_key_exists('supplier_num', $_GET)) $supplier_num = intval($_GET['supplier_num']); if (!isset($supplier_num)) return; writeLog("supplier_num: $supplier_num"); $mode = 'select'; if (array_key_exists('mode', $_GET)) $mode = db_escape_string($_GET['mode']); // Get supplier info // $supplier = db_getVal("SELECT * FROM suppliers WHERE school_num = $supplier_school_num AND record_num = $supplier_num"); $supplier = db_getVal("SELECT * FROM suppliers WHERE record_num = $supplier_num"); if (is_array($supplier)) { $schoolNum = $supplier['school_num']; $schoolName = db_getVal("SELECT school_name FROM schools WHERE record_num = $schoolNum"); $num_products = db_getVal("SELECT count(*) FROM supplier_products WHERE supplier_num = $supplier_num AND status = 'Active'"); if ($num_products == 0) { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-SUPPLIER-HAS-NO-PRODUCTS')." ---

"; $return_data['ajax_return_code'] = -1; break; } $products = db_query("SELECT * FROM supplier_products WHERE supplier_num = $supplier_num AND status = 'Active' ORDER BY sequence,product_name"); $count = 0; if (db_num_rows($products) > 0) { $content = "

$schoolName

\n"; $content .= ""; $content .= ""; $content .= ""; if ($mode == 'select') $content .= ""; $content .= ""; while ($row = db_fetch_array($products)) { extract($row); $bgclass = 'data-odd'; if ($count % 2) $bgclass = 'data-even'; $count++; $price = $currencySymbol . number_format($standard_online_price,2); if (strlen($product_description)) $product_description = " - $product_description - $price"; else $product_description = "$price"; $content .= ""; $content .= ""; if ($mode == 'select') { $content .= ""; } $content .= ""; } $content .= "
".$supplier['supplier_name']."
"; $content .= "$product_name"; $content .= "
"; $content .= "$product_description"; $content .= "
"; $content .= ""; $content .= "
"; $return_data['content'] = $content; $return_data['ajax_return_code'] = 0; $return_data['num_products'] = $count; } } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; $return_data['ajax_return_code'] = -1; } break; case 'copy-menu-dates-list': // startLog("copy-menu-dates-list"); $field_name = 'selected_menu_dates'; $title = getLanguageText('TEXT-COPY-TO-MENUS'); $curr_menu_num = 0; if (array_key_exists('schedule_num', $_GET)) $schedule_num = intval($_GET['schedule_num']); if (array_key_exists('menu_num', $_GET)) $curr_menu_num = intval($_GET['menu_num']); if (array_key_exists('field_name', $_GET)) $field_name = db_escape_string($_GET['field_name']); if (array_key_exists('title', $_GET)) $title = db_escape_string($_GET['title']); if (!isset($schedule_num)) return; writeLog("schedule_num: $schedule_num"); writeLog("curr_menu_num: $curr_menu_num"); // Get schedule info $schedule = db_getVal("SELECT * FROM hotlunch_schedules WHERE school_num = $school_num AND record_num = $schedule_num"); // Get other menus if ($field_name == 'selected_menu_dates') { $query = "SELECT * FROM hotlunch_menu_dates " . "WHERE school_num = $school_num " . "AND schedule_num = $schedule_num " . "AND record_num != $curr_menu_num " . "ORDER BY sequence,menu_date"; } else { $query = "SELECT * FROM hotlunch_menu_dates " . "WHERE school_num = $school_num " . "AND schedule_num = $schedule_num " . "AND menu_link = 'No' " . "ORDER BY sequence,menu_date"; } $menus = db_query($query); $numMenus = db_num_rows($menus); if ($numMenus > 0) { $id = 'select-all-menu-dates'; if ($field_name == 'generate_menu_dates') $id = 'select-all-generate-menu-dates'; $content = ""; $content .= ""; $content .= ""; $content .= ""; $content .= ""; $count = 0; while ($row = db_fetch_assoc($menus)) { extract($row); $bgclass = 'data-odd'; if ($count % 2) $bgclass = 'data-even'; $count++; if ($schedule['schedule_type'] == 'Hot Lunch' || $schedule['schedule_type'] == 'Date Sensitive') { if (strlen($menu_title)) $menu_title .= ' - '; $menu_title .= $menu_date; } $num_items = db_getVal("SELECT count(*) FROM hotlunch_menu_items WHERE school_num = $school_num AND menu_num = $record_num"); $content .= ""; $content .= ""; $content .= ""; $content .= ""; $content .= ""; } $content .= "
$title
"; $content .= "$menu_title"; $content .= ""; $content .= "$num_items ".getLanguageText('TEXT-ITEMS').""; $content .= ""; $checked = ''; if ($field_name == 'generate_menu_dates' && $curr_menu_num == $record_num) $checked = " checked='checked'"; $content .= ""; $content .= "
"; $return_data['content'] = $content; $return_data['ajax_return_code'] = 0; } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; $return_data['ajax_return_code'] = -1; } break; case 'users-list': $order_by_field = "last_name,first_name"; $swhere = ""; $show_status = ""; $show_type = ""; $mwhere = ""; $mhaving = ""; $lookup_where = ''; if (array_key_exists('match', $_GET)) $match = db_escape_string($_GET['match']); $numClasses = db_getVal("SELECT count(*) FROM classes WHERE school_num = $base_school_num"); if (!isset($match) || strlen($match) < 3) { $titleText = getLanguageText('TEXT-ALL-USERS'); // Get parameters if (array_key_exists('record_num', $_GET)) { $record_num = intval($_GET['record_num']); if ($record_num > 0) $swhere = "AND u.record_num = $record_num "; } if (array_key_exists('sortby', $_GET)) { $sortby = db_escape_string($_GET['sortby']); if (strlen($sortby)) $order_by_field = $sortby . ",last_name,first_name"; } if (array_key_exists('show_status',$_REQUEST) && strlen($_REQUEST['show_status'])) { $show_status = db_escape_string($_REQUEST['show_status']); $swhere = "and u.status = '$show_status' "; } if (array_key_exists('show_type',$_REQUEST) && strlen($_REQUEST['show_type'])) { $show_type = db_escape_string($_REQUEST['show_type']); if ($show_type == 'Admin') { $swhere = "and u.type not in ('Parent','Guest','Staff','Supplier') "; $titleText = getLanguageText('TEXT-ADMIN-USERS'); } else { $swhere = "and u.type = '$show_type' "; switch ($show_type) { case 'Staff': $titleText = getLanguageText('TEXT-STAFF'); break; case 'Parent': $titleText = getLanguageText('TEXT-PARENTS'); break; case 'Guest': $titleText = getLanguageText('TEXT-GUESTS'); break; case 'Supplier': $titleText = getLanguageText('TEXT-SUPPLIERS'); break; } } } if (array_key_exists('show_modifier',$_REQUEST) && strlen($_REQUEST['show_modifier'])) { $show_modifier = db_escape_string($_REQUEST['show_modifier']); if ($show_modifier == 'noemail') $mwhere = "and (u.email = '' or u.email is null) "; if ($show_modifier == 'balance-owing') $mhaving = "having sum(ua.transaction_amount) > 0 "; if ($show_modifier == 'balance-payable') $mhaving = "having sum(ua.transaction_amount) < 0 "; if ($show_modifier == 'volunteers') $mwhere = "and u.available_to_volunteer = 'Y' "; if (strlen($titleText)) $titleText .= ' - '; $titleText .= getLanguageText('TEXT-'.strtoupper($show_modifier)); } } else { $word = $match; $lookup_where = "AND (userid LIKE '%$word%' " . "OR first_name LIKE '$word%' " . "OR last_name LIKE '$word%' " . "OR email LIKE '%$word%' " . "OR home_phone LIKE '%$word%' " . "OR cell_phone LIKE '%$word%' " . "OR daytime_phone LIKE '%$word%') "; writeLog($lookup_where); } // Get set of user records $columnHeaders = array(getLanguageText('TEXT-USER-ID'), getLanguageText('TEXT-NAME'), getLanguageText('TEXT-TYPE'), $GlobalText['Students'], getLanguageText('TEXT-STATUS'), getLanguageText('TEXT-ORDER'), getLanguageText('TEXT-EMAIL'), getLanguageText('TEXT-SYSTEM-REMINDER'), getLanguageText('TEXT-BALANCE')); $columnAlign = array('left','left','left','center','center','center','center','center','center'); $columnFields = array('userid', 'name', 'type', 'nstudents', 'status_display', 'can_order_display', 'receive_emails_display', 'email_reminders_display', 'balance'); if (isset($titleText) && strlen($titleText)) $titleText = "

$titleText

"; $query = "SELECT email,userid,first_name,last_name,type,status,can_order,receive_emails,sum(ua.transaction_amount) as balance,trx_status," . "home_phone,cell_phone,date_added,last_login,email_flag,email_reminders,u.record_num " . "FROM users AS u LEFT JOIN user_account AS ua ON user_num = u.record_num and ua.school_num = $school_num and (ua.deleted != 'Y' or ua.deleted is null) " . "WHERE u.school_num = $base_school_num " . $lookup_where . $swhere . $mwhere . "GROUP BY 1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17 " . $mhaving . "ORDER BY $order_by_field"; writeLog($query); $menu_dates = db_query($query); $return_data['num_records'] = db_num_rows($menu_dates); $numRecords = db_num_rows($menu_dates); if ($numRecords > 0) { $count = 0; $data = array(); while ($row = db_fetch_array($menu_dates)) { extract($row); $userNum = $record_num; $userid = "$userid"; $query = "SELECT * FROM people " . "WHERE school_num = $base_school_num " . "AND user_num = $record_num " . "AND active != 'N' " . "AND people_type IN ('Student','Customer')"; $students = db_query($query); $numStudents = db_num_rows($students); if (isset($show_modifier) && $show_modifier == 'nostudents' && $numStudents > 0) continue; $nstudents = $numStudents; if ($numStudents > 0) { $Tip = ""; while ($row = db_fetch_assoc($students)) { $people_type = $row['people_type']; $class_info = getLanguageText('TEXT-'.strtoupper($people_type)); if ($numClasses > 0) $class_info = getClassInfo($row['class_num'], 'internal'); $Tip .= ""; } $Tip .= "
 ".$row['first_name'].' '.$row['last_name']." - $class_info
"; $nstudents = "
$numStudents " . "$Tip\n" . "
"; } if (strlen($email)) { if ($email == $userid) $userid = "$email"; else $userid .= "
$email"; } $userid .= ""; $balance = floatval($balance); if ($balance >= 0) $balance = '$' . number_format($balance,2); else $balance = '-$' . number_format(abs($balance),2); $Tip = "" . "" . "" . "" . "" . "" . "" . "" . "" . "
".getLanguageText('TEXT-NAME').": $first_name $last_name
".getLanguageText('TEXT-EMAIL').": $email
".getLanguageText('TEXT-PHONE').": $home_phone
".getLanguageText('TEXT-CELL-PHONE').": $cell_phone
".getLanguageText('TEXT-TYPE').": $type
".getLanguageText('TEXT-DATE-ADDED').": $date_added
".getLanguageText('TEXT-LAST-LOGIN').": $last_login
".getLanguageText('TEXT-ACCOUNT-BALANCE').": $balance
"; $userid = "
$userid" . "$Tip" . "
"; $name = "$first_name $last_name"; if (!isset($receive_emails) || $receive_emails == '') { $receive_emails = 'N'; db_query("UPDATE users SET receive_emails = '$receive_emails' WHERE school_num = $base_school_num AND record_num = $userNum"); } $receive_emails_display = '-'; if ($receive_emails == 'Y') $receive_emails_display = getLanguageText('TEXT-YES'); if ($receive_emails == 'N') $receive_emails_display = getLanguageText('TEXT-NO'); $receive_emails_display = "$receive_emails_display"; if ($school_record['email_system'] == 'Y' && $type == 'Parent') $receive_emails_display .= "
($email_flag)"; if (!isset($email_reminders) || $email_reminders == '') { $email_reminders = 'N'; db_query("UPDATE users SET email_reminders = '$email_reminders' WHERE school_num = $base_school_num AND record_num = $userNum"); } $email_reminders_display = '-'; if ($email_reminders == 'Y') $email_reminders_display = getLanguageText('TEXT-YES'); if ($email_reminders == 'N') $email_reminders_display = getLanguageText('TEXT-NO'); $email_reminders_display = "$email_reminders_display"; if (!isset($can_order) || $can_order == '') { $can_order = 'Yes'; db_query("UPDATE users SET can_order = '$can_order' WHERE school_num = $base_school_num AND record_num = $userNum"); } $can_order_display = '-'; if ($can_order == 'Yes') $can_order_display = getLanguageText('TEXT-YES'); if ($can_order == 'No') $can_order_display = getLanguageText('TEXT-NO'); if ($can_order == 'Balance') $can_order_display = getLanguageText('TEXT-BALANCE'); $can_order_display = "$can_order_display"; if ($status == 'Active') $status_display = getLanguageText('TEXT-ACTIVE'); if ($status == 'Inactive') $status_display = getLanguageText('TEXT-INACTIVE'); if ($status == 'Deleted') $status_display = getLanguageText('TEXT-DELETED'); if ($status == 'Pending') $status_display = getLanguageText('TEXT-PENDING'); if ($status == 'Suspended') $status_display = getLanguageText('TEXT-SUSPENDED'); $status_display = "$status_display"; $entry = array(); for ($i = 0; $i < count($columnFields); $i++) { $fname = $columnFields[$i]; $value = $$fname; if ($fname == 'class_program') $value = $Programs[$value]; $entry[] = $value; } $entry['record_num'] = $record_num; $entry['delete_flag'] = 'Y'; if ($numStudents > 0) $entry['delete_flag'] = 'N'; $data[] = $entry; } // Commands $students_icon = "View Students"; $contacts_icon = "View Contact Information"; $reminder_icon = "Send Account Login Reminder Email"; $weekly_reminder_icon = "Send Weekly Menu Reminder Email"; $money_icon = "Post to User Account"; $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; $commands[] = "$students_icon"; $title = getLanguageText('TEXT-SEND-LOGIN-REMINDER'); $commands[] = "$reminder_icon"; $title = getLanguageText('TEXT-SEND-WEEKLY-EMAIL-REMINDER'); $commands[] = "$weekly_reminder_icon"; $title = getLanguageText('TEXT-VIEW-ACCOUNT-TRANSACTIONS'); $commands[] = "$money_icon"; $title = getLanguageText('TEXT-MANAGE-ACCOUNT-TRANSACTIONS'); $commands[] = "$money_icon"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; writeLog("customTableID: $customTableID"); $TableWidth = 850; if (!isset($totals)) $totals = array(); if (!isset($titleText)) $titleText = ''; $return_data['count'] = count($data); $return_data['content'] = $titleText . getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { if (!isset($titleText)) $titleText = ''; $return_data['content'] = $titleText . "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'user-account-students': if (array_key_exists('user_num', $_GET)) $user_num = intval($_GET['user_num']); if (!isset($user_num)) return; // Get schedules data $Schedules = array(); $query = "SELECT * FROM hotlunch_schedules WHERE school_num = $school_num AND status IN ('Pending','Active')"; $results = db_query($query); while ($row = db_fetch_assoc($results)) { $snum = $row['record_num']; $title = $row['schedule_name']; $Schedules[$snum] = $title; } $numClasses = db_getVal("SELECT count(*) FROM classes WHERE school_num = $base_school_num"); // Get user data $results = db_query("SELECT * FROM users WHERE school_num = $base_school_num AND record_num = $user_num"); if (db_num_rows($results)) { $user = db_fetch_assoc($results); extract($user); $header = "

$first_name $last_name"; $header .= "
$userid"; if (strlen($email)) $header .= "
$email"; if (strlen($home_phone)) $header .= "
$home_phone"; $query = "SELECT * FROM people WHERE school_num = $base_school_num AND user_num = $user_num ORDER BY first_name, last_name"; $students = db_query($query); $return_data['num_records'] = db_num_rows($students); if (db_num_rows($students)) { $return_data['content'] = $header; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $rclass = 'data-odd'; while ($row = db_fetch_assoc($students)) { extract($row); $return_data['content'] .= ""; if ($rclass == 'data-odd') $rclass = 'data-even'; else $rclass = 'data-odd'; $return_data['content'] .= ""; $orders = db_query("SELECT * FROM hotlunch_order_header WHERE school_num = $school_num AND ordered_by_num = $record_num ORDER BY added_time"); $norders = db_num_rows($orders); $Tip = ''; if ($norders > 0) { $Tip = "
".getLanguageText('TEXT-NAME')."".getLanguageText('TEXT-ORDERS')."
$first_name $last_name
"; $Tip .= ""; $orderCount = 0; while ($row = db_fetch_assoc($orders)) { $snum = $row['schedule_num']; if (array_key_exists($snum, $Schedules)) { $title = $Schedules[$snum]; $amt = '$'.$row['order_total']; $ostatus = $row['status']; $Tip .= ""; $orderCount++; } } $Tip .= "
$first_name $last_name
 $title: $amt$ostatus
"; $norders = $orderCount; if ($orderCount > 0) $norders = "

$orderCount\n" . "$Tip\n" . "
"; } $return_data['content'] .= "$norders"; $class_info = getLanguageText('TEXT-'.strtoupper($people_type)); if ($numClasses > 0) $class_info = getClassInfo($class_num, 'internal'); $return_data['content'] .= "$class_info"; $edit_student = "$edit_icon_small"; $return_data['content'] .= "$edit_student"; $return_data['content'] .= ""; } $return_data['content'] .= ""; } } break; case 'student-orders': $display_mode = 'AllSchedules'; if (array_key_exists('display_mode', $_GET)) $display_mode = db_escape_string($_GET['display_mode']); if (array_key_exists('student_num', $_GET)) $student_num = intval($_GET['student_num']); if (!isset($student_num)) return; $person = db_getVal("SELECT * FROM people WHERE school_num = $base_school_num AND record_num = $student_num"); $class_num = $person['class_num']; $Name = $person['first_name'].' '.$person['last_name']; $titleText = "

$Name

"; $return_data['name'] = $Name; $time = date("H",time()); $now = date("Y-m-d H:i:s",time()); $orderButtonText = getLanguageText('TEXT-ORDER'); if (isset($order_button_text) && strlen($order_button_text)) $orderButtonText = $order_button_text; // $orderButtonText = str_replace(' ',' ',$orderButtonText); // Determine the number of currently active schedules $today = date("Y-m-d",time()); $now = date("Y-m-d H:i:s",time()); $cutoff_date = date("Y-m-d 00:00:00",time() - 60 * 60 * 24 * 300); $swhere = "AND start_order_datetime <= '$now' AND status in ('Active') "; $cwhere = "AND start_order_datetime > '$cutoff_date' "; if ($display_mode == 'AllSchedules') $cwhere = ''; $num_active = db_getVal("SELECT count(*) FROM hotlunch_schedules " . "WHERE school_num = $school_num " . "AND schedule_type != 'Volunteer Only' " . $cwhere . $swhere); // Check if there is a current schedule $today = date("Y-m-d",time()); db_query("UPDATE hotlunch_schedules SET start_order_date = start_order_datetime, end_order_date = end_order_datetime WHERE school_num = $school_num"); $query = "select * from hotlunch_schedules " . "where school_num = $school_num " . "AND schedule_type != 'Volunteer Only' " . $cwhere . $swhere . "order by start_order_date DESC"; writeLog($query); $current_schedules = db_query($query); $num_schedules = db_num_rows($current_schedules); writeLog("num_schedules: $num_schedules"); $num_classes = db_getVal("SELECT count(*) FROM classes WHERE school_num = $base_school_num"); $schedules = array(); $displayDiscounts = False; if (db_num_rows($current_schedules) > 0) { $cutoff_date = date("Y-m-d",time() - 60 * 60 * 24 * 45); while ($row = db_fetch_array($current_schedules)) { $schedule_num = $row['record_num']; $schedule_name = $row['schedule_name']; $start_order_date = $row['start_order_date']; writeLog("schedule_name: $schedule_name - $start_order_date"); // Check that the schedule has menu dates and items defined $numDates = db_getVal("SELECT count(*) FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num"); if ($numDates == 0) continue; $numItems = db_getVal("SELECT count(*) FROM hotlunch_menu_dates AS hlmd, hotlunch_menu_items AS hlmi " . "WHERE hlmd.school_num = $school_num " . "AND hlmi.school_num = $school_num " . "AND hlmd.schedule_num = $schedule_num " . "AND hlmi.menu_num = hlmd.record_num"); if ($numItems == 0) continue; // Check if there is an order for this schedule $results = db_query("SELECT * FROM hotlunch_order_header " . "WHERE school_num = $school_num " . "AND ordered_by_num = $student_num " . "AND schedule_num = $schedule_num"); if (db_num_rows($results)) { $schedules[] = $row; continue; } // Check if this is a limited access schedule by class $class_entries = db_getVal("select count(*) from hotlunch_schedules_classes where school_num = $school_num and schedule_num = $schedule_num"); if ($class_entries > 0 && $class_num > 0) { $query = "select count(*) from hotlunch_schedules_classes " . "where school_num = $school_num " . "and schedule_num = $schedule_num " . "and class_num = $class_num"; $schedule_access = db_getVal($query); if ($schedule_access == 0) continue; } // Check if this is a limited access schedule by category $category_entries = db_getVal("select count(*) from hotlunch_schedules_categories " . "where school_num = $school_num " . "and schedule_num = $schedule_num"); if ($category_entries > 0) { $query = "SELECT count(*) FROM hotlunch_schedules_categories AS hlsc, people_categories AS pc " . "WHERE hlsc.school_num = $school_num " . "AND pc.school_num = $school_num " . "AND schedule_num = $schedule_num " . "AND hlsc.category_num = pc.category_num " . "AND pc.people_num = $student_num"; $schedule_access = db_getVal($query); if ($schedule_access == 0) continue; } $schedules[] = $row; $schedule_num = $row['record_num']; $discount = db_getVal("SELECT discount_amount " . "FROM hotlunch_order_header " . "WHERE school_num = $school_num " . "AND schedule_num = $schedule_num " . "AND ordered_by_num = $student_num " . "AND ordered_by_type IN ('Staff','Student','Customer')"); if ($discount > 0) $displayDiscounts = True; } } $content = ''; if (count($schedules) > 0) { // Initialize the totals $t_balance = 0; $t_subtotal = 0; $t_total = 0; $t_discount = 0; $t_paid = 0; $columnHeaders = array(); $columnHeaders[] = getLanguageText('TEXT-SCHEDULE'); $columnHeaders[] = getLanguageText('TEXT-TOTAL'); if ($displayDiscounts) $columnHeaders[] = getLanguageText('TEXT-DISCOUNT'); $columnHeaders[] = getLanguageText('TEXT-AMOUNT-PAID'); $columnHeaders[] = getLanguageText('TEXT-STATUS'); $columnHeaders[] = getLanguageText('TEXT-CATEGORY'); $columnHeaders[] = ''; $columnAlign = array(); $columnAlign[] = 'left'; $columnAlign[] = 'right'; if ($displayDiscounts) $columnAlign[] = 'right'; $columnAlign[] = 'right'; $columnAlign[] = 'center'; $columnAlign[] = 'center'; $order_total = 0; $order_net = 0; $lcount = 0; $schedule_status = ""; for ($sn = 0; $sn < count($schedules); $sn++) { $schedule = $schedules[$sn]; extract($schedule); $ScheduleName = $schedule_name; $schedule_num = $record_num; $schedule_status = ""; writeLog($status); if (in_array($_SESSION['UserInfo']['type'],array('SuperUser','System Administrator'))) $schedule_status = "(" . $status . ")"; writeLog("schedule_name: $schedule_name"); $start_order_datet = $start_order_date; $end_order_datet = $end_order_date; if (isset($start_order_datetime) && strlen($start_order_datetime)) { $start_order_datet = substr($start_order_datetime,0,16); $end_order_datet = substr($end_order_datetime,0,16); } $Tip = "" . "" . "" . ""; if (in_array($_SESSION['UserInfo']['type'],array('SuperUser','System Administrator'))) { if ($schedule_type == 'Hot Lunch' || $schedule_type == 'Date Sensitive') { $Tip .= "" . ""; } $Tip .= ""; } $Tip .= "
".getLanguageText('TEXT-SCHEDULE')."$schedule_name
".getLanguageText('TEXT-START-ORDER')."$start_order_datet
".getLanguageText('TEXT-END-ORDER')."$end_order_datet
".getLanguageText('TEXT-SCHEDULE-START')."$schedule_start_date
".getLanguageText('TEXT-SCHEDULE-END')."$schedule_end_date
".getLanguageText('TEXT-TYPE')."$schedule_type
"; // Get order information for this student and this schedule $query = "select schedule_num,order_subtotal,discount_amount,order_total," . "amount_paid,status,price_category,record_num as order_num " . "from hotlunch_order_header " . "where school_num = $school_num " . "and schedule_num = $schedule_num " . "and ordered_by_num = $student_num " . "and status != 'Deleted'"; $results = db_query($query); $return_data['num_records'] = db_num_rows($results); $order_subtotal = 0; $discount_amount = 0; $order_total = 0; $amount_paid = 0; $balance = 0; $status = getLanguageText('TEXT-NO-ORDER'); $order_num = 0; $price_category = ''; $l_bgclass = 'data-odd'; if ($lcount % 2) $l_bgclass = 'data-even'; $lcount++; if (db_num_rows($results) > 0) { $row = db_fetch_assoc($results); extract($row); $balance = $order_subtotal - $discount_amount - $amount_paid; $t_subtotal += $order_subtotal; $t_total += $order_total; $t_discount += $discount_amount; $t_paid += $amount_paid; $t_balance += $balance; } $schedule_link = "?action=orders&naction=edit&schedule_num=$schedule_num&student_num=$student_num&entered_order_num=$order_num"; $edit_order_link = "?action=orders&naction=edit-header&schedule_num=$schedule_num&order_num=$order_num"; $print_order_link = "?action=orders-print&schedule_num=$schedule_num&order_num=$order_num"; // Change schedule name to a link $now = date("Y-m-d H:i:00",time()); if ($end_order_datetime >= $now) { $schedule_name = "" . $schedule_name . " "; } $schedule_name = "
$schedule_name $schedule_status\n" . "$Tip\n" . "
"; $orders = db_query("SELECT * FROM hotlunch_order_header WHERE school_num = $school_num AND ordered_by_num = $record_num ORDER BY added_time"); // Define commands for this entry $commands = ''; writeLog("order_num: $order_num end_order_datetime: $end_order_datetime"); if ((isset($order_num) && $order_num > 0) || $end_order_datetime > $now) { $commands .= " $orderButtonText "; } else { $commands .= getLanguageText('TEXT-ORDERING-HAS-ENDED'); } if (isset($order_num) && $order_num > 0 && $_SESSION['UserInfo']['type'] == 'SuperUser') { $commands .= "$edit_icon_small "; } if (isset($order_num) && $order_num > 0) { $commands .= "$print_icon_small "; } $price_category_text = ''; if (isset($price_category) && strlen($price_category)) { $pcat = strtolower(str_replace(' ','',$price_category)); $pclass = ''; $price_category_text = getLanguageText('TEXT-'.$price_category); if ($price_category != 'Regular') { $pclass = 'warning'; switch ($price_category) { case 'Special 1': if (strlen($school_record['special1_text'])) $price_category_text = $school_record['special1_text']; break; case 'Special 2': if (strlen($school_record['special2_text'])) $price_category_text = $school_record['special2_text']; break; case 'Special 3': if (strlen($school_record['special3_text'])) $price_category_text = $school_record['special3_text']; break; } } $ScheduleName = str_replace("'","'",$ScheduleName); $price_category = "" . $price_category_text . ""; } $entry = array(); $entry[] = $schedule_name; $entry[] = $currencySymbol.number_format($order_total,2); if ($displayDiscounts) $entry[] = $currencySymbol.number_format($discount_amount,2); $entry[] = $currencySymbol.number_format($amount_paid,2); $entry[] = getLanguageText('TEXT-'.strtoupper($status)); $entry[] = $price_category; $entry[] = $commands; $entry['record_num'] = $order_num; switch ($display_mode) { case 'AllSchedules': $data[] = $entry; break; case 'OrdersOnly': if (isset($order_num) && $order_num > 0) { $data[] = $entry; } break; case 'OrdersAndCurrent': if (isset($order_num) && $order_num > 0) { $data[] = $entry; } else { $ordering_date = date("Y-m-d H:i:00",time() - 60 * 60 * 24 * 200); writeLog("ordering_date: $ordering_date"); writeLog("end_order_datetime: $end_order_datetime"); if ($end_order_datetime > $ordering_date) { $data[] = $entry; } } break; } } if (!isset($titleText)) $titleText = ''; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 750; if (!isset($totals)) $totals = array(); $return_data['content'] = $titleText . getDataCustom($data,$columnHeaders,$action,array(),'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('TEXT-NO-ORDERS-FOUND')." ---

"; } break; case 'students-list': // if ($_SESSION['UserInfo']['type'] == 'SuperUser') startLog("students-list"); // startLog("students-list"); if (!array_key_exists('type', $_SESSION['UserInfo'])) { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; break; } $displayMode = 'AdminDisplay'; $curr_school_num = $school_num; $show_commands = 'Y'; if (array_key_exists('show_commands', $_GET)) $show_commands = db_escape_string($_GET['show_commands']); if (array_key_exists('match', $_GET)) $match = db_escape_string($_GET['match']); $swhere = ""; $ParentAcctsTypes = array('Parent', 'Staff', 'Guest', 'Application Volunteer', 'Administration Team', 'Schedule Team', 'Financial Team'); if (array_key_exists('type', $_SESSION['UserInfo']) && in_array($_SESSION['UserInfo']['type'], $ParentAcctsTypes)) { $unum = intval($_SESSION['UserInfo']['record_num']); $swhere = "AND user_num = $unum "; $displayMode = 'ParentDisplay'; writeLog("displayMode: $displayMode"); } else { if (!isset($match) || strlen($match) < 3) { $titleText = $GlobalText['AllStudents']; $swhere = "AND people_type IN ('Student','Customer','Staff') "; writeLog("swhere: $swhere"); // Get parameters if (array_key_exists('show_type', $_GET)) $show_type = db_escape_string($_GET['show_type']); if (array_key_exists('naction', $_GET)) $naction = db_escape_string($_GET['naction']); if (array_key_exists('record_num', $_GET)) $record_num = intval($_GET['record_num']); if (isset($record_num)) $swhere = "AND st.record_num = $record_num "; writeLog("swhere: $swhere"); $header = ""; if (isset($naction)) { writeLog("naction: $naction"); switch ($naction) { case 'view-class-students': $cnum = 0; if (array_key_exists('class_num', $_GET)) $cnum = intval($_GET['class_num']); if ($cnum == 0) return; $swhere = "AND class_num = $cnum "; writeLog("swhere: $swhere"); break; case 'view-meal-locations': $cnum = 0; if (array_key_exists('class_num', $_GET)) $cnum = intval($_GET['class_num']); if ($cnum > 0) $swhere = "AND class_num = $cnum "; // $swhere = "AND class_num != meal_location "; writeLog("swhere: $swhere"); break; case 'view-account-students': $unum = 0; if (array_key_exists('user_num', $_GET)) $unum = intval($_GET['user_num']); if ($unum == 0) return; $swhere = "AND user_num = $unum "; break; case 'view-unverified': $swhere = "AND st.status = 'Unverified' "; break; case 'view-inactive': $swhere = "AND active = 'N' "; $swhere = "AND st.status = 'Inactive' "; break; case 'view-unassigned': $swhere = "AND (class_num < 3 OR class_num IS NULL) AND people_type = 'Student' "; break; case 'view-price-category': if (array_key_exists('price_category', $_GET)) { $price_category = db_escape_string($_GET['price_category']); $swhere = "AND menu_price_category = '$price_category' "; } break; case 'view-flex-pricing': $swhere = "AND access_to_multiple_item_prices = 'Y' "; break; case 'view-missing-student-number': $swhere = "AND (student_number = '' OR student_number IS NULL) "; break; case 'view-students': $swhere = "AND people_type = 'Student' "; $header = $GlobalText['Students']; break; case 'view-staff': $swhere = "AND people_type = 'Staff' "; break; case 'view-customers': $swhere = "AND people_type = 'Customer' "; break; case 'view-all': $swhere = "AND active = 'Y' "; break; case 'view-category-students': $cnum = 0; if (array_key_exists('category_num',$_GET)) $cnum = intval($_GET['category_num']); $swhere = "AND st.record_num IN (SELECT people_num FROM people_categories WHERE school_num = $school_num AND category_num = $cnum) "; break; } } } else { $naction = 'match'; $word = trim($match); $lookup_where = "AND (st.first_name LIKE '$word%' " . "OR st.last_name LIKE '$word%' " . "OR st.email LIKE '$word%' " . "OR u.userid LIKE '$word%' " . "OR student_number LIKE '$word%' " . "OR label_note LIKE '%$word%' " . "OR cust_phone LIKE '%$word%' " . "OR cust_phone LIKE '%$word%' " . "OR cust_address LIKE '%$word%' " . "OR st.notes LIKE '%$word%') "; } } // Get schedules data $Schedules = array(); $query = "SELECT * FROM hotlunch_schedules WHERE school_num = $curr_school_num AND status IN ('Pending','Active')"; $results = db_query($query); while ($row = db_fetch_assoc($results)) { $snum = $row['record_num']; $title = $row['schedule_name']; $Schedules[$snum] = $title; } $Classes = array(); $Classes[0] = array( 'class_info' => getClassInfo(0), 'division' => '', 'grade' => getLanguageText('TEXT-STAFF'), 'gfield' => 'grade', 'eclass' => '' ); $Classes[1] = array( 'class_info' => getClassInfo(1), 'division' => '', 'grade' => getLanguageText('TEXT-CUSTOMER'), 'gfield' => 'grade', 'eclass' => '' ); $Classes[2] = array( 'class_info' => getClassInfo(2), 'division' => '', 'grade' => '-', 'gfield' => 'grade', 'eclass' => '' ); $results = db_query("SELECT * FROM classes WHERE school_num = $base_school_num"); while ($row = db_fetch_assoc($results)) { $cnum = $row['record_num']; $type = $row['entry_type']; $div = $row['division']; $grade = $row['grade']; $gfield = 'grade'; $eclass = ''; if (!strlen($grade)) { $grade = $row['label_description']; $gfield = 'label_description'; if (strlen($grade) == 0 && strlen($row['description'])) { $grade = $row['description']; $gfield = 'description'; } if (strlen($grade) == 0 && strlen($row['division'])) { $grade = $row['division']; $gfield = 'division'; } if (!strlen($grade)) { if (isset($people_type) && $people_type != 'Staff') { $grade = "   error   "; $eclass = " error"; $class_info = ''; } } } if ($type == 'Class') $text = getClassInfo($cnum); else $text = $row['description']; if (strlen($grade) > 30) $grade = substr($grade, 0, 25)."..."; $entry = array(); $entry['class_info'] = $text; $entry['division'] = $div; $entry['grade'] = $grade; $entry['gfield'] = $gfield; $entry['eclass'] = $eclass; $Classes[$cnum] = $entry; } $columnHeaders = array(); $columnHeaders[] = getLanguageText('TEXT-NAME'); if (isset($naction) && $naction != 'view-meal-locations') { if ($displayMode == 'AdminDisplay') $columnHeaders[] = getLanguageText('TEXT-ACCOUNT'); $columnHeaders[] = getLanguageText('TEXT-ORDERS'); if ($school_record['collect_student_number'] == 'Y') $columnHeaders[] = getLanguageText('TEXT-STUDENT-NUMBER'); if ($school_record['participant_grouping'] != 'None') { $columnHeaders[] = $GlobalText['Class']; if ($school_record['i_display_division'] == 'Y') { $columnHeaders[] = getLanguageText('TEXT-DIVISION'); } } if ($displayMode == 'AdminDisplay') $columnHeaders[] = getLanguageText('TEXT-TYPE'); $columnHeaders[] = getLanguageText('TEXT-STATUS'); if ($displayMode == 'AdminDisplay' && $school_record['implement_multiple_item_prices'] == 'Y') { $columnHeaders[] = getLanguageText('TEXT-FLEX-PRICING'); } if ($displayMode == 'AdminDisplay') $columnHeaders[] = getLanguageText('TEXT-DISPLAY'); $columnAlign = array('left','center','center','center','center','center','center','center','center','center'); } else { $columnHeaders[] = getLanguageText('TEXT-TYPE'); $columnHeaders[] = $GlobalText['Class']; $columnHeaders[] = getLanguageText('TEXT-ALTERNATE-LOCATION'); $columnAlign = array('left','center','center'); } // if ($_SESSION['UserInfo']['type'] == 'SuperUser') { // $columnHeaders[] = 'rNum'; // $columnAlign[] = 'center'; // } if (!isset($swhere)) $swhere = ''; if (!isset($lookup_where)) $lookup_where = ''; writeLog("swhere: $swhere"); writeLog("lookup_where: $lookup_where"); $query = "SELECT st.* FROM people AS st, users AS u " . "WHERE st.school_num = $base_school_num " . "AND u.school_num = $base_school_num " . "AND st.user_num = u.record_num " . $swhere . $lookup_where . "order by last_name, first_name"; writeLog($query); $students = db_query($query); $numRecords = db_num_rows($students); $return_data['num_records'] = $numRecords; if ($numRecords) { $data = array(); while ($row = db_fetch_array($students)) { extract($row); $student_num = $record_num; writeLog("---------------------------------------------------"); writeLog("student_num: $student_num"); $delete_flag = 'Y'; $eclass = ''; $people_info = ""; $people_info .= ""; if (intval($class_num) > 2 && array_key_exists($class_num, $Classes)) $people_info .= ""; // Check for allergen info $query = "SELECT allergen FROM allergies, allergens " . "WHERE allergies.school_num = $base_school_num " . "AND allergens.school_num = $base_school_num " . "AND allergies.allergen_num = allergens.record_num " . "AND people_num = $student_num " . "ORDER BY allergen"; writeLog($query); $allergies = db_query($query); writeLog("Num Allergies: ".db_num_rows($allergies)); if (db_num_rows($allergies)) { $people_info .= ""; } $people_info .= "
$people_type
".$Classes[$class_num]['class_info']."

".getLanguageText('TEXT-ALLERGIES').""; $people_info .= "
    "; while ($row = db_fetch_assoc($allergies)) { $people_info .= "
  • ".$row['allergen']."
  • "; } $people_info .= "
"; writeLog("$last_name, $first_name -- $class_num $meal_location"); if (!isset($show_commands) || $show_commands == 'Y') { $name = "$last_name, $first_name"; } else { $name = "$last_name, $first_name"; } $name = "
$name\n" . "$people_info\n" . "
"; $query = "SELECT * FROM hotlunch_order_header WHERE school_num = $curr_school_num AND ordered_by_num = $record_num ORDER BY added_time DESC"; writeLog($query); $orders = db_query($query); $norders = db_num_rows($orders); $numOrders = intval($norders); if ($numOrders > 0) $delete_flag = 'N'; $ordersTip = ''; if (isset($naction) && $naction != 'view-meal-locations' && $norders > 0) { $delete_flag = 'N'; $ordersTip = ""; $ordersTip .= ""; $orderCount = 0; while ($row = db_fetch_assoc($orders)) { $snum = $row['schedule_num']; if (array_key_exists($snum, $Schedules)) { $title = $Schedules[$snum]; $amt = '$'.$row['order_total']; $ostatus = $row['status']; $ordersTip .= ""; $orderCount++; } } $ordersTip .= "
$first_name $last_name
 $title: $amt$ostatus
"; $norders = "
$orderCount\n" . "$ordersTip\n" . "
"; } // If there is a valid user_num create the tip if (isset($naction) && $naction != 'view-meal-locations' && isset($user_num) && $user_num > 0) { $uresults = db_query("SELECT * FROM users WHERE school_num = $base_school_num and record_num = $user_num"); if (db_num_rows($uresults)) { $urow = db_fetch_array($uresults); $userid = $urow['userid']; // Get user balance $query = "SELECT sum(transaction_amount) AS balance FROM user_account " . "WHERE school_num = $curr_school_num " . "AND user_num = $user_num " . "AND (deleted != 'Y' OR deleted IS NULL)"; $user_balance = db_getVal($query); $user_balance = $currencySymbol . number_format(floatval($user_balance),2); $num_students = db_getVal("SELECT count(*) FROM people WHERE school_num = $base_school_num AND user_num = $user_num"); $userAdditional = ''; if (array_key_exists('type', $_SESSION['UserInfo']) && $_SESSION['UserInfo']['type'] == 'SuperUser') $userAdditional = "User Num:$user_num"; $Tip = "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . $userAdditional . "
".getLanguageText('TEXT-USER-ID').": $userid
".getLanguageText('TEXT-NAME').": $urow[first_name] $urow[last_name]
".getLanguageText('TEXT-EMAIL').": $urow[email]
".getLanguageText('TEXT-PHONE').": $urow[home_phone]
".getLanguageText('TEXT-CELL-PHONE').": $urow[cell_phone]
".getLanguageText('TEXT-NUMBER-OF-STUDENTS').": $num_students
".getLanguageText('TEXT-TYPE').": $urow[type]
".getLanguageText('TEXT-DATE-ADDED').": $urow[date_added]
".getLanguageText('TEXT-LAST-LOGIN').": $urow[last_login]
".getLanguageText('TEXT-ACCOUNT-BALANCE').": $user_balance
"; $userid = "
$userid" . "$Tip" . "
"; } } $statusText = getLanguageText('TEXT-'.strtoupper($status)); $statusText = "$statusText\n" . ""; if ($displayMode == 'AdminDisplay') { $mcat = strtolower(str_replace(' ','',$menu_price_category)); $mpText = getLanguageText('TEXT-'.strtoupper($menu_price_category)); switch ($menu_price_category) { case 'Special 1': $mpText = $Special1_Title; break; case 'Special 2': $mpText = $Special2_Title; break; case 'Special 3': $mpText = $Special3_Title; break; } if ($menu_price_category != 'Regular') $mpText = "$mpText"; $mpText = "$mpText"; $statusText .= "
$mpText"; } $people_type = getLanguageText('TEXT-'.strtoupper($people_type)); $entry = array(); $entry[] = $name; if (isset($naction) && $naction != 'view-meal-locations') { if ($displayMode == 'AdminDisplay') $entry[] = $userid; $entry[] = $norders . ""; if ($school_record['collect_student_number'] == 'Y') $entry[] = $student_number; if ($school_record['participant_grouping'] != 'None') { $grade = ''; $eclass = ''; $gfield = ''; $class_info = ''; if (array_key_exists($class_num, $Classes)) { $grade = $Classes[$class_num]['grade']; $eclass = $Classes[$class_num]['eclass']; $gfield = $Classes[$class_num]['gfield']; $class_info = $Classes[$class_num]['class_info']; } $entry[] = " $grade "; if ($school_record['i_display_division'] == 'Y') { if (isset($class_num) && $class_num != '' && array_key_exists($class_num, $Classes)) $entry[] = $Classes[$class_num]['division']; else $entry[] = ''; } } if ($displayMode == 'AdminDisplay') $entry[] = $people_type; $entry[] = $statusText; if ($displayMode == 'AdminDisplay' && $school_record['implement_multiple_item_prices'] == 'Y') { $entry[] = "$access_to_multiple_item_prices"; } if ($displayMode == 'AdminDisplay') $entry[] = "$display"; } else { $entry[] = $people_type; if ($meal_location == '' || intval($meal_location) == 0) $meal_location = intval($class_num); if (array_key_exists($meal_location, $Classes)) { $alt_location = $Classes[$meal_location]['class_info']; if (array_key_exists($class_num, $Classes)) { $entry[] = $Classes[$class_num]['class_info']; $entry[] = "" . $alt_location . ""; if ($class_num != $meal_location) $entry["class_2"] = "warning"; } else { $entry[] = ''; $entry[] = ''; } } } // if (array_key_exists('type', $_SESSION['UserInfo']) && $_SESSION['UserInfo']['type'] == 'SuperUser') $entry[] = $record_num; $entry['record_num'] = $record_num; $entry['delete_flag'] = $delete_flag; $data[] = $entry; } $money_icon = "Post to User Account"; $commands = array(); if (!isset($show_commands) || $show_commands != 'N') { $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; if ($displayMode == 'AdminDisplay') { // $commands[] = "$money_icon"; $commands[] = "$order_icon_small"; } else { $commands[] = "".getLanguageText('TEXT-ORDERS').""; } } $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'parent-student-list': // startLog("parent-students-list"); $ParentAcctsTypes = array('Parent', 'Staff', 'Guest', 'Application Volunteer', 'Administration Team', 'Schedule Team', 'Financial Team'); if (array_key_exists('type', $_SESSION['UserInfo']) && in_array($_SESSION['UserInfo']['type'], $ParentAcctsTypes)) { $unum = intval($_SESSION['UserInfo']['record_num']); $swhere = "AND user_num = $unum "; $displayMode = 'ParentDisplay'; writeLog("displayMode: $displayMode"); } else { $return_data['content'] = '

' . getLanguageText('ERRORMSG-INVALID-ACCESS') . '

'; break; } $numClasses = db_getVal("SELECT count(*) FROM classes WHERE school_num = $base_school_num"); $query = "SELECT st.* FROM people AS st, users AS u " . "WHERE st.school_num = $base_school_num " . "AND u.school_num = $base_school_num " . "AND st.user_num = u.record_num " . $swhere . "order by last_name, first_name"; writeLog($query); $students = db_query($query); if (db_num_rows($students)) { $content = "
\n"; while ($row = db_fetch_assoc($students)) { extract($row); $student_num = $record_num; $snums = $school_record['linked_sites']; $query = "SELECT count(*) FROM hotlunch_order_header AS hloh, hotlunch_schedules AS hls " . "WHERE hloh.school_num IN ($snums) " . "AND hls.school_num IN ($snums) " . "AND hloh.schedule_num = hls.record_num " . "AND hls.status IN ('Pending','Active') " . "AND ordered_by_num = $record_num"; $numOrders = db_getVal($query); $statusText = getLanguageText('TEXT-'.$status); $class_info = getLanguageText('TEXT-'.strtoupper($people_type)); if ($numClasses > 0) $class_info = getClassInfo($class_num, 'external',5,true); // $class_info = getClassInfo($class_num,'external',5,true); $content .= "
\n"; $content .= "
\n"; $content .= "
\n"; $content .= "
".getLanguageText('TEXT-NAME').":
"; $content .= "
$last_name, $first_name
\n"; $content .= "
".getLanguageText('TEXT-STATUS').":
"; $content .= "
$statusText
\n"; $content .= "
".getLanguageText('TEXT-CLASS').":
"; $content .= "
$class_info
\n"; $content .= "
\n"; $content .= "
\n"; $content .= "
\n"; $content .= "
\n"; $content .= "
\n"; if ($school_record['allow_parents_to_edit_students'] != 'N') { $content .= "
\n"; } if ($numOrders == 0) { $content .= "
\n"; $content .= "
\n"; } $content .= "
\n"; $content .= "
\n"; $content .= "
\n"; $content .= "
\n"; // // Get student orders and schedules // if (isset($record_num)) $student_num = $record_num; // Determine the number of currently active schedules $today = date("Y-m-d",time()); $now = date("Y-m-d H:i:s",time()); $school_num = $school_record['record_num']; $swhere = "AND start_order_datetime <= '$now' AND status in ('Active') "; $num_active = db_getVal("SELECT count(*) FROM hotlunch_schedules " . "WHERE school_num = $school_num " . "AND schedule_type != 'Volunteer Only' " . $swhere); // Check if there is a current schedule $query = "select * from hotlunch_schedules " . "where school_num = $school_num " . "AND schedule_type != 'Volunteer Only' " . $swhere . "order by end_order_datetime DESC"; $current_schedules = db_query($query); $num_schedules = db_num_rows($current_schedules); $num_classes = db_getVal("SELECT count(*) FROM classes WHERE school_num = $base_school_num"); $schedules = array(); $displayDiscounts = False; writeLog("count current_schedules: ".db_num_rows($current_schedules)); if (db_num_rows($current_schedules) > 0) { if ($num_classes > 0) $class_num = db_getVal("select class_num from people where school_num = $base_school_num and record_num = $student_num"); else { $class_num = 3; if ($_SESSION['UserInfo']['type'] == 'Staff') $class_num = 1; if ($_SESSION['UserInfo']['type'] == 'Guest') $class_num = 2; } $cutoff_date = date("Y-m-d",time() - 60 * 60 * 24 * 45); while ($row = db_fetch_array($current_schedules)) { $schedule_num = $row['record_num']; // Check that the schedule has menu dates and items defined $numDates = db_getVal("SELECT count(*) FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num"); if ($numDates == 0) continue; $numItems = db_getVal("SELECT count(*) FROM hotlunch_menu_dates AS hlmd, hotlunch_menu_items AS hlmi " . "WHERE hlmd.school_num = $school_num " . "AND hlmi.school_num = $school_num " . "AND hlmd.schedule_num = $schedule_num " . "AND hlmi.menu_num = hlmd.record_num"); if ($numItems == 0) continue; // Check if there is an order for this schedule $results = db_query("SELECT * FROM hotlunch_order_header WHERE school_num = $school_num AND ordered_by_num = $student_num AND schedule_num = $schedule_num"); if (db_num_rows($results)) { $schedules[] = $row; continue; } // Check if this is a limited access schedule by class $class_entries = db_getVal("select count(*) from hotlunch_schedules_classes where school_num = $school_num and schedule_num = $schedule_num"); if ($class_entries > 0 && (($people_type != 'Staff' && $class_num > 0) || ($people_type == 'Staff' && $class_num == 0))) { $query = "select count(*) from hotlunch_schedules_classes " . "where school_num = $school_num " . "and schedule_num = $schedule_num " . "and class_num = $class_num"; $schedule_access = db_getVal($query); if ($schedule_access == 0) continue; } // Check if this is a limited access schedule by category $category_entries = db_getVal("select count(*) from hotlunch_schedules_categories where school_num = $school_num and schedule_num = $schedule_num"); if ($category_entries > 0) { $query = "SELECT count(*) FROM hotlunch_schedules_categories AS hlsc, people_categories AS pc " . "WHERE hlsc.school_num = $school_num " . "AND pc.school_num = $school_num " . "AND schedule_num = $schedule_num " . "AND hlsc.category_num = pc.category_num " . "AND pc.people_num = $student_num"; $schedule_access = db_getVal($query); if ($schedule_access == 0) continue; } $schedules[] = $row; $schedule_num = $row['record_num']; } } if (count($schedules) > 0) { // Initialize the totals $t_balance = 0; $t_subtotal = 0; $t_discount = 0; $t_paid = 0; $order_total = 0; $order_net = 0; $content .= " \n"; } $content .= "
\n"; } $content .= "
\n"; } $return_data['content'] = $content; break; case 'classified-ads': // startLog('classified-ads'); $today = date("Y-m-d",time()); $query = "SELECT cc.category, cs.subcategory, ca.* " . "FROM classified_ads AS ca, classified_categories AS cc, classified_subcategories AS cs " . "WHERE ca.school_num = $school_num " . "AND ca.subcategory_num = cs.record_num " . "AND cs.category_num = cc.record_num " . "AND ca.post_until_date >= '$today' " . "ORDER BY category, subcategory, posted_time"; writeLog($query); $ads = db_query($query); $num = db_num_rows($ads); writeLog("num: $num"); if ($num > 0) { $content = "
\n"; $pcat = ""; $psubcat = ""; while ($row = db_fetch_assoc($ads)) { extract($row); writeLog($category); writeLog($subcategory); writeLog($title); if ($category != $pcat) { if (strlen($pcat) > 0) $content .= "
"; $content .= "
\n"; $content .= "
$category
\n"; $pcat = $category; $psubcat = ""; } if ($subcategory != $psubcat) { $content .= "
$subcategory
\n"; $psubcat = $subcategory; } $contact_email = "$contact_email"; $content .= "
\n"; $content .= "
$title
\n"; $content .= "
".nl2br($description)."
\n"; $content .= "
$contact_info
\n"; $content .= "
$contact_email
\n"; if ($userType == 'Admin') { $content .= "
"; $content .= ""; $content .= ""; } $content .= "
\n"; } $content .= "
\n"; $content .= "\n"; } else { $content = "


".getLanguageText('TEXT-THERE-ARE-NO-CLASSIFIED-ADS-AT-THIS-TIME')."

"; } writeLog($content); $return_data['content'] = $content; break; case 'allergens': // Setup format $columnHeaders = array(getLanguageText('TEXT-ALLERGEN'), getLanguageText('TEXT-NUMBER') ); $columnAlign = array('left','center'); // Get records to display $query = "select allergen,count(al.people_num) AS number,sequence,a.record_num " . "from allergens as a left join allergies as al on a.school_num = al.school_num and a.record_num = al.allergen_num " . "left join people as p on p.school_num = a.school_num and al.people_num = p.record_num " . "where a.school_num = $school_num " . "group by 1,3,4 " . "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'; if ($number > 0) $delete_flag = 'N'; $data[] = array($allergen, $number, "record_num" => $record_num, "delete_flag" => $delete_flag); } // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 650; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'resellers-list': // Setup format $columnHeaders = array("Reseller Code", "Business", "Contact", "Phone", "Email", "Schools"); $columnAlign = array('left','left','left','left','left','center'); // Get records to display $query = "select * from resellers order by business_name"; writeLog("query: $query\n"); $results = db_query($query); if (db_num_rows($results)) { $data = array(); while ($row = db_fetch_assoc($results)) { extract($row); $number = db_getVal("SELECT count(*) FROM schools WHERE reseller = '$reseller_code' AND status = 'Active'"); $delete_flag = 'Y'; if ($number > 0) $delete_flag = 'N'; if (strlen($email)) $email = "$email"; $data[] = array($reseller_code, $business_name, $contact_name, $phone, $email, $number, "record_num" => $record_num, "delete_flag" => $delete_flag); } // Commands $commands = array(); $commands[] = "$edit_icon_small"; $commands[] = "$delete_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 850; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } 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[] = "$delete_icon_small"; if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 450; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } 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; if (!isset($totals)) $totals = array(); $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,$totals); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'delete-trx-info': // startLog('delete-trx-info'); // Get parameters if (array_key_exists('user_num', $_GET)) $user_num = intval($_GET['user_num']); if (array_key_exists('trx_num', $_GET)) $tn = intval($_GET['trx_num']); if (!isset($user_num)) return; writeLog("user_num: $user_num"); if (!isset($tn)) return; writeLog("tn: $tn"); // Get user information $results = db_query("SELECT * FROM users WHERE school_num = $base_school_num AND record_num = $user_num"); $user_info = db_fetch_array($results); $user_email = $user_info['email']; $userid = $user_info['userid']; // $userid = "$userid"; $user_name = $user_info['first_name'] . ' ' . $user_info['last_name']; $user_contact = "$userid
\n$user_name - " . $user_info['home_phone']; writeLog("user_contact: $user_contact"); $query = "SELECT * FROM user_account WHERE school_num = $school_num AND user_num = $user_num AND record_num = $tn"; writeLog($query); $results = db_query($query); if (db_num_rows($results) == 0) { writeLog("TRX not found"); return; } $trx = db_fetch_array($results); // Get entered by userid $entered_by_userid = "automatic"; writeLog("entered_by_userid: $entered_by_userid"); if ($trx['entered_by_user_num'] > 0) { if ($trx['entered_by_user_num'] != 1) $entered_by_userid = db_getVal("SELECT userid FROM users WHERE school_num = $base_school_num AND record_num = $trx[entered_by_user_num]"); } writeLog("entered_by_userid: $entered_by_userid"); $payment_method = "--"; if (strlen($trx['payment_method'])) $payment_method = translateText($trx['payment_method']); $return_data['content'] = ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= "
" . getLanguageText('TEXT-NAME') . ": $user_contact
" . getLanguageText('TEXT-TRANSACTION-TYPE') . ": " . translateText($trx['transaction_type']) . "
" . getLanguageText('TEXT-PAYMENT-METHOD') . ": $payment_method
" . getLanguageText('TEXT-TRANSACTION-AMOUNT') . ": " . $trx['transaction_amount'] . "
" . getLanguageText('TEXT-TRANSACTION-NOTE') . ": " . translateText($trx['note']) . "
" . getLanguageText('TEXT-PAYMENT-REFERENCE') . ": " . $trx['payment_reference'] . "
" . getLanguageText('TEXT-ENTERED-BY') . ": $entered_by_userid
"; writeLog($return_data['content']); 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'] = "

[Upcoming] [Recent]

"; $results = db_query($query); writeLog("num rows: " . db_num_rows($results) . "\n"); if (db_num_rows($results) == 0) { $return_data['content'] .= "

--- No Demos Scheduled ---

"; writeLog($return_data['content'] . "\n"); } else { $return_data['content'] .= "

-- Hot Lunch Demos --

"; $return_data['content'] .= "
"; while ($row = db_fetch_assoc($results)) { extract($row); $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; } $return_data['content'] .= "
$school_name$demo_scheduled_date
"; $return_data['content'] .= "
"; } break; case 'schedule-info': // startLog("schedule-info"); if (array_key_exists('schedule_num', $_GET)) $schedule_num = intval($_GET['schedule_num']); if (!isset($schedule_num)) return; 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"; if ($_SESSION['UserInfo']['type'] == 'SuperUser') $query = "SELECT * FROM hotlunch_schedules WHERE 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 = "$schedule_name ($schedule_type)
" . getLanguageText('TEXT-MENUS') . ": $numMenus
" . getLanguageText('TEXT-MENU-ITEMS') . ": $numItems
" . getLanguageText('TEXT-SCHEDULE-START-DATE') . ": $startDate"; writeLog($content); $return_data['content'] = $content; break; case 'school-info': // startLog("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)"; $last_login = ""; $userid = ""; $query = "SELECT last_login,userid FROM login_log WHERE school_num = $school_num AND userid != 'superuser' ORDER BY last_login DESC LIMIT 0,1"; $results = db_query($query); if (db_num_rows($results)) { $row = db_fetch_assoc($results); $last_login = $row['last_login']; $userid = $row['last_login']; } // 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; } if (strlen($bill_organization) == 0) $bill_organization = 'None'; $return_data['content'] = "$school_name ($school_num) " . "- [edit] " . "- [refresh] " . "- $url " . "- [Clean] $sprices
" . "$city, $province - $phone
" . "$principal - $principal_email
"; $return_data['content'] .= " - Status: $status
" . " - Support: $support_level
" . " - Configuration: $system_configuration
" . " - Small School Discount: $small_school_discount
" . " - Start Date: $start_date
" . " - Expiry Date: $expiry_date
" . " - Last Login: $last_login ($userid)
" . " - Timezone: $timezone
" . " - Time Now: $timeNow
" . " - Access Code: $system_access_code
" . " - Reseller Code: $reseller
" . " - Billing Organization: $bill_organization
" . " - Reminder Day: $email_reminder_day ($email_reminder_weeks)
" . "
"; if ($paypal_enabled == 'Y') { $return_data['content'] .= " - PayPal Code: $paypal_code
\n"; $return_data['content'] .= " - PayPal Verified: $paypal_verified
\n"; } if ($bambora_enabled == 'Y') { $return_data['content'] .= " - Bambora MID: $bambora_merchant_id
\n"; } // Check for schools linked to this school as a supplier $query = "SELECT * FROM schools WHERE supplier_school_num = $school_num ORDER BY school_name"; $results = db_query($query); if (db_num_rows($results)) { $return_data['content'] .= "
\n"; $return_data['content'] .= "Connected Supplier Schools
\n"; $return_data['content'] .= "
"; while ($row = db_fetch_assoc($results)) { $sname = $row['school_name']; $url = $row['url']; $snum = $row['record_num']; $editLink = "$edit_icon_small "; $return_data['content'] .= "
$editLink $sname ($snum)
"; $return_data['content'] .= "
$url
\n"; } $return_data['content'] .= "

\n"; } $return_data['content'] .= "setup
"; // Demo and followup info $return_data['content'] .= "
"; $return_data['content'] .= "
\n"; $return_data['content'] .= "
\n"; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= "
Welcome Email Sent:$welcome_email_sent
Followup Email Sent:$followup_email_sent
Demo Scheduled For:$demo_scheduled_date
Followup Date 1:$followup1_date
Followup Note 1:
Followup Date 2:$followup2_date
Followup Note 2:
Last Contact Date:$last_contact_date
Testimonial:$testimonial
Renewal Contact:$renewal_contact
"; $return_data['content'] .= "
\n"; $return_data['content'] .= "
\n"; // $return_data['content'] .= "Notes: - [edit]
\n"; $return_data['content'] .= "Notes:
\n"; $return_data['content'] .= ""; $return_data['content'] .= "\n"; $return_data['content'] .= "
\n"; $return_data['content'] .= "
\n"; $return_data['contacts'] = ""; $return_data['invoices'] = ""; // Get list of admin accounts $query = "SELECT * FROM users WHERE school_num = $school_num AND type = 'System Administrator' ORDER BY userid"; // $return_data['contacts'] .= "
$query

"; $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'] .= "Administrator Accounts:
"; while ($row = db_fetch_assoc($results)) { extract($row); // if ($userid == 'admin') { if ($userid == 'admin' && $password != 'admin') { $rlink = "       [Reset Admin Password]"; $return_data['contacts'] .= " - $userid / $password $rlink
"; } else $return_data['contacts'] .= " - $userid / $password
"; } } // Get contact list $query = "SELECT * FROM school_contact_list WHERE school_num = $school_num ORDER BY sequence"; // $return_data['contacts'] .= "
$query

"; $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'] .= "
$contact_name"; if (strlen($contact_email)) $return_data['contacts'] .= " - $contact_email"; $return_data['contacts'] .= "
"; if (strlen($contact_phone)) $return_data['contacts'] .= " - Phone: $contact_phone
"; if (strlen($contact_cell)) $return_data['contacts'] .= " - Cell: $contact_cell
"; } 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'] .= "

"; $return_data['contacts'] .= "Email Alias: $schoolID@$BaseURL => $alias_email"; $return_data['contacts'] .= "

"; } // 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'] .= "
"; while ($row = db_fetch_assoc($results)) { extract($row); $editLink = "[edit]"; $return_data['content'] .= "- ($record_num) $url " . "- Clean " . "$editLink ($special_item_prices)
"; } } // Get current schedules information $cutoff = date("Y-m-d", time() - 60 * 60 * 24 * 10); $results = db_query("SELECT * FROM hotlunch_schedules WHERE school_num = $school_num AND status = 'Active' AND schedule_end_date > '$cutoff' ORDER BY schedule_start_date"); $return_data['schedules'] = ''; $return_data['schedules'] .= "
"; $return_data['schedules'] = "$school_name ($school_num) " . "- [edit] " . "- [refresh] " . "- $url $sprices

"; if (db_num_rows($results)) { $return_data['schedules'] .= ""; $return_data['schedules'] .= ""; $return_data['schedules'] .= ""; $return_data['schedules'] .= ""; $return_data['schedules'] .= ""; $return_data['schedules'] .= ""; $return_data['schedules'] .= ""; $return_data['schedules'] .= ""; $return_data['schedules'] .= ""; while ($row = db_fetch_assoc($results)) { extract($row); $numOrders = db_getVal("SELECT count(*) FROM hotlunch_order_header WHERE school_num = $school_num AND schedule_num = $record_num"); $numSpecial1 = db_getVal("SELECT count(*) FROM hotlunch_order_header WHERE school_num = $school_num AND schedule_num = $record_num AND price_category = 'Special 1'"); $numSpecial2 = db_getVal("SELECT count(*) FROM hotlunch_order_header WHERE school_num = $school_num AND schedule_num = $record_num AND price_category = 'Special 2'"); $numSpecial3 = db_getVal("SELECT count(*) FROM hotlunch_order_header WHERE school_num = $school_num AND schedule_num = $record_num AND price_category = 'Special 3'"); $return_data['schedules'] .= ""; $return_data['schedules'] .= ""; $return_data['schedules'] .= ""; $return_data['schedules'] .= ""; $return_data['schedules'] .= ""; $return_data['schedules'] .= ""; $return_data['schedules'] .= ""; $return_data['schedules'] .= ""; } $return_data['schedules'] .= "
".getLanguageText('TEXT-TITLE')."".getLanguageText('TEXT-STATUS')."".getLanguageText('TEXT-ORDERS')."$Special1_Title$Special2_Title$Special3_Title
$schedule_name$status$numOrders$numSpecial1$numSpecial2$numSpecial3
"; } // Get any invoices info $return_data['invoices'] .= "
"; $return_data['invoices'] = "$school_name ($school_num) " . "- [edit] " . "- [refresh] " . "- $url $sprices

"; $return_data['invoices'] .= "

"; $query = "SELECT * FROM invoice_header WHERE school_num = $school_num ORDER BY invoice_date DESC"; // $return_data['invoices'] .= "$query

"; $results = db_query($query); if (db_num_rows($results)) { $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; 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"; $inv_num = sprintf("%06d-HL",$record_num + 500); $file_name = str_replace("/","-",$school_name); $inv_file = normalizeString($inv_num . "." . $file_name . ".pdf"); $invlink = ''; if (is_file("invoices/$inv_file")) $invlink = "[view] "; $pay = ""; if ($status == 'Open') { $pay = "[]"; $pay = "[]"; $pay .= "[ezs]"; } else { $yesterday = date("Y-m-d",time() - 60 * 60 * 24); if ($payment_date >= $yesterday) $pay .= "[ezs]"; } $send = "[send]"; $balance = number_format($total - $amount_paid,2); $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; $return_data['invoices'] .= ""; } $return_data['invoices'] .= "
YEARNUMDATESTATUSTOTALPAIDBALANCEMETHOD
$school_year#$invnum$invoice_date$status$currencySymbol$total$currencySymbol$amount_paid$currencySymbol$balance$payment_method[edit] $invlink [print] $pay $send
"; } $return_data['invoices'] .= " [Add Invoice]"; $return_data['content'] .= "
"; $return_data['content'] .= "[Add Site]"; $return_data['content'] .= "    "; $return_data['content'] .= "[Send Notification]"; break; case 'school-notifications': $delete_icon = ""; $return_data['content'] = "
"; $return_data['content'] .= "

Notifications:

"; $cutoff = date("Y-m-d 00:00:00", time() - 60 * 60 * 24 * 45); $query = "SELECT * FROM school_notifications WHERE notification_date > '$cutoff' ORDER BY notification_date DESC"; $results = db_query($query); if (db_num_rows($results)) { while ($row = db_fetch_assoc($results)) { extract($row); $query = "SELECT * FROM schools WHERE record_num = $school_num"; $r = db_query($query); $school = db_fetch_assoc($r); if ($school['status'] != 'Active') { db_query("DELETE FROM school_notifications WHERE record_num = $record_num"); continue; } $note = $school['notes']; $start_date = $school['start_date']; $query = "SELECT * FROM login_log WHERE school_num = $school_num AND userid = 'admin' AND last_login > '$notification_date'"; $r = db_query($query); if (db_num_rows($r) > 0) { db_query("DELETE FROM school_notifications WHERE record_num = $record_num"); continue; } $return_data['content'] .= "

$notification_date"; $return_data['content'] .= "         $delete_icon
"; $return_data['content'] .= "".$school['school_name']." ($start_date)
"; $return_data['content'] .= " - ".$school['city'].' '.$school['province'].' '.$school['country']."
"; $return_data['content'] .= " - Phone: ".$school['phone']."
"; $return_data['content'] .= "
"; if (strlen($notification_name1)) { $return_data['content'] .= " - $notification_name1
"; } if (strlen($notification_name2)) { $return_data['content'] .= " - $notification_name2
"; } if (strlen($notification_name3)) { $return_data['content'] .= " - $notification_name3
"; } $return_data['content'] .= "
"; $return_data['content'] .= "Note: $note"; $return_data['content'] .= "

"; $return_data['content'] .= "

===============================================

"; } } $return_data['content'] .= "
"; break; case 'user-info': // startLog("user-info"); if (array_key_exists('user_num', $_GET)) $user_num = intval($_GET['user_num']); if (array_key_exists('school_num', $_GET)) $school_num = intval($_GET['school_num']); writeLog("school_num: $school_num"); $reseller = false; if (array_key_exists('reseller_school', $_GET)) { $reseller = true; $school_num = intval($_GET['reseller_school']); writeLog("reseller school_num: $school_num"); } // Get user info $query = "SELECT * FROM users WHERE record_num = $user_num"; writeLog($query); $results = db_query($query); $row = db_fetch_assoc($results); extract($row); $user_type = $type; $user_num = $record_num; $user_status = $status; writeLog("name: $first_name $last_name"); writeLog("user_type: $user_type"); writeLog("school_num: $school_num"); // Get school info $query = "SELECT * FROM schools WHERE record_num = $school_num"; writeLog($query); $results = db_query($query); $row = db_fetch_assoc($results); extract($row); if (!isset($sprices)) $sprices = ''; $return_data['content'] = "$school_name ($school_num) " . "- $url $sprices
" . "$city, $province - $phone
"; $return_data['content'] .= "

" . "$userid - $first_name $last_name ($user_type)
" . "$email - $phone
" . "Last Login: $last_login
"; $return_data['content'] .= "$user_status

"; $query = "select sum(transaction_amount) as balance from user_account where school_num = $school_num and user_num = $user_num AND (deleted != 'Y' OR deleted IS NULL)"; $balance = floatval(db_getVal($query)); $return_data['content'] .= "

".getLanguageText('TEXT-ACCOUNT-BALANCE').": $".number_format($balance,2)."

"; // Get student info $query = "SELECT * FROM people WHERE school_num = $school_num AND user_num = $user_num ORDER BY last_name, first_name"; $results = db_query($query); if (db_num_rows($results)) { $return_data['content'] .= "Students:
"; while ($row = db_fetch_assoc($results)) { $return_data['content'] .= " - ".$row['first_name'].' '.$row['last_name']."
"; } } if ($_SESSION['UserInfo']['type'] == 'SuperUser') { $return_data['content'] .= "



"; } break; case 'user-account-transactions': // Get user number $user_num = intval($_GET['user_num']); // Get records $columnHeaders = array(getLanguageText('TEXT-USER-ID'), getLanguageText('TEXT-TRANSACTION-DATE'), getLanguageText('TEXT-TRANSACTION-TYPE'), getLanguageText('TEXT-CHARGES'), getLanguageText('TEXT-CREDITS'), getLanguageText('TEXT-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," . "transaction_status,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') { if (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 ($order_num > 0) { $r = db_query("SELECT * FROM hotlunch_order_header WHERE school_num = $school_num AND record_num = $order_num"); if (db_num_rows($r)) { $order = db_fetch_assoc($r); $Tip = ""; $Tip .= sprintf($otipROW2,getLanguageText('TEXT-ORDER-NUMBER') . ": ",$order_num); $Tip .= sprintf($otipROW2,getLanguageText('TEXT-ORDERED-FOR') . ": ",$order['ordered_by_type']); $Tip .= sprintf($otipROW2,getLanguageText('TEXT-SCHEDULE') . ": ",$sname); if ($order['discount_amount'] > 0) { $Tip .= sprintf($otipROW2,getLanguageText('TEXT-SUBTOTAL') . ": ",$currencySymbol . number_format($order['order_subtotal'],2)); sprintf($otipROW2,getLanguageText('TEXT-DISCOUNT') . ": ",$currencySymbol . number_format($order['discount_amount'],2)); } $Tip .= sprintf($otipROW2,getLanguageText('TEXT-ORDER-TOTAL') . ": ",$currencySymbol . number_format($order['order_total'],2)); $Tip .= sprintf($otipROW2,getLanguageText('TEXT-AMOUNT-PAID') . ": ",$currencySymbol . number_format($order['amount_paid'],2)); $Tip .= sprintf($otipROW2,getLanguageText('TEXT-STATUS') . ": ",$order['status']); $Tip .= sprintf($otipROW2,getLanguageText('TEXT-ORDER-DATE') . ": ",$order['added_date']); $Tip .= sprintf($otipROW2,getLanguageText('TEXT-SOURCE') . ": ",$order['source']); $Tip .= sprintf($otipROW2,getLanguageText('TEXT-UPDATED-DATE') . ": ",$order['updated_date']); if ($order['paid_date']) { $Tip .= sprintf($otipROW2,getLanguageText('TEXT-PAID-DATE') . ": ",$order['paid_date']); $Tip .= sprintf($otipROW2,getLanguageText('TEXT-PAYMENT-METHOD') . ": ",$order['payment_method']); } $Tip .= sprintf($otipROW2,"TRX: ",$record_num); $Tip .= sprintf($otipROW2,getLanguageText('TEXT-TRANSACTION-STATUS') . ": ",$transaction_status); $Tip .= sprintf($otipROW2,getLanguageText('TEXT-ENTERED-BY') . ": ",$order['entered_by']); $Tip .= ""; $Tip .= "
"; $transaction_type = "
$transaction_type " . "$Tip\n" . "
"; } } } if ($payment_method == 'Check') $payment_method .= " #$payment_reference"; $data[] = array($userid,$trx_date,$transaction_type,$charge,$credit,$payment_method); } writeLog("TRXs: ".count($data)); $customTableID = "account-table"; $TableWidth = 900; if (!isset($totals)) $totals = array(); $return_data['count'] = count($data); $titleText = "

 " . "

"; $return_data['content'] = $titleText . getDataCustom($data,$columnHeaders,$action,array(),'N',$columnAlign,$totals); break; case 'trx-history': // Get trx number $rnum = intval($_GET['rnum']); writeLog("rnum: $rnum\n"); $info = "
"; $info .= ""; $info .= ""; $info .= ""; $info .= ""; $info .= ""; // 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 .= ""; $info .= ""; $info .= ""; $info .= ""; $info .= ""; } } $info .= "
".getLanguageText('TEXT-TRANSACTION-TYPE')."".getLanguageText('TEXT-AMOUNT')."".getLanguageText('TEXT-SCHEDULE')."
".$row[0]."".$row[1]."".$row[2]."
".$row[3]."

"; $return_data['content'] = $info; break; case 'trx-receipt': // startLog('trx-receipt'); // Get trx number $trxNum = intval($_GET['trxnum']); writeLog("trxNum: $trxNum"); if ($trxNum == 0) { $return_data['content'] = getLanguageText('ERRORMSG-UNABLE-TO-COMPLETE-ACTION'); break; } // 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); if (db_num_rows($results)) { $return_data['content'] = getLanguageText('ERRORMSG-UNABLE-TO-COMPLETE-ACTION'); break; } $trx = db_fetch_assoc($results); $userNum = 0; if (array_key_exists('user_num', $trx)) $userNum = $trx['user_num']; writeLog("userNum: $userNum"); if ($userNum == 0) { $return_data['content'] = getLanguageText('ERRORMSG-UNABLE-TO-COMPLETE-ACTION'); break; } adjustUserAccountDetails($userNum); // Get receipt number $user_num = intval($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 = $base_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 .= ""; $trx_details .= "".translateText($type).""; $trx_details .= "$date"; $trx_details .= "".translateText($note).""; $trx_details .= "$sign$currencySymbol".number_format(abs($amt),2).""; $trx_details .= ""; } if (!isset($date)) $date = ''; // Add current trx to details $trx_details .= ""; $trx_details .= "".translateText($trx['transaction_type']).""; $trx_details .= "$date"; $trx_details .= "".translateText($trx['note']).""; $trx_details .= "- $currencySymbol".number_format(abs($trx['transaction_amount']),2).""; $trx_details .= ""; $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 = $base_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 .= ""; $trx_details .= "$pname"; $trx_details .= "$sname"; $trx_details .= "$currencySymbol".number_format($amt,2).""; $trx_details .= ""; $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 = translateText($row['note']); $amt = $row['transaction_amount']; $trx_details .= ""; $trx_details .= "$tname"; $trx_details .= "$note"; $trx_details .= "$currencySymbol".number_format($amt,2).""; $trx_details .= ""; $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'] = "
"; // School header $return_data['content'] .= "
"; $return_data['content'] .= "".$school_record['pac_name']."
"; $return_data['content'] .= $school_record['address'].", ".$school_record['city'].", ".$school_record['province']."   ".$school_record['postal']."
"; // Receipt header $return_data['content'] .= "
"; $return_data['content'] .= "
"; $return_data['content'] .= "".getLanguageText('TEXT-RECEIPT')."
"; $return_data['content'] .= "
"; $return_data['content'] .= "
"; $return_data['content'] .= "
"; // Receipt content $return_data['content'] .= "
"; $return_data['content'] .= ""; $return_data['content'] .= "
"; $return_data['content'] .= "".getLanguageText('TEXT-FOR').": $name
"; $return_data['content'] .= "
"; // $return_data['content'] .= "  # $rcptNum
"; $return_data['content'] .= " # $rcptNum
"; $return_data['content'] .= "
"; // Payment content $return_data['content'] .= "
"; $return_data['content'] .= ""; $return_data['content'] .= "
"; $return_data['content'] .= " ".getLanguageText('TEXT-PAID').":    $currencySymbol".number_format(abs($trx['transaction_amount']),2)."
"; $return_data['content'] .= "
"; $return_data['content'] .= "  $transaction_type
"; $return_data['content'] .= $transaction_time."
"; $return_data['content'] .= "
"; // Detail content if (strlen($trx_details)) { $return_data['content'] .= "
"; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= $trx_details; if ($trxTotal > -0.01 && $trxTotal < 0.01) $trxTotal = 0.00; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $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'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= "
".getLanguageText('TEXT-NAME')."".getLanguageText('TEXT-DATE')."".getLanguageText('TEXT-ITEM')."".getLanguageText('TEXT-AMOUNT')."
 $currencySymbol".number_format($trxTotal,2)."





".getLanguageText('TEXT-CURRENT-ACCT-BALANCE').": $currencySymbol".number_format($balance,2)."





"; } $printed_time = dateString('datetime',time()); $return_data['content'] .= "
"; $return_data['content'] .= "

".getLanguageText('TEXT-PRINTED').": $printed_time

"; // End content table $return_data['content'] .= "
"; 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); $userRecord = db_getVal("SELECT * FROM users where school_num = $school_num AND record_num = $user_num"); $user_info = ''; if (is_array($userRecord)) { $user_info .= $userRecord['first_name'].' '.$userRecord['last_name']."\n"; $user_info .= $userRecord['type']."\n"; } $user_info .= $user_agent; $data[] = array("$userid", $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 = $base_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 = $base_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 = $base_school_num AND record_num = $ordered_by_num"); $return_data['content'] .= ""; $return_data['content'] .= "\n"; $return_data['content'] .= "\n"; $return_data['content'] .= "\n"; $return_data['content'] .= ""; $return_data['content'] .= "\n"; $return_data['content'] .= "\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'] .= "\n"; } $order_total = $currencySymbol . number_format($order_total,2); $return_data['content'] .= "\n"; $return_data['content'] .= "
".getLanguageText("TEXT-ACTIVITY").":$order_action
".getLanguageText("TEXT-DATE").":$updated_time
".getLanguageText("TEXT-USER-ID").":$userid
 
".getLanguageText("TEXT-ORDER-NUMBER").":$order_num
".getLanguageText("TEXT-ORDERED-BY").":$student_name
".getLanguageText("TEXT-USER-ACCOUNT").":$userid
".getLanguageText("TEXT-ORDER-TOTAL").":$order_total
"; } else { $return_data['content'] = "".getLanguageText("ERRORMSG-NOT-FOUND")."

"; } break; case 'email-queue': // Get email queue parameters $sdate = $_GET['sdate']; $edate = $_GET['edate']; $columnHeaders = array(getLanguageText('TEXT-POSTED-TIME'), 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("$posted_date_time", "$status", "$email_to", "$email_subject"); } $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 = "
"; $info .= ""; $info .= ""; $info .= ""; $info .= ""; $info .= ""; $info .= ""; $info .= "
".getLanguageText('TEXT-EMAIL') .":$email_to
".getLanguageText('TEXT-EMAIL-SUBJECT') .":$email_subject
".getLanguageText('TEXT-PROCESSED-TIME') .":$sent_time
".getLanguageText('TEXT-STATUS') .":$status

".getLanguageText('TEXT-MESSAGE') .":
".nl2br($email_message)."

"; $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'] .= "
\n"; while ($row = db_fetch_assoc($people)) { extract($row); $people_num = $record_num; $uBalance = 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)"); $userBalance = round(floatval($uBalance)); $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']; if (!isset($class)) $class = ''; $userBalance = "" . $prefix . number_format(abs($userBalance),2) . ""; $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'] .= "
\n"; $return_data['content'] .= "$first_name $last_name ($people_type)"; $return_data['content'] .= "
$userBalance
"; $return_data['content'] .= "
\n"; } $return_data['content'] .= "
\n"; $return_data['content'] .= "
\n"; $return_data['content'] .= "
\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'] .= "$first_name $last_name $orderNum
"; if ($classNum > 0) $return_data['content'] .= "$class
"; $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'] .= ""; while ($row = db_fetch_assoc($menu_items)) { extract($row); $menu_item_num = $record_num; if ($item_type == 'Heading') { $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= "\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 .= "
$item_description"; // 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'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $tabIndex++; } } $return_data['content'] .= "\n"; $return_data['content'] .= "
"; $return_data['content'] .= "$item_title"; $return_data['content'] .= "
$item_title"; if ($qtyFieldFormat == 'Quantity' && $menu_item_format == 'D' || $menu_item_format == 'Q') { $return_data['content'] .= "" . "" . "" . "" . "
" . "" . "
"; } else { $checked = ""; if ($qty == 1) $checked = "checked='checked'"; $return_data['content'] .= ""; } $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= "
$symbol" . number_format($item_price,2) . "$lineTotal
" . getLanguageText('TEXT-TOTAL') . "$symbol" . number_format($orderTotal,2) . "
\n"; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= ""; $return_data['content'] .= "$order_num"; } 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 = $base_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 = $base_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 = "
"; $content .= ""; $content .= ""; $content .= ""; $content .= ""; $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 .= ""; $content .= ""; $content .= ""; $content .= ""; } $content .= "
" . getLanguageText('TEXT-NAME') . "" . $GlobalText['Class'] . "
$first_name $last_name"; $content .= ""; $content .= "
"; $return_data['content'] = $content; } break; case 'load-email-reminders-log': // startLog("load-email-reminders-log"); if (array_key_exists('school_num',$_GET) && $_SESSION['UserInfo']['type'] == 'SuperUser') $school_num = intval($_GET['school_num']); writeLog("school_num: $school_num"); // Setup format $columnHeaders = array(getLanguageText('TEXT-DATE'), getLanguageText('TEXT-SCHEDULES'), getLanguageText('TEXT-USERS'), getLanguageText('TEXT-EMAILS-SENT'), ); $columnAlign = array('left','center','center','center','center'); $commands = array(); $commands[] = "$view_icon_small"; $query = "SELECT * FROM email_reminders_log WHERE school_num = $school_num ORDER BY reminder_date,send_start ASC"; writeLog($query); $logs = db_query($query); writeLog("Num records: ".db_num_rows($logs)); if (db_num_rows($logs)) { $data = array(); while ($row = db_fetch_assoc($logs)) { extract($row); $data[] = array($reminder_date, $num_schedules, $num_users, $num_emails, "record_num" => $record_num); } if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 750; $return_data['content'] = getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,array()); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'load-email-reminders-log-detail': // startLog("load-email-reminders-log-detail"); if (array_key_exists('school_num',$_GET) && $_SESSION['UserInfo']['type'] == 'SuperUser') $school_num = intval($_GET['school_num']); writeLog("school_num: $school_num"); if (array_key_exists('log_num',$_GET)) $log_num = intval($_GET['log_num']); writeLog("log_num: $log_num"); // Setup format $columnHeaders = array(getLanguageText('TEXT-USERID'), getLanguageText('TEXT-EMAIL'), getLanguageText('TEXT-TIME'), ); $columnAlign = array('left','left','left'); $commands = array(); $commands[] = "$view_icon_small"; $results = db_query("SELECT * FROM email_reminders_log WHERE school_num = $school_num AND record_num = $log_num"); if (db_num_rows($results)) { $query = "SELECT * FROM email_reminders_log_detail WHERE school_num = $school_num AND log_num = $log_num ORDER BY userid,time_sent ASC"; writeLog($query); $logs = db_query($query); writeLog("Num records: ".db_num_rows($logs)); if (db_num_rows($logs)) { $data = array(); while ($row = db_fetch_assoc($logs)) { extract($row); $msg = "
" . nl2br(str_replace("'",""",$email_message)) . "
"; $userid .= ""; $data[] = array($userid, $email_address, $time_sent, "record_num" => $record_num); } if (isset($table_id) && strlen($table_id)) $customTableID = $table_id; $TableWidth = 750; $return_data['content'] = "

".getLanguageText('TEXT-DATE').": $reminder_date

"; $return_data['content'] .= getDataCustom($data,$columnHeaders,$action,$commands,'N',$columnAlign,array()); } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } } else { $return_data['content'] = "

--- ".getLanguageText('ERRORMSG-NO-RECORDS')." ---

"; } break; case 'load-image-list': if ($userType != 'Admin') return; $content = ""; $image_path = "files/$subpath/image"; if (is_dir($image_path)) { $imagedir = opendir($image_path); $file_names = array(); while ($file = readdir($imagedir)) { if ($file == ".") continue; if ($file == "..") continue; $file_names[] = $file; } } if (count($file_names)) { sort($file_names); $class = 'data-odd'; $content .= ""; for ($i = 0; $i < count($file_names); $i++) { $fname = db_escape_string($file_names[$i]); if ($class == 'data-odd') $class = 'data-even'; else $class = 'data-odd'; $content .= "" . "\n"; } $content .= "
$fname".getLanguageText('TEXT-DELETE')."
"; $return_data['content'] = $content; } else { $return_data['content'] = "

--- ".getLanguageText('TEXT-NO-IMAGES-FOUND')." ---

"; } break; case 'load-image-gallery': // startLog('load-image-gallery'); if ($userType != 'Admin') return; $content = ""; $image_path = "files/$subpath/image"; writeLog("image_path: $image_path"); if (is_dir($image_path)) { $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.jpeg") !== 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 = "
"; for ($r = 0; $r < $rows; $r++) { $content .= ""; for ($c = 0; $c < $columns; $c++) { $content .= ""; } $content .= ""; } $content .= "
"; if ($img < count($file_names)) { $thumbnail = $file_names[$img]; $image = str_replace("-tn.",".",$thumbnail); writeLog("image_path: $image_path"); writeLog("image: $image"); $content .= ""; $img++; } else $content .= " "; $content .= "
"; } $return_data['content'] = $content; break; } $return_data['content'] .= $localContent; // writeLog("".$return_data['content']."\n"); writeLog("complete\n"); echo(json_encode($return_data)); ?>