5 include($path_to_root . "/includes/session.inc");
7 include($path_to_root . "/sales/includes/sales_ui.inc");
10 if ($use_popup_windows)
11 $js .= get_js_open_window(900, 600);
13 $js .= get_js_date_picker();
15 if (isset($_GET['OutstandingOnly']) && ($_GET['OutstandingOnly'] == true))
17 $_POST['OutstandingOnly'] = true;
18 page(_("Search Outstanding Sales Orders"), false, false, "", $js);
22 $_POST['OutstandingOnly'] = false;
23 page(_("Search All Sales Orders"), false, false, "", $js);
26 if (isset($_GET['selected_customer']))
28 $selected_customer = $_GET['selected_customer'];
30 elseif (isset($_POST['selected_customer']))
32 $selected_customer = $_POST['selected_customer'];
35 $selected_customer = -1;
37 //-----------------------------------------------------------------------------------
39 start_form(false, false, $_SERVER['PHP_SELF'] ."?OutstandingOnly=" . $_POST['OutstandingOnly'] .SID);
41 start_table("class='tablestyle_noborder'");
43 ref_cells(_("#:"), 'OrderNumber');
44 date_cells(_("from:"), 'OrdersAfterDate', null, -30);
45 date_cells(_("to:"), 'OrdersToDate', null, 1);
47 locations_list_cells(_("Location:"), 'StockLocation', null, true);
49 stock_items_list_cells(_("Item:"), 'SelectStockFromList', null, true);
51 submit_cells('SearchOrders', _("Search"));
53 hidden('OutstandingOnly', $_POST['OutstandingOnly']);
60 //---------------------------------------------------------------------------------------------
62 if (isset($_POST['SelectStockFromList']) && ($_POST['SelectStockFromList'] != "") &&
63 ($_POST['SelectStockFromList'] != reserved_words::get_all()))
65 $selected_stock_item = $_POST['SelectStockFromList'];
69 unset($selected_stock_item);
72 //---------------------------------------------------------------------------------------------
74 $sql = "SELECT ".TB_PREF."sales_orders.order_no, ".TB_PREF."debtors_master.curr_code, ".TB_PREF."debtors_master.name, ".TB_PREF."cust_branch.br_name,
75 ".TB_PREF."sales_orders.customer_ref, ".TB_PREF."sales_orders.ord_date, ".TB_PREF."sales_orders.deliver_to, ".TB_PREF."sales_orders.delivery_date, ";
76 $sql .= " Sum(".TB_PREF."sales_order_details.qty_invoiced) AS TotInvoiced, ";
77 $sql .= " Sum(".TB_PREF."sales_order_details.quantity) AS TotQuantity, ";
79 $sql .= " Sum(".TB_PREF."sales_order_details.unit_price*".TB_PREF."sales_order_details.quantity*(1-".TB_PREF."sales_order_details.discount_percent)) AS OrderValue
80 FROM ".TB_PREF."sales_orders, ".TB_PREF."sales_order_details, ".TB_PREF."debtors_master, ".TB_PREF."cust_branch
81 WHERE ".TB_PREF."sales_orders.order_no = ".TB_PREF."sales_order_details.order_no
82 AND ".TB_PREF."sales_orders.debtor_no = ".TB_PREF."debtors_master.debtor_no
83 AND ".TB_PREF."sales_orders.branch_code = ".TB_PREF."cust_branch.branch_code
84 AND ".TB_PREF."debtors_master.debtor_no = ".TB_PREF."cust_branch.debtor_no ";
86 //figure out the sql required from the inputs available
87 if (isset($_POST['OrderNumber']) && $_POST['OrderNumber'] != "")
89 $sql .= " AND ".TB_PREF."sales_orders.order_no LIKE '%". $_POST['OrderNumber'] ."' GROUP BY ".TB_PREF."sales_orders.order_no";
94 $date_after = date2sql($_POST['OrdersAfterDate']);
95 $date_before = date2sql($_POST['OrdersToDate']);
97 $sql .= " AND ".TB_PREF."sales_orders.ord_date >= '$date_after'";
98 $sql .= " AND ".TB_PREF."sales_orders.ord_date <= '$date_before'";
100 if ($selected_customer != -1)
101 $sql .= " AND ".TB_PREF."sales_orders.debtor_no='" . $selected_customer . "'";
103 if (isset($selected_stock_item))
104 $sql .= " AND ".TB_PREF."sales_order_details.stk_code='". $selected_stock_item ."'";
106 if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != reserved_words::get_all())
107 $sql .= " AND ".TB_PREF."sales_orders.from_stk_loc = '". $_POST['StockLocation'] . "' ";
109 if ($_POST['OutstandingOnly'] == true)
110 $sql .= " AND ".TB_PREF."sales_order_details.qty_invoiced < ".TB_PREF."sales_order_details.quantity";
112 $sql .= " GROUP BY ".TB_PREF."sales_orders.order_no, ".TB_PREF."sales_orders.debtor_no, ".TB_PREF."sales_orders.branch_code,
113 ".TB_PREF."sales_orders.customer_ref, ".TB_PREF."sales_orders.ord_date, ".TB_PREF."sales_orders.deliver_to";
115 } //end not order number selected
117 $result = db_query($sql,"No orders were returned");
119 //-----------------------------------------------------------------------------------
124 /*show a table of the orders returned by the sql */
126 start_table("$table_style colspan=6 width=95%");
127 $th = array(_("Order #"), _("Customer"), _("Branch"), _("Cust Order #"), _("Order Date"),
128 _("Required By"), _("Delivery To"), _("Order Total"), _("Currency"), "", "");
132 $k = 0; //row colour counter
133 $overdue_items = false;
134 while ($myrow = db_fetch($result))
137 $view_page = get_customer_trans_view_str(systypes::sales_order(), $myrow["order_no"]);
138 $formated_del_date = sql2date($myrow["delivery_date"]);
139 $formated_order_date = sql2date($myrow["ord_date"]);
141 // if overdue orders, then highlight as so
142 if (date1_greater_date2(Today(), $formated_del_date))
144 start_row("class='overduebg'");
145 $overdue_items = true;
149 alt_table_row_color($k);
152 label_cell($view_page);
153 label_cell($myrow["name"]);
154 label_cell($myrow["br_name"]);
155 label_cell($myrow["customer_ref"]);
156 label_cell($formated_order_date);
157 label_cell($formated_del_date);
158 label_cell($myrow["deliver_to"]);
159 amount_cell($myrow["OrderValue"]);
160 label_cell($myrow["curr_code"]);
162 if ($_POST['OutstandingOnly'] == true || $myrow["TotInvoiced"] < $myrow["TotQuantity"])
164 $modify_page = $path_to_root . "/sales/sales_order_entry.php?" . SID . "ModifyOrderNumber=" . $myrow["order_no"];
165 $issue_invoice = $path_to_root . "/sales/customer_invoice.php?" . SID . "OrderNumber=" .$myrow["order_no"];
167 label_cell("<a href='$modify_page'>" . _("Edit") . "</a>");
168 label_cell("<a href='$issue_invoice'>" . _("Invoice") . "</a>");
183 //end of page full new headings if
190 display_note(_("Marked items are overdue."), 0, 1, "class='overduefg'");