BuildInsert($entry); // writeLog($query); db_query($query); $newDays++; } } $processing_time += 24 * 60 * 60; $processing_date = date("Y-m-d",$processing_time); } $return_data['ajax_message'] = getLanguageText('TEXT-MENU-DATES-CREATED') . ": $newDays"; break; case 'sort-menus-by-date': $query = "SELECT * FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num ORDER BY menu_type,menu_date"; $results = db_query($query); $sequence = 1; while ($row = db_fetch_assoc($results)) { $rnum = $row['record_num']; db_query("UPDATE hotlunch_menu_dates SET sequence = $sequence WHERE record_num = $rnum"); $sequence++; } break; case 'set-all-menus-to-checkboxes': $query = "UPDATE hotlunch_menu_dates " . "SET order_format = 'Checkbox' " . "WHERE school_num = $school_num " . "AND schedule_num = $schedule_num"; writeLog($query); db_query($query); $query = "UPDATE hotlunch_menu_items " . "SET menu_item_format = 'C' " . "WHERE school_num = $school_num " . "AND item_type = 'Item' " . "AND menu_num IN " . "(SELECT record_num FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num)"; writeLog($query); db_query($query); $return_data['reload_data'] = 'N'; break; case 'set-all-menus-to-quantity': $query = "UPDATE hotlunch_menu_dates " . "SET order_format = 'Quantity' " . "WHERE school_num = $school_num " . "AND schedule_num = $schedule_num"; writeLog($query); db_query($query); $query = "UPDATE hotlunch_menu_items " . "SET menu_item_format = 'Q' " . "WHERE school_num = $school_num " . "AND item_type = 'Item' " . "AND menu_num IN " . "(SELECT record_num FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num)"; writeLog($query); db_query($query); $return_data['reload_data'] = 'N'; break; case 'modify-menu-links': if (array_key_exists('new_menu_link', $_GET)) $new_link = db_escape_string($_GET['new_menu_link']); if (isset($new_link)) { switch ($new_link) { case 'Admin': case 'Paper': case 'All': case 'No': $query = "UPDATE hotlunch_menu_dates SET menu_link = '$new_link' " . "WHERE school_num = $school_num " . "AND schedule_num = $schedule_num " . "AND menu_link != 'No'"; db_query($query); break; } } else { $return_data['error_message'] = getLanguageText('ERRORMSG-INVALID-PARAMETERS'); $return_data['ajax_return_code'] = -1; } break; case 'change-menu-link': if (array_key_exists('menu_num', $_GET)) $menu_num = intval($_GET['menu_num']); if (array_key_exists('new_menu_link', $_GET)) $new_link = db_escape_string($_GET['new_menu_link']); if (isset($new_link)) { switch ($new_link) { case 'Admin': case 'Paper': case 'All': case 'No': $query = "UPDATE hotlunch_menu_dates SET menu_link = '$new_link' " . "WHERE school_num = $school_num " . "AND schedule_num = $schedule_num " . "AND record_num = $menu_num " . "AND menu_link != 'No'"; db_query($query); break; } } break; case 'copy-menu': $copy_menu_title = 'Y'; 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']); if (array_key_exists('menu_dates', $_GET)) $menu_dates = $_GET['menu_dates']; if (array_key_exists('copy_menu_title', $_GET)) $copy_menu_title = $_GET['copy_menu_title']; if (!isset($menu_dates) || !is_array($menu_dates) || count($menu_dates) == 0 || !isset($menu_num) || intval($menu_num) == 0) { $return_data['error_message'] = getLanguageText('ERRORMSG-NO-DATES-SELECTED'); $return_data['ajax_return_code'] = -1; echo(json_encode($return_data)); logExit($return_data['error_message']); exit(); } // startLog("copy-menu"); // writeLog("copy_menu_title: $copy_menu_title"); // writeLog("schedule_num: $schedule_num"); // Get source menu record $source = db_getVal("SELECT * FROM hotlunch_menu_dates WHERE school_num = $school_num AND record_num = $menu_num"); if (!is_array($source)) { $return_data['error_message'] = getLanguageText('ERRORMSG-INVALID-MENU'); $return_data['ajax_return_code'] = -1; echo(json_encode($return_data)); logExit($return_data['error_message']); exit(); } $source_schedule_num = $source['schedule_num']; // writeLog("source_schedule_num: $source_schedule_num"); if ($source_schedule_num != $schedule_num) $copy_menu_title = 'Y'; // Get menu items and products for the source menu $sourceItems = array(); $sourceProducts = array(); $sourceClasses = array(); $sourceItemClasses = array(); // Get source menu items $query = "SELECT * FROM hotlunch_menu_items WHERE school_num = $school_num AND menu_num = $menu_num ORDER BY sequence"; $items = db_query($query); while ($row = db_fetch_assoc($items)) { $sourceItems[] = $row; $menu_item_num = $row['record_num']; // Get products for this item $query = "SELECT * FROM hotlunch_menu_products " . "WHERE school_num = $school_num " . "AND menu_item_num = $menu_item_num " . "ORDER BY product_sequence"; $products = db_query($query); $itemProducts = array(); while ($row = db_fetch_assoc($products)) { $itemProducts[] = $row; } $sourceProducts[$menu_item_num] = $itemProducts; // Get classes for this menu item $query = "SELECT * FROM hotlunch_menu_items_classes " . "WHERE school_num = $school_num " . "AND menu_num = $menu_num " . "AND menu_item_num = $menu_item_num"; $classes = db_query($query); $itemClasses = array(); while ($row = db_fetch_assoc($classes)) { $itemClasses[] = $row; } $sourceItemClasses[$menu_item_num] = $itemClasses; } // Get classes for the source menu date $query = "SELECT * FROM hotlunch_menu_dates_classes WHERE school_num = $school_num AND menu_num = $menu_num"; $classes = db_query($query); while ($row = db_fetch_assoc($classes)) { $sourceClasses[] = $row; } $hotlunch_menu_dates = new Table('hotlunch_menu_dates'); $hotlunch_menu_items = new Table('hotlunch_menu_items'); $hotlunch_menu_products = new Table('hotlunch_menu_products'); $hotlunch_menu_dates_classes = new Table('hotlunch_menu_dates_classes'); $hotlunch_menu_items_classes = new Table('hotlunch_menu_items_classes'); for ($i = 0; $i < count($menu_dates); $i++) { $curr_menu_num = $menu_dates[$i]; // writeLog("$i curr_menu_num: $curr_menu_num"); $query = "SELECT * FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num AND record_num = $curr_menu_num"; $current_menu_record = db_getVal($query); // Delete any current menu items for this menu $query = "DELETE FROM hotlunch_menu_products " . "WHERE school_num = $school_num " . "AND menu_item_num IN (SELECT record_num FROM hotlunch_menu_items WHERE school_num = $school_num AND menu_num = $curr_menu_num)"; // writeLog($query); db_query($query); $query = "DELETE FROM hotlunch_menu_items WHERE school_num = $school_num AND menu_num = $curr_menu_num"; // writeLog($query); db_query($query); // Create menu_date entry $entry = $current_menu_record; // writeLog("copy_menu_title: $copy_menu_title"); // writeLog("menu_title: ".$current_menu_record['menu_title']); $entry['record_num'] = $curr_menu_num; $entry['schedule_num'] = $schedule_num; if (isset($copy_menu_title) && $copy_menu_title == 'Y') $entry['menu_title'] = $source['menu_title']; $entry['menu_date'] = $current_menu_record['menu_date']; $entry['sequence'] = $current_menu_record['sequence']; $menu_end_order_datetime = $current_menu_record['menu_end_order_datetime']; if ($menu_end_order_datetime == '0000-00-00 00:00:00') $menu_end_order_datetime = $current_menu_record['menu_date'] . " 06:00:00"; $entry['menu_end_order_datetime'] = $menu_end_order_datetime; $entry['menu_link'] = $menu_link; $entry['source_menu'] = $menu_num; $entry['order_revenue'] = 0.00; $entry['other_revenue'] = 0.00; $entry['supplier_costs'] = 0.00; $entry['other_costs'] = 0.00; $entry['net_revenue'] = 0.00; $entry['record_num'] = $current_menu_record['record_num']; $query = $hotlunch_menu_dates->BuildUpdate($entry); // writeLog($query); db_query($query); $new_menu_num = $current_menu_record['record_num']; // Save the menu items for the new menu for ($j = 0; $j < count($sourceItems); $j++) { $row = $sourceItems[$j]; $row['menu_num'] = $new_menu_num; $row['source_item'] = $row['record_num']; // writeLog("source_item: ".$row['source_item']); $original_item_num = $row['record_num']; $query = $hotlunch_menu_items->BuildInsert($row); // writeLog($query); db_query($query); $new_item_num = db_insert_id(); // Save the menu item products for the new menu item $itemProducts = $sourceProducts[$original_item_num]; for ($m = 0; $m < count($itemProducts); $m++) { $row = $itemProducts[$m]; $row['menu_item_num'] = $new_item_num; $query = $hotlunch_menu_products->BuildInsert($row); // writeLog($query); db_query($query); } // Save menu item classes $itemClasses = $sourceItemClasses[$original_item_num]; for ($m = 0; $m < count($itemClasses); $m++) { $row = $itemClasses[$m]; $row['schedule_num'] = $schedule_num; $row['menu_num'] = $new_menu_num; $row['menu_item_num'] = $new_item_num; $query = $hotlunch_menu_items_classes->BuildInsert($row); // writeLog($query); db_query($query); } } // Save menu date classes for ($j = 0; $j < count($sourceClasses); $j++) { $row = $sourceClasses[$j]; $row['schedule_num'] = $schedule_num; $row['menu_num'] = $new_menu_num; $query = $hotlunch_menu_dates_classes->BuildInsert($row); // writeLog($query); db_query($query); } } $return_data['ajax_message'] = getLanguageText('TEXT-MENU-DATES-COPIED') . ": " . count($menu_dates); break; } echo(json_encode($return_data)); writeLog("completed\n");