0) { // $titles .= "," . $priceGroups[$i][2] . "," . getLanguageText('TEXT-PRICE') . "," . getLanguageText('TEXT-REVENUE') . ","; $titles[] = $priceGroups[$i][2]; $titles[] = getLanguageText('TEXT-PRICE'); $titles[] = getLanguageText('TEXT-REVENUE'); $pricingGroups[] = array($source,$cat,$priceGroups[$i][3]); } } $titles[] = getLanguageText('TEXT-QUANTITY'); $titles[] = getLanguageText('TEXT-COST'); $titles[] = getLanguageText('TEXT-NET'); $titles[] = getLanguageText('TEXT-PROFIT'); // Get set of menu dates to process $menu_dates = db_query("SELECT * FROM hotlunch_menu_dates WHERE school_num = $school_num AND schedule_num = $schedule_num ORDER BY sequence,menu_date"); while ($row = db_fetch_array($menu_dates)) { $selected_menu_num = $row['record_num']; // Get set of menu items for this date $query = "SELECT hlmi.*,hlmd.menu_title,hlmd.sequence AS menu_sequence,hlmd.menu_date " . "FROM hotlunch_menu_items as hlmi, hotlunch_menu_dates as hlmd " . "WHERE hlmi.school_num = $school_num " . "AND hlmi.menu_num IN ($selected_menu_num) " . "AND hlmi.menu_num = hlmd.record_num " . "AND item_type = 'Item' " . "ORDER BY menu_sequence,menu_date,sequence"; $results = db_query($query); if (db_num_rows($results) == 0) continue; $menu_items = array(); $count = 0; $total_revenue = 0; $total_profit = 0; $total_cost = 0; while ($row = db_fetch_array($results)) { extract($row); $menu_items[$count]['menu_title'] = $menu_title; $menu_items[$count]['menu_date'] = $menu_date; $menu_items[$count]['title'] = $item_title; $menu_items[$count]['online_price'] = $online_price; $menu_items[$count]['offline_price'] = $offline_price; $menu_items[$count]['special_price1'] = $special_price1; $menu_items[$count]['special_price2'] = $special_price2; $menu_items[$count]['special_price3'] = $special_price3; $menu_items[$count]['menu_num'] = $menu_num; $menu_items[$count]['num'] = $record_num; $count++; } // Output the menu title and dates // $line = $menu_items[0]['menu_title']; if ($hotlunch_schedule['schedule_type'] == 'Hot Lunch' || $hotlunch_schedule['schedule_type'] == 'Date Sensitive' || $hotlunch_schedule['display_menu_date'] == 'Y') { $line .= " - " . date($school_record['date_format'],strtotime($menu_items[0]['menu_date'])); } fputcsv($output,array($line)); fputcsv($output,$titles); // // Output the menu items titles // for ($i = 0; $i < count($menu_items); $i++) { $menu_item_num = $menu_items[$i]['num']; $menu_num = $menu_items[$i]['menu_num']; $line = array(); $net_revenue = 0; $item_qty = 0; // Print the item title $value = $menu_items[$i]['title']; $line[] = $value; // Process each price group for ($j = 0; $j < count($pricingGroups); $j++) { $source = $pricingGroups[$j][0]; $cat = $pricingGroups[$j][1]; $pfield = $pricingGroups[$j][2]; $catwhere = "and hloh.price_category = '$cat' "; if ($source == 'Paper') $catwhere = ""; // Lookup the quantity of each item ordered $query = "select sum(qty) as total from hotlunch_order_items AS hloi, hotlunch_order_header AS hloh " . "where hloi.school_num = $school_num " . "and hloh.school_num = $school_num " . "and hloi.schedule_num = $schedule_num " . "and hloh.schedule_num = $schedule_num " . "and hloi.order_num = hloh.record_num " . "and hloi.menu_item_num = $menu_item_num " . "and hloh.source = '$source' " . "and hloh.status IN ('Unpaid','Paid') " . $catwhere . "and hloi.active != 'N'"; $qty = floatval(db_getVal($query)); $line[] = number_format($qty,0); // Print the item price $line[] = $currencySymbol . number_format($menu_items[$i][$pfield],2); // Calculate net price $item_qty += $qty; $item_revenue = $qty * $menu_items[$i][$pfield]; $net_revenue += $qty * $menu_items[$i][$pfield]; $line[] = $currencySymbol . number_format($item_revenue,2); $total_revenue += $net_revenue; } // Get the cost of each item $query = "SELECT sum(package_cost / package_qty) " . "FROM supplier_products AS sp,hotlunch_menu_products AS hlp " . "WHERE hlp.school_num = $school_num " . "AND sp.school_num = $supplier_school_num " . "AND hlp.menu_item_num = $menu_item_num " . "AND hlp.supplier_product_num = sp.record_num"; $cost = floatval(db_getVal($query)); $cost = round(100 * $cost) / 100; $line[] = $item_qty; $line[] = $currencySymbol . number_format($cost,2); // Calculate net cost $net_cost = $item_qty * $cost; // $net_cost = getSupplierCosts($schedule_num,$menu_num,$menu_item_num); $line[] = $currencySymbol . number_format($net_cost,2); // Calculate profit $profit = $net_revenue - $net_cost; $line[] = $currencySymbol . number_format($profit,2); $total_profit += $profit; $total_cost += $net_cost; fputcsv($output,$line); } $query = "UPDATE hotlunch_menu_dates SET order_revenue = $total_revenue, supplier_costs = $total_cost, net_revenue = $profit " . "WHERE school_num = $school_num AND record_num = $selected_menu_num"; db_query($query); $line = array(getLanguageText('TEXT-TOTALS'),'','',$currencySymbol . number_format($total_revenue,2),'','','',$currencySymbol . number_format($total_profit,2)); fputcsv($output,$line); fputcsv($output,array()); } fclose($output); ?>