Added print document options in inquiries.
[fa-stable.git] / sales / inquiry / sales_orders_view.php
1 <?php
2
3 $page_security = 2;
4 $path_to_root="../..";
5 include($path_to_root . "/includes/session.inc");
6
7 include($path_to_root . "/sales/includes/sales_ui.inc");
8 include_once($path_to_root . "/reporting/includes/reporting.inc");
9
10 $js = "";
11 if ($use_popup_windows)
12         $js .= get_js_open_window(900, 600);
13 if ($use_date_picker)
14         $js .= get_js_date_picker();
15
16 if (isset($_GET['OutstandingOnly']) && ($_GET['OutstandingOnly'] == true))
17 {
18         $_POST['order_view_mode'] = 'OutstandingOnly';
19         $_SESSION['page_title'] = _("Search Outstanding Sales Orders");
20 }
21 elseif (isset($_GET['InvoiceTemplates']) && ($_GET['InvoiceTemplates'] == true))
22 {
23         $_POST['order_view_mode'] = 'InvoiceTemplates';
24         $_SESSION['page_title'] = _("Search Template for Invoicing");
25 }
26 elseif (isset($_GET['DeliveryTemplates']) && ($_GET['DeliveryTemplates'] == true))
27 {
28         $_POST['order_view_mode'] = 'DeliveryTemplates';
29         $_SESSION['page_title'] = _("Select Template for Delivery");
30 }
31 elseif (!isset($_POST['order_view_mode']))
32 {
33         $_POST['order_view_mode'] = false;
34         $_SESSION['page_title'] = _("Search All Sales Orders");
35 }
36
37 page($_SESSION['page_title'], false, false, "", $js);
38
39 if (isset($_GET['selected_customer']))
40 {
41         $selected_customer = $_GET['selected_customer'];
42 }
43 elseif (isset($_POST['selected_customer']))
44 {
45         $selected_customer = $_POST['selected_customer'];
46 }
47 else
48         $selected_customer = -1;
49
50 //-----------------------------------------------------------------------------------
51 /*
52 $action = $_SERVER['PHP_SELF'];
53
54 if ($_POST['order_view_mode']=='OutstandingOnly')
55 {
56         $action .= "?OutstandingOnly=" . $_POST['order_view_mode']$_PO;
57 }
58 elseif ($_POST['order_view_mode']=='InvoiceTemplates')
59 {
60         $action .= "?InvoiceTemplates=" . $_POST['InvoiceTemplates'];
61 }
62 elseif ($_POST['order_view_mode']=='DeliveryTemplates')
63 {
64         $action .= "?DeliveryTemplates=" . $_POST['InvoiceTemplates'];
65 }
66 */
67 start_form(false, false, $_SERVER['PHP_SELF'] .SID);
68
69 start_table("class='tablestyle_noborder'");
70 start_row();
71 ref_cells(_("#:"), 'OrderNumber');
72 if ($_POST['order_view_mode'] != 'DeliveryTemplates' && $_POST['order_view_mode'] != 'InvoiceTemplates')
73 {
74         date_cells(_("from:"), 'OrdersAfterDate', null, -30);
75         date_cells(_("to:"), 'OrdersToDate', null, 1);
76 }
77 locations_list_cells(_("Location:"), 'StockLocation', null, true);
78
79 stock_items_list_cells(_("Item:"), 'SelectStockFromList', null, true);
80
81 submit_cells('SearchOrders', _("Search"));
82
83 hidden('order_view_mode', $_POST['order_view_mode']);
84
85 end_row();
86
87 end_table();
88 end_form();
89
90 //---------------------------------------------------------------------------------------------
91
92 if (isset($_POST['SelectStockFromList']) && ($_POST['SelectStockFromList'] != "") &&
93         ($_POST['SelectStockFromList'] != reserved_words::get_all()))
94 {
95         $selected_stock_item = $_POST['SelectStockFromList'];
96 }
97 else
98 {
99         unset($selected_stock_item);
100 }
101
102 //---------------------------------------------------------------------------------------------
103 if (isset($_POST['ChangeTmpl']) && $_POST['ChangeTmpl'] != 0)
104 {
105         $sql = "UPDATE ".TB_PREF."sales_orders SET type = !type WHERE order_no=".$_POST['ChangeTmpl'];
106
107         db_query($sql, "Can't change sales order type");
108 }
109 //---------------------------------------------------------------------------------------------
110
111 $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,
112         ".TB_PREF."sales_orders.ord_date, ".TB_PREF."sales_orders.deliver_to, ".TB_PREF."sales_orders.delivery_date,
113         ".TB_PREF."sales_orders.type, ";
114 $sql .= " Sum(".TB_PREF."sales_order_details.qty_sent) AS TotDelivered, ";
115 $sql .= " Sum(".TB_PREF."sales_order_details.quantity) AS TotQuantity, ";
116 $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, ";
117
118 //if ($_POST['order_view_mode']=='InvoiceTemplates' || $_POST['order_view_mode']=='DeliveryTemplates')
119   $sql .= TB_PREF."sales_orders.comments, ";
120 //else
121   $sql .= TB_PREF."sales_orders.customer_ref";
122
123 $sql .= " FROM ".TB_PREF."sales_orders, ".TB_PREF."sales_order_details, ".TB_PREF."debtors_master, ".TB_PREF."cust_branch
124                 WHERE ".TB_PREF."sales_orders.order_no = ".TB_PREF."sales_order_details.order_no
125                         AND ".TB_PREF."sales_orders.debtor_no = ".TB_PREF."debtors_master.debtor_no
126                         AND ".TB_PREF."sales_orders.branch_code = ".TB_PREF."cust_branch.branch_code
127                         AND ".TB_PREF."debtors_master.debtor_no = ".TB_PREF."cust_branch.debtor_no ";
128
129 //figure out the sql required from the inputs available
130 if (isset($_POST['OrderNumber']) && $_POST['OrderNumber'] != "")
131 {
132         $sql .= " AND ".TB_PREF."sales_orders.order_no LIKE '%". $_POST['OrderNumber'] ."' GROUP BY ".TB_PREF."sales_orders.order_no";
133 }
134 else
135 {
136         if ($_POST['order_view_mode']!='DeliveryTemplates' && $_POST['order_view_mode']!='InvoiceTemplates')
137         {
138                 $date_after = date2sql($_POST['OrdersAfterDate']);
139                 $date_before = date2sql($_POST['OrdersToDate']);
140
141                 $sql .= " AND ".TB_PREF."sales_orders.ord_date >= '$date_after'";
142                 $sql .= " AND ".TB_PREF."sales_orders.ord_date <= '$date_before'";
143         }
144         if ($selected_customer != -1)
145                 $sql .= " AND ".TB_PREF."sales_orders.debtor_no='" . $selected_customer . "'";
146
147         if (isset($selected_stock_item))
148                 $sql .= " AND ".TB_PREF."sales_order_details.stk_code='". $selected_stock_item ."'";
149
150         if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != reserved_words::get_all())
151                 $sql .= " AND ".TB_PREF."sales_orders.from_stk_loc = '". $_POST['StockLocation'] . "' ";
152
153         if ($_POST['order_view_mode']=='OutstandingOnly')
154                 $sql .= " AND ".TB_PREF."sales_order_details.qty_sent < ".TB_PREF."sales_order_details.quantity";
155         elseif ($_POST['order_view_mode']=='InvoiceTemplates' || $_POST['order_view_mode']=='DeliveryTemplates')
156                 $sql .= " AND ".TB_PREF."sales_orders.type=1";
157
158         $sql .= " GROUP BY ".TB_PREF."sales_orders.order_no, ".TB_PREF."sales_orders.debtor_no, ".TB_PREF."sales_orders.branch_code,
159                 ".TB_PREF."sales_orders.customer_ref, ".TB_PREF."sales_orders.ord_date, ".TB_PREF."sales_orders.deliver_to";
160
161 } //end not order number selected
162
163 $result = db_query($sql,"No orders were returned");
164
165 //-----------------------------------------------------------------------------------
166
167 if ($result)
168 {
169         print_hidden_script(30);
170
171         /*show a table of the orders returned by the sql */
172
173         start_table("$table_style colspan=6 width=95%");
174         $th = array(_("Order #"), _("Customer"), _("Branch"), _("Cust Order #"), _("Order Date"),
175                 _("Required By"), _("Delivery To"), _("Order Total"), _("Currency"), _("Tmpl"),"", "");
176
177         if($_POST['order_view_mode']=='InvoiceTemplates' || $_POST['order_view_mode']=='DeliveryTemplates')
178         {
179                 $th[3] = _('Description');
180         }
181
182         table_header($th);
183         start_form();
184
185         $j = 1;
186         $k = 0; //row colour counter
187         $overdue_items = false;
188         while ($myrow = db_fetch($result))
189         {
190
191                 $view_page = get_customer_trans_view_str(systypes::sales_order(), $myrow["order_no"]);
192                 $formated_del_date = sql2date($myrow["delivery_date"]);
193                 $formated_order_date = sql2date($myrow["ord_date"]);
194 //          $not_closed =  $myrow['type'] && ($myrow["TotDelivered"] < $myrow["TotQuantity"]);
195
196         // if overdue orders, then highlight as so
197         if ($myrow['type'] == 0 && date1_greater_date2(Today(), $formated_del_date))
198         {
199                  start_row("class='overduebg'");
200                  $overdue_items = true;
201         }
202         else
203         {
204                         alt_table_row_color($k);
205         }
206
207                 label_cell($view_page);
208                 label_cell($myrow["name"]);
209                 label_cell($myrow["br_name"]);
210                 if($_POST['order_view_mode']=='InvoiceTemplates' || $_POST['order_view_mode']=='DeliveryTemplates')
211                         label_cell($myrow["comments"]);
212                 else
213                         label_cell($myrow["customer_ref"]);
214                 label_cell($formated_order_date);
215                 label_cell($formated_del_date);
216                 label_cell($myrow["deliver_to"]);
217                 amount_cell($myrow["OrderValue"]);
218                 label_cell($myrow["curr_code"]);
219                 if ($_POST['order_view_mode']=='OutstandingOnly'/* || $not_closed*/)
220                 {
221                 $delivery_note = $path_to_root . "/sales/customer_delivery.php?" . SID . "OrderNumber=" .$myrow["order_no"];
222                 label_cell("<a href='$delivery_note'>" . _("Dispatch") . "</a>");
223                 }
224                 elseif ($_POST['order_view_mode']=='InvoiceTemplates')
225                 {
226                 $select_order= $path_to_root . "/sales/sales_order_entry.php?" . SID . "NewInvoice=" .$myrow["order_no"];
227                 label_cell("<a href='$select_order'>" . _("Invoice") . "</a>");
228                 }
229                 elseif ($_POST['order_view_mode']=='DeliveryTemplates')
230                 {
231                         $select_order= $path_to_root . "/sales/sales_order_entry.php?" . SID . "NewDelivery=" .$myrow["order_no"];
232                 label_cell("<a href='$select_order'>" . _("Delivery") . "</a>");
233                 }
234                 else
235                 {
236                         echo "<td><input ".($myrow["type"]==1 ? 'checked' : '')." type='checkbox' name='chgtpl" .$myrow["order_no"]. "' value='1'
237                                 onclick='forms[1].ChangeTmpl.value= this.name.substr(6);
238                                 this.form.submit();' ></td>";
239
240                         $modify_page = $path_to_root . "/sales/sales_order_entry.php?" . SID . "ModifyOrderNumber=" . $myrow["order_no"];
241                         label_cell("<a href='$modify_page'>" . _("Edit") . "</a>");
242                         label_cell(print_document_link($myrow['order_no'], _("Print")));
243                 }
244                 end_row();;
245
246                 $j++;
247                 If ($j == 12)
248                 {
249                         $j = 1;
250                         table_header($th);
251                 }
252                 //end of page full new headings if
253         }
254         //end of while loop
255         hidden('ChangeTmpl', 0);
256         end_form();
257         end_table();
258
259    if ($overdue_items)
260                 display_note(_("Marked items are overdue."), 0, 1, "class='overduefg'");
261 }
262
263 echo "<br>";
264
265 end_page();
266 ?>