0 && isset($new_first_name) && strlen($new_first_name) > 0 && isset($new_last_name) && strlen($new_last_name) > 0) { unset($userid); writeLog("create new student\n"); // Default people type $people_type = 'Student'; // Default user type $type = 'Parent'; // Handle Guest Accounts // if ((!isset($new_parent_first_name) && !isset($new_parent_last_name) && $school_record['registrations_permitted'] == 'Guest') || ($school_record['registrations_permitted'] == 'Both' && $new_class_num == 1)) { // $new_parent_first_name = $new_first_name; // $new_parent_last_name = $new_last_name; // $people_type = 'Customer'; // $type = 'Guest'; // } // Create new user record if (!isset($existing_user_num) || intval($existing_user_num) == 0) { writeLog("CREATE NEW USER"); $user_table = new Table("users"); unset($user_num); // Handle situation where people enter "none" as email address if (strlen($new_email) && $new_email == "none") $new_email = ""; // If an email address is provided then check to see if it is already in use if (strlen($new_email) > 0) { $results = db_query("select * from users where school_num = $base_school_num and email = '$new_email'"); if (db_num_rows($results) > 0) { $row = db_fetch_array($results); $userid = $row['userid']; $user_num = $row['record_num']; } } if (!isset($user_num) || intval($user_num) > 0) { if ($school_record['registration_userid'] == 'Email' && strlen($new_email) > 0) { $userid = $new_email; } if (!isset($userid) || strlen($userid) == 0) { if (strlen($new_parent_first_name) > 0 || strlen($new_parent_last_name) > 0) { $baseF = str_replace(" ","",trim($new_parent_first_name)); $baseL = str_replace(" ","",trim($new_parent_last_name)); $base = trim(str_replace("'","",$baseF)); if (strlen($base) || strlen($baseL)) { if (strlen($base)) $base_userid = strtolower($base) . "." . strtolower(trim(str_replace("'","",$baseL))); else $base_userid = strtolower($baseL); } $base_userid = str_replace(" ","",$base_userid); $base_userid = str_replace("..",".",$base_userid); $userid = $base_userid; $count = 1; } else { $base_userid = "school_account"; $query = "select userid from users " . "where school_num = $base_school_num " . "and userid like '$base_userid%' " . "order by userid desc limit 0,1"; $id = db_getVal($query); $count = 1; if (strlen($id) > 0) $count = intval(str_replace($base_userid,"",$id)) + 1; $userid = sprintf("%s%03d",$base_userid,$count); } // Check if the new userid is already in use $uid = db_escape_string($userid); $query = "select count(*) from users " . "where school_num = $base_school_num " . "and userid = '$uid'"; $num = db_getVal($query); while ($num > 0) { $userid = sprintf("%s%03d",$base_userid,$count); $uid = db_escape_string($userid); $query = "select count(*) from users " . "where school_num = $base_school_num " . "and userid = '$uid'"; $num = db_getVal($query); $count++; } } $password = $userid; if (strlen(trim($new_email)) > 0) $email = trim($new_email); $status = 'Active'; $added_time = date("Y-m-d H:i:s",time()); $date_added = date("Y-m-d",time()); $receive_emails = 'Y'; $email_reminders = 'N'; $first_name = trim($new_parent_first_name); $last_name = trim($new_parent_last_name); $home_phone = trim($new_phone); $can_order = 'Yes'; $balance_owing = 0; $account_balance = 0; $num_orders = 0; $has_order = 'N'; $temp_phone = preg_replace("/[^0-9]/","",$home_phone); if (strlen($temp_phone) == 10) $home_phone = "(" . substr($temp_phone,0,3) . ")" . substr($temp_phone,3,3) . "-" . substr($temp_phone,6); $entry = array(); if (isset($base_school_num)) $entry['school_num'] = $base_school_num; if (isset($userid)) $entry['userid'] = $userid; if (isset($password)) $entry['password'] = $password; if (isset($password_crypt)) $entry['password_crypt'] = $password_crypt; if (isset($change_datetime)) $entry['change_datetime'] = $change_datetime; if (isset($email)) $entry['email'] = $email; if (isset($email2)) $entry['email2'] = $email2; if (isset($email3)) $entry['email3'] = $email3; if (isset($include_email1_on_list)) $entry['include_email1_on_list'] = $include_email1_on_list; if (isset($include_email2_on_list)) $entry['include_email2_on_list'] = $include_email2_on_list; if (isset($include_email3_on_list)) $entry['include_email3_on_list'] = $include_email3_on_list; if (isset($email1_verified)) $entry['email1_verified'] = $email1_verified; if (isset($email2_verified)) $entry['email2_verified'] = $email2_verified; if (isset($email3_verified)) $entry['email3_verified'] = $email3_verified; if (isset($type)) $entry['type'] = $type; if (isset($status)) $entry['status'] = $status; if (isset($date_added)) $entry['date_added'] = $date_added; if (isset($last_login)) $entry['last_login'] = $last_login; if (isset($can_order)) $entry['can_order'] = $can_order; if (isset($has_order)) $entry['has_order'] = $has_order; if (isset($num_orders)) $entry['num_orders'] = $num_orders; if (isset($num_students)) $entry['num_students'] = $num_students; if (isset($source)) $entry['source'] = $source; if (isset($ordered)) $entry['ordered'] = $ordered; if (isset($paid)) $entry['paid'] = $paid; if (isset($balance_owing)) $entry['balance_owing'] = $balance_owing; if (isset($account_balance)) $entry['account_balance'] = $account_balance; if (isset($trx_status)) $entry['trx_status'] = $trx_status; if (isset($posted_date)) $entry['posted_date'] = $posted_date; if (isset($receive_emails)) $entry['receive_emails'] = $receive_emails; if (isset($email_reminders)) $entry['email_reminders'] = $email_reminders; if (isset($email_flag)) $entry['email_flag'] = $email_flag; if (isset($available_to_volunteer)) $entry['available_to_volunteer'] = $available_to_volunteer; if (isset($class_parent)) $entry['class_parent'] = $class_parent; if (isset($school_directory)) $entry['school_directory'] = $school_directory; if (isset($email_list)) $entry['email_list'] = $email_list; if (isset($language)) $entry['language'] = $language; if (isset($first_name)) $entry['first_name'] = $first_name; if (isset($last_name)) $entry['last_name'] = $last_name; if (isset($first_name2)) $entry['first_name2'] = $first_name2; if (isset($last_name2)) $entry['last_name2'] = $last_name2; if (isset($home_phone)) $entry['home_phone'] = $home_phone; if (isset($daytime_phone)) $entry['daytime_phone'] = $daytime_phone; if (isset($cell_phone)) $entry['cell_phone'] = $cell_phone; if (isset($address)) $entry['address'] = $address; if (isset($city)) $entry['city'] = $city; if (isset($province)) $entry['province'] = $province; if (isset($postal)) $entry['postal'] = $postal; if (isset($additional1)) $entry['additional1'] = $additional1; if (isset($additional2)) $entry['additional2'] = $additional2; if (isset($bank_account_holder)) $entry['bank_account_holder'] = $bank_account_holder; if (isset($institution_number)) $entry['institution_number'] = $institution_number; if (isset($branch_number)) $entry['branch_number'] = $branch_number; if (isset($account_number)) $entry['account_number'] = $account_number; if (isset($bambora_payment_profile_id)) $entry['bambora_payment_profile_id'] = $bambora_payment_profile_id; if (isset($supplier_num)) $entry['supplier_num'] = $supplier_num; if (isset($added_time)) $entry['added_time'] = $added_time; if (isset($user_ip)) $entry['user_ip'] = $user_ip; if (isset($enable_translation)) $entry['enable_translation'] = $enable_translation; if (isset($linked_to_student)) $entry['linked_to_student'] = $linked_to_student; if (isset($linked_to_num)) $entry['linked_to_num'] = $linked_to_num; if (isset($linked_to_type)) $entry['linked_to_type'] = $linked_to_type; if (isset($linked_id)) $entry['linked_id'] = $linked_id; if (isset($linked_time)) $entry['linked_time'] = $linked_time; if (isset($user_notes)) $entry['user_notes'] = $user_notes; $query = $user_table->BuildInsert($entry); writeLog("USER QUERY: $query"); db_query($query); $user_num = db_insert_id(); // // Send verification email to account // if ($school_record['status'] != 'Special' && ($source == 'On-line' || $school_record['send_registation_email_with_paper_orders'] == 'Y')) { if ($_SESSION['UserInfo']['type'] != 'SuperUser' && isset($email) && strlen($email) > 0) { include_once "include/queuemail.php"; $emailRecipient = "$first_name $last_name"; $emailTo = strtolower($email); $emailReply = $school_record['reply_description']; $emailFrom = setReplyAddress($school_record['support_email'],"notifications"); $emailSubject = $school_record['school_name'] . " Registration"; $schoolURL = $school_record['url']; $emailMessage = str_replace("\r","",trim(db_getVal("SELECT text_data FROM text_data WHERE school_num = $school_num AND text_id = 'Registration Message'"))) . "\n\n" . sprintf("%20s: %s\n",getLanguageText('TEXT-WEB-ADDRESS'),"http://$schoolURL") . sprintf("%20s: %s\n",getLanguageText('TEXT-USER-ID'),$userid) . "\n"; if ($hotlunch_schedule['notification_order_details'] == 'Y') { $emailMessage .= $orderItemsText . "\n\n\n"; } QueueEmail($emailTo, $emailFrom, $emailSubject, $emailMessage, $emailReply, $emailRecipient); } } // Create new contact record $contact_table = new Table("contacts"); $contact_type = 'Primary'; $first_name = trim($new_parent_first_name); $last_name = trim($new_parent_last_name); if ($display_contact_info == 'Y') { $home_email = $new_email; $home_phone = $new_phone; } else { unset($home_phone); } $query = $contact_table->BuildInsert(); db_query($query); } } else { $user_num = intval($existing_user_num); $results = db_query("select * from users where school_num = $base_school_num and record_num = $user_num"); $row = db_fetch_array($results); $userid = $row['userid']; $record_num = $row['record_num']; // Update parent info if required $first_name = trim($new_parent_first_name); $last_name = trim($new_parent_last_name); if (strlen(trim($new_email)) > 0) $email = trim($new_email); $temp_phone = preg_replace("/[^0-9]/","",trim($new_phone)); if (strlen($temp_phone) == 10) $home_phone = "(" . substr($temp_phone,0,3) . ")" . substr($temp_phone,3,3) . "-" . substr($temp_phone,6); if (isset($first_name) && $first_name != $row['first_name']) db_query("UPDATE users SET first_name = '" . db_escape_string($first_name) . "' WHERE record_num = $record_num"); if (isset($last_name) && $last_name != $row['last_name']) db_query("UPDATE users SET last_name = '" . db_escape_string($last_name) . "' WHERE record_num = $record_num"); if (isset($email) && $email != $row['email']) db_query("UPDATE users SET email = '" . db_escape_string($email) . "' WHERE record_num = $record_num"); if (isset($home_phone) && $home_phone != $row['home_phone']) db_query("UPDATE users SET home_phone = '" . db_escape_string($home_phone) . "' WHERE record_num = $record_num"); } // Create new student record $people_table = new Table("people"); $first_name = $new_first_name; $last_name = $new_last_name; if (isset($new_teacher_num)) $teacher_num = intval($new_teacher_num); $class_num = 0; if (isset($new_class_num)) $class_num = intval($new_class_num); $meal_location = $class_num; $status = 'Verified'; $display = 'Y'; $active = 'Y'; $added_date = date("Y-m-d",time()); $verified_date = $added_date; $menu_price_category = 'Regular'; $numClasses = db_getVal("SELECT count(*) FROM classes WHERE school_num = $base_school_num"); if ($numClasses == 0) $class_num = 1; $meal_location = $class_num; unset($birthdate); if ($school_record['collect_student_birthdate'] == 'Y') $birth_date = $birth_year . "-" . $birth_month . "-" . $birth_day; $entry = array(); if (isset($base_school_num)) $entry['school_num'] = $base_school_num; if (isset($user_num)) $entry['user_num'] = $user_num; if (isset($title)) $entry['title'] = $title; if (isset($first_name)) $entry['first_name'] = $first_name; if (isset($last_name)) $entry['last_name'] = $last_name; if (isset($email)) $entry['email'] = $email; if (isset($label_note)) $entry['label_note'] = $label_note; if (isset($birthdate)) $entry['birthdate'] = $birthdate; if (isset($age)) $entry['age'] = $age; if (isset($sex)) $entry['sex'] = $sex; if (isset($school_grade)) $entry['school_grade'] = $school_grade; if (isset($student_number)) $entry['student_number'] = $student_number; if (isset($additional_permission)) $entry['additional_permission'] = $additional_permission; if (isset($additional_permission_note)) $entry['additional_permission_note'] = $additional_permission_note; if (isset($people_type)) $entry['people_type'] = $people_type; if (isset($staff_category)) $entry['staff_category'] = $staff_category; if (isset($staff_description)) $entry['staff_description'] = $staff_description; if (isset($class_num)) $entry['class_num'] = $class_num; if (isset($delivery_class_num)) $entry['delivery_class_num'] = $delivery_class_num; if (isset($meal_location)) $entry['meal_location'] = $meal_location; if (isset($status)) $entry['status'] = $status; if (isset($display)) $entry['display'] = $display; if (isset($active)) $entry['active'] = $active; if (isset($menu_price_category)) $entry['menu_price_category'] = $menu_price_category; if (isset($access_to_multiple_item_prices)) $entry['access_to_multiple_item_prices'] = $access_to_multiple_item_prices; if (isset($diet_requests)) $entry['diet_requests'] = $diet_requests; if (isset($cust_address)) $entry['cust_address'] = $cust_address; if (isset($cust_city)) $entry['cust_city'] = $cust_city; if (isset($cust_province)) $entry['cust_province'] = $cust_province; if (isset($cust_country)) $entry['cust_country'] = $cust_country; if (isset($cust_postal)) $entry['cust_postal'] = $cust_postal; if (isset($cust_phone)) $entry['cust_phone'] = $cust_phone; if (isset($cust_email)) $entry['cust_email'] = $cust_email; if (isset($customer_of_person)) $entry['customer_of_person'] = $customer_of_person; if (isset($added_date)) $entry['added_date'] = $added_date; if (isset($customer_code)) $entry['customer_code'] = $customer_code; if (isset($user_defined_value)) $entry['user_defined_value'] = $user_defined_value; if (isset($user_defined_value2)) $entry['user_defined_value2'] = $user_defined_value2; if (isset($user_defined_value3)) $entry['user_defined_value3'] = $user_defined_value3; if (isset($user_defined_value4)) $entry['user_defined_value4'] = $user_defined_value4; if (isset($user_defined_value5)) $entry['user_defined_value5'] = $user_defined_value5; if (isset($user_defined_value6)) $entry['user_defined_value6'] = $user_defined_value6; if (isset($user_defined_value7)) $entry['user_defined_value7'] = $user_defined_value7; if (isset($user_defined_value8)) $entry['user_defined_value8'] = $user_defined_value8; if (isset($user_defined_value9)) $entry['user_defined_value9'] = $user_defined_value9; if (isset($user_defined_value10)) $entry['user_defined_value10'] = $user_defined_value10; if (isset($notes)) $entry['notes'] = $notes; if (isset($num_allergies)) $entry['num_allergies'] = $num_allergies; $query = $people_table->BuildInsert($entry); db_query($query); $ordered_by_num = db_insert_id(); $ordered_by_type = 'Student'; } else { // Set current variables if (isset($student_num)) writeLog("student_num: $student_num"); if (isset($ordered_by_num)) writeLog("ordered_by_num: $ordered_by_num"); if (isset($student_num) && !isset($ordered_by_num) && $student_num > 0) { $ordered_by_num = $student_num; if (!isset($ordered_by_type) || $ordered_by_type == '') $ordered_by_type = db_getVal("SELECT people_type FROM people WHERE school_num = $base_school_num AND record_num = $ordered_by_num"); } } if ($ordered_by_type != 'Concession') { if (isset($ordered_by_num) && $ordered_by_num > 0) { $ordered_by_type = db_getVal("SELECT people_type FROM people WHERE school_num = $base_school_num AND record_num = $ordered_by_num"); } if (!isset($ordered_by_num) || $ordered_by_num == 0) { $error_message = getLanguageText('ERRORMSG-NO-USER-OR-NO-ITEMS'); include "form.messages.php"; return; } $uresults = db_query("select * from people where school_num = $base_school_num and record_num = $ordered_by_num"); if (db_num_rows($uresults) == 0) { $error_message = getLanguageText('ERRORMSG-NO-USER-OR-NO-ITEMS'); include "form.messages.php"; return; } } $school_num = $school_record['record_num']; // Check if this person has an order for this schedule unset($onum); if ($hotlunch_schedule['schedule_type'] == 'Hot Lunch' || $hotlunch_schedule['allow_multiple_orders'] != 'Y') { $query = "select * from hotlunch_order_header " . "where school_num = $school_num " . "and ordered_by_num = $ordered_by_num " . "and schedule_num = $schedule_num " . "order by record_num desc limit 0,1"; writeLog("query: $query\n"); $results = db_query($query); if (db_num_rows($results) > 0) { $oh = db_fetch_array($results); $onum = $oh['record_num']; $ostatus = $oh['status']; writeLog("Order found - onum: $onum\n"); } } // Handle existing orders with an order_num parameter if (isset($order_num) && $order_num > 0) { $query = "select * from hotlunch_order_header " . "where school_num = $school_num " . "and ordered_by_num = $ordered_by_num " . "and schedule_num = $schedule_num " . "and record_num = $order_num"; $results = db_query($query); if (db_num_rows($results)) { $oh = db_fetch_array($results); $onum = $oh['record_num']; $ostatus = $oh['status']; writeLog("Existing order found - onum: $onum\n"); } } if (!isset($ostatus)) $ostatus = $school_record['default_order_status']; $owhere = ""; if (isset($onum) && $onum > 0) { $owhere = " and order_num = $onum "; // Save order items if order status is Paid if ($ostatus == 'Paid') { db_query("DELETE FROM hotlunch_order_items_save WHERE school_num = $school_num AND order_num = $onum"); db_query("INSERT INTO hotlunch_order_items_save SELECT * FROM hotlunch_order_items WHERE school_num = $school_num AND order_num = $onum"); } } // Delete any existing hotlunch_order_items entries for this student and schedule if (isset($onum) && $onum > 0 && ($naction == 'update' || $paction == 'edit')) { $query = "select * from hotlunch_order_items " . "where school_num = $school_num " . "and schedule_num = $schedule_num " . "and ordered_by_num = $ordered_by_num " . $owhere; writeLog("query: $query\n"); $items = db_query($query); writeLog("Num Items: ".db_num_rows($items)); while ($row = db_fetch_assoc($items)) { $rnum = $row['record_num']; $query = "DELETE FROM hotlunch_order_items WHERE school_num = $school_num AND record_num = $rnum"; writeLog($query); db_query("DELETE FROM hotlunch_order_items WHERE school_num = $school_num AND record_num = $rnum"); } } if (!isset($price_category)) $price_category = 'Regular'; $hotlunch_order_items = new Table("hotlunch_order_items"); // Determine what the menu cutoff date is $today = date("Y-m-d",time()); $first_menu_date = db_getVal("SELECT min(menu_date) FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num AND menu_type = 'Regular'"); $menu_date_cutoff = date("Y-m-d",time() + ($hotlunch_schedule['days_prior_to_order_date']) * 60 * 60 * 24); writeLog("menu_date_cutoff: $menu_date_cutoff"); if (strlen($hotlunch_schedule['end_order_datetime']) && $hotlunch_schedule['end_order_datetime'] < $first_menu_date) $menu_date_cutoff = $today; writeLog("menu_date_cutoff: $menu_date_cutoff"); if (strlen($hotlunch_schedule['menu_cutoff_date']) && $hotlunch_schedule['menu_cutoff_date'] > $today) $menu_date_cutoff = $hotlunch_schedule['menu_cutoff_date']; writeLog("menu_date_cutoff: $menu_date_cutoff"); if (strlen($menu_date_cutoff) == 0) $menu_date_cutoff = date("Y-m-d",time() + ($hotlunch_schedule['days_prior_to_order_date']) * 60 * 60 * 24); writeLog("menu_date_cutoff: $menu_date_cutoff"); if ($hotlunch_schedule['schedule_type'] != 'Hot Lunch') { if (isset($first_menu_date) && is_string($first_menu_date) && strlen($first_menu_date)) $menu_date_cutoff = $first_menu_date; } $numPriorToCutoff = 0; $query = "SELECT count(*) FROM hotlunch_menu_dates " . "WHERE school_num = $school_num " . "AND schedule_num = $schedule_num " . "AND menu_type = 'Regular' " . "AND menu_date < '$menu_date_cutoff'"; writeLog("query: $query"); $numPriorToCutoff = db_getVal("SELECT count(*) FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num AND menu_type = 'Regular' AND menu_date < '$menu_date_cutoff'"); writeLog("numPriorToCutoff: $numPriorToCutoff"); // Process each menu and menu item in the schedule $query = "select * from hotlunch_menu_dates " . "where school_num = $school_num " . "and schedule_num = $schedule_num " . "order by sequence,menu_date"; $menu_dates = db_query($query); $num_items = 0; writeLog("ordered_by_type: $ordered_by_type"); if ($ordered_by_type != 'Concession') { // Get user_num for current person $uresults = db_query("select * from people where school_num = $base_school_num and record_num = $ordered_by_num"); if (db_num_rows($uresults)) { $precord = db_fetch_assoc($uresults); $user_num = $precord['user_num']; $ordered_by_first_name = $precord['first_name']; $ordered_by_last_name = $precord['last_name']; } } else { $ordered_by_num = $school_num; } while ($menu_date = db_fetch_array($menu_dates)) { $menu_num = $menu_date['record_num']; $menu_code = $schedule_num . "_" . $menu_num; $menu_date = $menu_date['menu_date']; // Check for volunteer signups if ($ordered_by_type != 'Concession' && $user_num > 0) { if (isset($_POST["volunteer_$menu_code"])) { if (array_key_exists("volunteer_$menu_code", $_POST) && $_POST["volunteer_$menu_code"] == 'Y') { $vnum = db_getVal("SELECT count(*) FROM hotlunch_volunteers WHERE school_num = $school_num AND schedule_num = $schedule_num AND menu_num = $menu_num AND user_num = $user_num AND deleted != 'Y'"); if ($vnum == 0) db_query("INSERT INTO hotlunch_volunteers (school_num, schedule_num, menu_num, user_num, people_num, deleted) " . "VALUES ($school_num,$schedule_num,$menu_num,$user_num,$ordered_by_num,'N')"); db_query("UPDATE users SET available_to_volunteer = 'Y' where school_num = $base_school_num AND record_num = $user_num"); } else { db_query("DELETE FROM hotlunch_volunteers WHERE school_num = $school_num AND schedule_num = $schedule_num AND menu_num = $menu_num AND user_num = $user_num"); } } } // Get menu items for this menu date $query = "select * from hotlunch_menu_items " . "where school_num = $school_num " . "and menu_num = $menu_num " . "and item_type = 'Item' " . "order by sequence"; $menu_items = db_query($query); $order_num = 0; if (isset($entered_order_num) && $entered_order_num > 0) $order_num = $entered_order_num; if (!isset($entered_order_num)) $entered_order_num = 0; $category_savings = 0.00; while ($menu_item = db_fetch_array($menu_items)) { $menu_item_num = $menu_item['record_num']; $options = $menu_item['options']; $options2 = $menu_item['options2']; $options3 = $menu_item['options3']; $taxable_item = $menu_item['taxable_item']; $source_item = $menu_item['source_item']; $online_price = $menu_item['online_price']; $menu_item_title = $menu_item['item_title']; $curr_code = $schedule_num . "_" . $menu_num . "_" . $menu_item_num; $qty = 0; $price = 0; if (array_key_exists("qty_$curr_code", $_POST)) $qty = $_POST["qty_$curr_code"]; if (array_key_exists("price_$curr_code", $_POST)) $price = floatval($_POST["price_$curr_code"]) * 100; if (array_key_exists("alt_prices_$curr_code", $_POST)) $price = floatval($_POST["alt_prices_$curr_code"]) * 100; if (array_key_exists("alt_prices_hidden_$curr_code", $_POST)) $price = floatval($_POST["alt_prices_hidden_$curr_code"]) * 100; writeLog("$price - $menu_item_title"); if ($qty > 0) { // Handle item options $options_ordered = ""; if (strlen($options) > 0) { $item_options = explode("\n",$options); for ($i = 0; $i < count($item_options); $i++) { $option = trim($item_options[$i]); $option_f = str_replace(" ","_",substr($option,0,30)); $option_f = str_replace("&","and",$option_f); $option_f = preg_replace("/[^a-zA-Z0-9_]/","",$option_f); $opt_name = "option_$curr_code" . "_$option_f"; if (array_key_exists($opt_name, $_POST) && $_POST[$opt_name] == 'Y') $options_ordered .= "$option\n"; } } // Check for a source item options if there are none on this item if (strlen(trim($options_ordered)) == 0 && $source_item > 0 && $numPriorToCutoff == 0) { $source_options_ordered = db_getVal("SELECT options_ordered FROM hotlunch_order_items " . "WHERE school_num = $school_num " . "AND order_num = $order_num " . "AND ordered_by_num = $ordered_by_num " . "AND schedule_num = $schedule_num " . "AND menu_item_num = $source_item"); if (strlen($source_options_ordered)) $options_ordered = $source_options_ordered; } $options_ordered = trim($options_ordered); // Handle item options2 $options2_ordered = ""; if (strlen($options2) > 0) { $item_options = explode("\n",$options2); for ($i = 0; $i < count($item_options); $i++) { $option = trim($item_options[$i]); $option_f = str_replace(" ","_",substr($option,0,30)); $option_f = str_replace("&","and",$option_f); $option_f = preg_replace("/[^a-zA-Z0-9_]/","",$option_f); $opt_name = "option2_$curr_code" . "_$option_f"; if (array_key_exists($opt_name, $_POST) && $_POST[$opt_name] == 'Y') $options2_ordered .= "$option\n"; } } // Check for a source item options if there are none on this item if (strlen(trim($options2_ordered)) == 0 && $source_item > 0 && $numPriorToCutoff == 0) { $source_options2_ordered = db_getVal("SELECT options2_ordered FROM hotlunch_order_items " . "WHERE school_num = $school_num " . "AND order_num = $order_num " . "AND ordered_by_num = $ordered_by_num " . "AND schedule_num = $schedule_num " . "AND menu_item_num = $source_item"); if (strlen($source_options2_ordered)) $options2_ordered = $source_options2_ordered; } $options2_ordered = trim($options2_ordered); // Handle item options3 $options3_ordered = ""; if (strlen($options3) > 0) { $item_options = explode("\n",$options3); for ($i = 0; $i < count($item_options); $i++) { $option = trim($item_options[$i]); $option_f = str_replace(" ","_",substr($option,0,30)); $option_f = str_replace("&","and",$option_f); $option_f = preg_replace("/[^a-zA-Z0-9_]/","",$option_f); $opt_name = "option3_$curr_code" . "_$option_f"; if (array_key_exists($opt_name, $_POST) && $_POST[$opt_name] == 'Y') $options3_ordered .= "$option\n"; } } // Check for a source item options if there are none on this item if (strlen(trim($options3_ordered)) == 0 && $source_item > 0 && $numPriorToCutoff == 0) { $source_options3_ordered = db_getVal("SELECT options3_ordered FROM hotlunch_order_items " . "WHERE school_num = $school_num " . "AND order_num = $order_num " . "AND ordered_by_num = $ordered_by_num " . "AND schedule_num = $schedule_num " . "AND menu_item_num = $source_item"); if (strlen($source_options3_ordered)) $options3_ordered = $source_options3_ordered; } $options3_ordered = trim($options3_ordered); // Calculate the extended price and save the data $price = floatval($price); $extended_price = number_format((intval($qty * $price) / 100),2); $active = 'Y'; $menu_item_price = number_format(($price / 100),2); writeLog("menu_item_price: $menu_item_price ---------------------------------"); $item_added_date = date("Y-m-d",time()); $query = $hotlunch_order_items->BuildInsert(); writeLog($query); db_query($query); $rnum = db_insert_id(); writeLog("rnum: $rnum"); $num_items++; $ititle = $menu_item_title; if (strlen($ititle) > 45) $ititle = substr($ititle,0,42) . "..."; $iprice = $school_record['currency_symbol'] . number_format(($price / 100),2); $iextended = $school_record['currency_symbol'] . $extended_price; $orderItemsText .= sprintf("%-45s %3d @ %-7s: %-12s\n",$ititle,$qty,$iprice,$iextended); // Calculate category savings // if (isset($price_category) && $price_category != 'Regular') { if ($menu_item_price < $online_price) { $full_price = $qty * $online_price; $category_savings += $full_price - $extended_price; } } } } // Check for duplicate ordered menu items $query = "SELECT school_num, schedule_num, ordered_by_num, menu_item_num, count( * ) " . "FROM hotlunch_order_items " . "WHERE school_num = $school_num " . "AND schedule_num = $schedule_num " . "AND ordered_by_num = $ordered_by_num " . "GROUP BY 1, 2, 3, 4 " . "HAVING count( * ) > 1 " . "ORDER BY 1,2,3"; writeLog("Check for Duplicates - query: $query\n"); $duplicates = db_query($query); writeLog("Duplicates Found: ".db_num_rows($duplicates)); if (db_num_rows($duplicates)) { writeLog("Duplicates found\n"); $pnum = 0; while ($row = db_fetch_assoc($duplicates)) { $menu_item_num = $row['menu_item_num']; $query = "SELECT * FROM hotlunch_order_items " . "WHERE school_num = $school_num " . "AND ordered_by_num = $ordered_by_num " . "AND menu_item_num = $menu_item_num"; $results = db_query($query); $item_num = 0; while ($row = db_fetch_assoc($results)) { if ($item_num == $row['menu_item_num']) { $rnum = $row['record_num']; db_query("DELETE FROM hotlunch_order_items WHERE record_num = $rnum"); } $item_num = $row['menu_item_num']; } } } writeLog("num_items: $num_items\n"); // If there are no order items then delete the header and any account entry if ($num_items == 0 && $ordered_by_type != 'Concession') { logOrderChange($order_num, "ORDER DELETED - NO ITEMS", "hotlunch_orders.save.php"); $query = "delete from hotlunch_order_header " . "where school_num = $school_num " . "and ordered_by_num = $ordered_by_num " . "and schedule_num = $schedule_num"; writeLog("query: $query\n"); db_query($query); $query = "delete from hotlunch_order_items " . "where school_num = $school_num " . "and ordered_by_num = $ordered_by_num " . "and schedule_num = $schedule_num"; writeLog("query: $query\n"); db_query($query); db_query("delete from user_account " . "where school_num = $school_num " . "and user_num = $user_num " . "and schedule_num = $schedule_num " . "and people_num = $ordered_by_num" . "and transaction_type = 'Order'"); calcSiblingDiscounts($user_num,$schedule_num); $order_num = 0; $error_message = getLanguageText('ERRORMSG-ORDER-HAS-NO-ITEMS-NOT-ENTERED'); echo("