*** empty log message ***
[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
9 $js = "";
10 if ($use_popup_windows)
11         $js .= get_js_open_window(900, 600);
12
13 if (isset($_GET['OutstandingOnly']) && ($_GET['OutstandingOnly'] == true)) 
14 {
15         $_POST['OutstandingOnly'] = true;
16         page(_("Search Outstanding Sales Orders"), false, false, "", $js);
17
18 else 
19 {
20         $_POST['OutstandingOnly'] = false;
21         page(_("Search All Sales Orders"), false, false, "", $js);
22 }
23
24 if (isset($_GET['selected_customer']))
25 {
26         $selected_customer = $_GET['selected_customer'];
27
28 elseif (isset($_POST['selected_customer']))
29 {
30         $selected_customer = $_POST['selected_customer'];
31 }
32 else
33         $selected_customer = -1;
34         
35 //-----------------------------------------------------------------------------------
36
37 start_form(false, false, $_SERVER['PHP_SELF'] ."?OutstandingOnly=" . $_POST['OutstandingOnly'] .SID);
38
39 start_table("class='tablestyle_noborder'");
40 start_row();
41 ref_cells(_("#:"), 'OrderNumber');
42 date_cells(_("from:"), 'OrdersAfterDate', null, -30);
43 date_cells(_("to:"), 'OrdersToDate', null, 1);
44
45 locations_list_cells(_("Location:"), 'StockLocation', null, true);
46
47 stock_items_list_cells(_("Item:"), 'SelectStockFromList', null, true);
48
49 submit_cells('SearchOrders', _("Search"));
50
51 hidden('OutstandingOnly', $_POST['OutstandingOnly']);
52
53 end_row();
54
55 end_table();
56 end_form();
57
58 //---------------------------------------------------------------------------------------------
59
60 if (isset($_POST['SelectStockFromList']) && ($_POST['SelectStockFromList'] != "") &&
61         ($_POST['SelectStockFromList'] != reserved_words::get_all()))
62 {
63         $selected_stock_item = $_POST['SelectStockFromList'];
64
65 else 
66 {
67         unset($selected_stock_item);
68 }
69
70 //---------------------------------------------------------------------------------------------
71
72 $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,
73         ".TB_PREF."sales_orders.customer_ref, ".TB_PREF."sales_orders.ord_date, ".TB_PREF."sales_orders.deliver_to, ".TB_PREF."sales_orders.delivery_date, ";
74 $sql .= " Sum(".TB_PREF."sales_order_details.qty_invoiced) AS TotInvoiced, ";
75 $sql .= " Sum(".TB_PREF."sales_order_details.quantity) AS TotQuantity, ";
76
77 $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
78         FROM ".TB_PREF."sales_orders, ".TB_PREF."sales_order_details, ".TB_PREF."debtors_master, ".TB_PREF."cust_branch
79                 WHERE ".TB_PREF."sales_orders.order_no = ".TB_PREF."sales_order_details.order_no
80                         AND ".TB_PREF."sales_orders.debtor_no = ".TB_PREF."debtors_master.debtor_no
81                         AND ".TB_PREF."sales_orders.branch_code = ".TB_PREF."cust_branch.branch_code
82                         AND ".TB_PREF."debtors_master.debtor_no = ".TB_PREF."cust_branch.debtor_no ";
83
84 //figure out the sql required from the inputs available
85 if (isset($_POST['OrderNumber']) && $_POST['OrderNumber'] != "") 
86 {
87         $sql .= " AND ".TB_PREF."sales_orders.order_no LIKE '%". $_POST['OrderNumber'] ."' GROUP BY ".TB_PREF."sales_orders.order_no";
88
89 else 
90 {
91
92         $date_after = date2sql($_POST['OrdersAfterDate']);
93         $date_before = date2sql($_POST['OrdersToDate']);
94
95         $sql .= " AND ".TB_PREF."sales_orders.ord_date >= '$date_after'";
96         $sql .= " AND ".TB_PREF."sales_orders.ord_date <= '$date_before'";
97
98         if ($selected_customer != -1)
99                 $sql .= " AND ".TB_PREF."sales_orders.debtor_no='" . $selected_customer . "'";
100
101         if (isset($selected_stock_item))
102                 $sql .= " AND ".TB_PREF."sales_order_details.stk_code='". $selected_stock_item ."'";
103
104         if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != reserved_words::get_all())
105                 $sql .= " AND ".TB_PREF."sales_orders.from_stk_loc = '". $_POST['StockLocation'] . "' ";
106
107         if ($_POST['OutstandingOnly'] == true)
108                 $sql .= " AND ".TB_PREF."sales_order_details.qty_invoiced < ".TB_PREF."sales_order_details.quantity";
109
110         $sql .= " GROUP BY ".TB_PREF."sales_orders.order_no, ".TB_PREF."sales_orders.debtor_no, ".TB_PREF."sales_orders.branch_code,
111                 ".TB_PREF."sales_orders.customer_ref, ".TB_PREF."sales_orders.ord_date, ".TB_PREF."sales_orders.deliver_to";
112
113 } //end not order number selected
114
115 $result = db_query($sql,"No orders were returned");
116
117 //-----------------------------------------------------------------------------------
118
119 if ($result) 
120 {
121
122         /*show a table of the orders returned by the sql */
123
124         start_table("$table_style colspan=6 width=95%");
125         $th = array(_("Order #"), _("Customer"), _("Branch"), _("Cust Order #"), _("Order Date"),
126                 _("Required By"), _("Delivery To"), _("Order Total"), _("Currency"), "", "");
127         table_header($th);
128
129         $j = 1;
130         $k = 0; //row colour counter
131         $overdue_items = false;
132         while ($myrow = db_fetch($result)) 
133         {
134
135                 $view_page = get_customer_trans_view_str(systypes::sales_order(), $myrow["order_no"]);
136                 $formated_del_date = sql2date($myrow["delivery_date"]);
137                 $formated_order_date = sql2date($myrow["ord_date"]);
138
139         // if overdue orders, then highlight as so
140         if (date1_greater_date2(Today(), $formated_del_date))
141         {
142                  start_row("class='overduebg'");
143                  $overdue_items = true;
144         } 
145         else 
146         {
147                         alt_table_row_color($k);
148         }
149
150                 label_cell($view_page);
151                 label_cell($myrow["name"]);
152                 label_cell($myrow["br_name"]);
153                 label_cell($myrow["customer_ref"]);
154                 label_cell($formated_order_date);
155                 label_cell($formated_del_date);
156                 label_cell($myrow["deliver_to"]);
157                 amount_cell($myrow["OrderValue"]);
158                 label_cell($myrow["curr_code"]);
159
160                 if ($_POST['OutstandingOnly'] == true || $myrow["TotInvoiced"] < $myrow["TotQuantity"]) 
161                 {
162                 $modify_page = $path_to_root . "/sales/sales_order_entry.php?" . SID . "ModifyOrderNumber=" . $myrow["order_no"];
163                 $issue_invoice = $path_to_root . "/sales/customer_invoice.php?" . SID . "OrderNumber=" .$myrow["order_no"];
164
165                 label_cell("<a href='$modify_page'>" . _("Edit") . "</a>");
166                 label_cell("<a href='$issue_invoice'>" . _("Invoice") . "</a>");
167                 }
168                 else
169                 {
170                 label_cell("");
171                 label_cell("");
172                 }
173                 end_row();;
174
175                 $j++;
176                 If ($j == 12)
177                 {
178                         $j = 1;
179                         table_header($th);
180                 }
181                 //end of page full new headings if
182         }
183         //end of while loop
184
185         end_table();
186
187    if ($overdue_items)
188                 display_note(_("Marked items are overdue."), 0, 1, "class='overduefg'");
189 }
190
191 echo "<br>";
192
193 end_page();
194 ?>
195