0) { $num_orders_found++; $processResults[] = array($current_name,getLanguageText('TEXT-ORDER-FOUND'),$currencySymbol.'0.00'); continue; } // 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; while ($menu_date = db_fetch_array($menu_dates)) { $menu_num = $menu_date['record_num']; $menu_code = $schedule_num . "_" . $menu_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 active != 'N' " . "order by sequence"; $menu_items = db_query($query); $order_num = 0; while ($menu_item = db_fetch_array($menu_items)) { $menu_item_num = $menu_item['record_num']; $options = trim($menu_item['options']); $options2 = trim($menu_item['options2']); $options3 = trim($menu_item['options3']); $taxable_item = $menu_item['taxable_item']; $curr_code = $schedule_num . "_" . $menu_num . "_" . $menu_item_num; $qty = $_POST["qty_$curr_code"]; $price = $_POST["price_$curr_code"]; $price = str_replace(".","",$menu_item['online_price']); 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("/[\"'%/()\.,\?\!:-]/","",$option_f); $opt_name = "option_$curr_code" . "_$option_f"; if (array_key_exists($opt_name, $_POST) && $_POST[$opt_name] == 'Y') $options_ordered .= "$option\n"; } } // 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("/[\"'%/()\.,\?\!:-]/","",$option_f); $opt_name = "option2_$curr_code" . "_$option_f"; if (array_key_exists($opt_name, $_POST) && $_POST[$opt_name] == 'Y') $options2_ordered .= "$option\n"; } } // 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("/[\"'%/()\.,\?\!:-]/","",$option_f); $opt_name = "option3_$curr_code" . "_$option_f"; if (array_key_exists($opt_name, $_POST) && $_POST[$opt_name] == 'Y') $options3_ordered .= "$option\n"; } } // Calculate the extended price and save the data $extended_price = intval($qty * $price) / 100; $active = 'Y'; $menu_item_price = $price; $query = $hotlunch_order_items->BuildInsert(); db_query($query); $num_items++; } } } // Get order total $query = "select sum(qty) as num, sum(extended_price) as order_subtotal " . "from hotlunch_order_items " . "where school_num = $school_num " . "and ordered_by_num = $ordered_by_num " . "and schedule_num = $schedule_num " . "and active != 'N'"; $results = db_query($query); $row = db_fetch_array($results); $number_items = $row['num']; $order_subtotal = $row['order_subtotal']; $ordertotal = $order_subtotal; $order_total = $order_subtotal; $processResults[] = array($current_name,getLanguageText('TEXT-ORDER-SAVED'),$currencySymbol.$order_total); $num_orders_generated++; if (!isset($discount_amount)) $discount_amount = 0; if (!isset($source) || strlen($source) == 0) $source = 'On-Line'; // Handle any discounts $today = date("Y-m-d",time()); if ($ordered_by_type != 'Concession' && $source == 'On-Line' && isset($hotlunch_schedule['discount_offered']) && $hotlunch_schedule['discount_offered'] > 0 && $hotlunch_schedule['discount_expiry_date'] >= $today) { $discount_offered = $hotlunch_schedule['discount_offered']; $discount_type = $hotlunch_schedule['discount_type']; $discount_order_minimum = $hotlunch_schedule['discount_order_minimum']; if ($order_total >= $discount_order_minimum) { if ($discount_type == 'Amount') { $discount_amount = $discount_offered; } else { $discount_amount = $order_subtotal * $discount_offered / 100; } } } // Apply the discount amount $order_total = $order_subtotal - $discount_amount; // Calculate any taxes $tax_charge_amount = 0; if ($hotlunch_schedule['tax_rate'] > 0.00) { $tax_rate = $hotlunch_schedule['tax_rate']; $tax_description = $hotlunch_schedule['tax_description']; switch($school_record['taxable_items']) { case 'All': $taxable_total = $order_total; break; case 'Some': $query = "select sum(extended_price) " . "from hotlunch_order_items " . "where school_num = $school_num " . "and ordered_by_num = $ordered_by_num " . "and schedule_num = $schedule_num " . "and active != 'N' " . "and taxable_item = 'Y'"; $taxable_total = db_getVal($query); break; case 'None': $taxable_total = 0; break; } $tax_charge_amount = round($tax_rate * $taxable_total / 100,2); } // Create an order header record if required $added_time = time(); $added_date = date("Y-m-d",$added_time); $updated_date = $added_date; $amount_paid = 0; // Create new order header on insert $entered_by = $_SESSION['UserInfo']['record_num']; $status = $school_record['default_order_status']; $query = $hotlunch_order_header->BuildInsert(); db_query($query); $order_num = db_insert_id(); // Update hotlunch_order_items with order_num $query = "update hotlunch_order_items " . "set order_num = $order_num, " . "active = 'Y' " . "where school_num = $school_num " . "and ordered_by_num = $ordered_by_num " . "and schedule_num = $schedule_num " . "and order_num in (0,$order_num)"; db_query($query); $datetime = date("Y-m-d H:i:s",time()); $entered_time = time(); $current_name = str_replace("'",""",$current_name); // Create user_account entry for current order $query = "INSERT INTO user_account (school_num,user_num,schedule_num,order_num,people_num,transaction_datetime,transaction_type,note,transaction_amount,deleted,entered_time,transaction_status) " . "VALUES ($school_num,$user_num,$schedule_num,$order_num,$ordered_by_num,'$datetime','Order','Order for $current_name',$order_total,'N',$entered_time,'Open')"; db_query($query); // Delete any incorrect entries for this order $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'"; db_query($query); // Create late charge entry if required if ($late_charge_amount > 0) { // Determine if there is already a late charge for this order $results = db_query("SELECT * FROM user_account WHERE school_num = $school_num AND user_num = $user_num AND order_num = $order_num AND transaction_type = 'Late Charge' AND deleted = 'N'"); if (db_num_rows($results) == 0) { $datetime = date("Y-m-d H:i:s",time()); $entered_time = time(); $entered_user_num = intval($_SESSION['UserInfo']['record_num']); $query = "INSERT INTO user_account (school_num,user_num,schedule_num,order_num,people_num,transaction_datetime,transaction_type,note,transaction_amount," . "deleted,entered_time,entered_by_user_num) " . "VALUES ($school_num,$user_num,$schedule_num,$order_num,$ordered_by_num,'$datetime','Late Charge','Order Entered $today',$late_charge_amount," . "'N',$entered_time,$entered_user_num)"; db_query($query); } } // Create tax charge entry if required if ($tax_charge_amount > 0) { // Determine if there is already a tax charge for this order $results = db_query("SELECT * FROM user_account WHERE school_num = $school_num AND user_num = $user_num AND order_num = $order_num AND transaction_type = 'Tax Charge' AND deleted = 'N'"); $tdescription = db_escape_string($tax_description) . ' - Order (#' . $order_num . ')'; if (db_num_rows($results) == 0) { $datetime = date("Y-m-d H:i:s",time()); $entered_time = time(); $entered_user_num = intval($_SESSION['UserInfo']['record_num']); $query = "INSERT INTO user_account (school_num,user_num,schedule_num,order_num,people_num,transaction_datetime,transaction_type,note,transaction_amount," . "deleted,entered_time,entered_by_user_num) " . "VALUES ($school_num,$user_num,$schedule_num,$order_num,$ordered_by_num,'$datetime','Tax Charge','$tdescription',$tax_charge_amount," . "'N',$entered_time,$entered_user_num)"; db_query($query); } else { db_query("UPDATE user_account SET transaction_amount = $tax_charge_amount,note = '$tdescription' " . "WHERE school_num = $school_num AND user_num = $user_num AND order_num = $order_num AND transaction_type = 'Tax Charge' AND deleted = 'N'"); } } // Create additional order fee entry if required $additional_charge = $hotlunch_schedule['additional_charge']; $additional_charge_message = db_escape_string($hotlunch_schedule['additional_charge_message']); if ($additional_charge > 0) { // Determine if there is already an additional order fee for this order $results = db_query("SELECT * FROM user_account WHERE school_num = $school_num AND user_num = $user_num AND order_num = $order_num AND transaction_type = 'Additional Order Fee' AND deleted = 'N'"); if (db_num_rows($results) == 0) { $datetime = date("Y-m-d H:i:s",time()); $entered_time = time(); $entered_user_num = intval($_SESSION['UserInfo']['record_num']); $query = "INSERT INTO user_account (school_num,user_num,schedule_num,order_num,people_num,transaction_datetime,transaction_type,note,transaction_amount," . "deleted,entered_time,entered_by_user_num) " . "VALUES ($school_num,$user_num,$schedule_num,$order_num,$ordered_by_num,'$datetime','Additional Order Fee','$additional_charge_message',$additional_charge," . "'N',$entered_time,$entered_user_num)"; db_query($query); } } // Send parent an email if required if (isset($user_num) && $user_num > 0) { $email_message = trim($hotlunch_schedule['email_message']); if (strlen($email_message) > 0) { // Get parent record $results = db_query("SELECT * FROM users WHERE school_num = $base_school_num AND record_num = $user_num"); $parent = db_fetch_array($results); // Get account balance $balance = db_getVal("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)"); if (strlen($parent['email']) > 0) { include_once("include/queuemail.php"); $emailRecipient = $parent['userid']; $emailTo = $parent['email']; $emailReply = $school_record['reply_description']; $emailFrom = setReplyAddress($school_record['reply_email']); $emailSubject = $school_record['school_name'] . " " . getLanguageText('TEXT-ORDER-DETAILS'); $sign = ""; if ($balance < 0) $sign = "-"; $emailMessage = getLanguageText('TEXT-ORDER-DETAILS') . ":\n" . " - " . $current_name . "\n" . " - " . getLanguageText('TEXT-ORDER-TOTAL') . ": $currencySymbol" . number_format($ordertotal,2) . "\n" . " - " . getLanguageText('TEXT-ACCOUNT-BALANCE') . ": $sign$currencySymbol" . number_format(abs($balance),2) . "\n\n" . $email_message; // Send the email QueueEmail($emailTo, $emailFrom, $emailSubject, $emailMessage, $emailReply, $emailRecipient); } } } } } // Display page include "hotlunch_reports.menu.php"; include "hotlunch_orders.options.php"; echo("
\n"); include "form.messages.php"; $columnHeaders = array(getLanguageText('TEXT-STUDENT-NAME'), getLanguageText('TEXT-RESULT'), getLanguageText('TEXT-AMOUNT') ); $columnAlign = array('left','center','right'); $TableWidth = 450; listDataCustom($processResults,$columnHeaders,'',array(),'N',$columnAlign); echo("
\n"); $data = array(); $data[] = array(getLanguageText('TEXT-ORDER-FOUND'),$num_orders_found); $data[] = array(getLanguageText('TEXT-ORDER-SAVED'),$num_orders_generated); $columnHeaders = array(getLanguageText('TEXT-RESULT'), getLanguageText('TEXT-NUMBER') ); $columnAlign = array('left','center'); $TableWidth = 450; listDataCustom($data,$columnHeaders,'',array(),'N',$columnAlign); echo("\n"); ?>