Merged changes from main CVS (up to 2.2.10)
[fa-stable.git] / sales / view / view_sales_order.php
1 <?php
2 /**********************************************************************
3     Copyright (C) FrontAccounting, LLC.
4         Released under the terms of the GNU General Public License, GPL, 
5         as published by the Free Software Foundation, either version 3 
6         of the License, or (at your option) any later version.
7     This program is distributed in the hope that it will be useful,
8     but WITHOUT ANY WARRANTY; without even the implied warranty of
9     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
10     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
11 ***********************************************************************/
12 $page_security = 'SA_SALESTRANSVIEW';
13 $path_to_root = "../..";
14 include_once($path_to_root . "/sales/includes/cart_class.inc");
15
16 include_once($path_to_root . "/includes/session.inc");
17 include_once($path_to_root . "/includes/date_functions.inc");
18
19 include_once($path_to_root . "/sales/includes/sales_ui.inc");
20 include_once($path_to_root . "/sales/includes/sales_db.inc");
21
22 $js = "";
23 if ($use_popup_windows)
24         $js .= get_js_open_window(900, 600);
25
26 if ($_GET['trans_type'] == ST_SALESQUOTE)
27 {
28         page(_($help_context = "View Sales Quotation"), true, false, "", $js);
29         display_heading(sprintf(_("Sales Quotation #%d"),$_GET['trans_no']));
30 }       
31 else
32 {
33         page(_($help_context = "View Sales Order"), true, false, "", $js);
34         display_heading(sprintf(_("Sales Order #%d"),$_GET['trans_no']));
35 }
36
37 if (isset($_SESSION['View']))
38 {
39         unset ($_SESSION['View']);
40 }
41
42 $_SESSION['View'] = new Cart($_GET['trans_type'], $_GET['trans_no'], true);
43
44 start_table(TABLESTYLE2, "width=95%", 5);
45 echo "<tr valign=top><td>";
46 display_heading2(_("Order Information"));
47 if ($_GET['trans_type'] != ST_SALESQUOTE)
48 {
49         echo "</td><td>";
50         display_heading2(_("Deliveries"));
51         echo "</td><td>";
52         display_heading2(_("Invoices/Credits"));
53 }       
54 echo "</td></tr>";
55
56 echo "<tr valign=top><td>";
57
58 start_table(TABLESTYLE, "width=95%");
59 label_row(_("Customer Name"), $_SESSION['View']->customer_name, "class='tableheader2'",
60         "colspan=3");
61 start_row();
62 label_cells(_("Customer Order Ref."), $_SESSION['View']->cust_ref, "class='tableheader2'");
63 label_cells(_("Deliver To Branch"), $_SESSION['View']->deliver_to, "class='tableheader2'");
64 end_row();
65 start_row();
66 label_cells(_("Ordered On"), $_SESSION['View']->document_date, "class='tableheader2'");
67 if ($_GET['trans_type'] == ST_SALESQUOTE)
68         label_cells(_("Valid until"), $_SESSION['View']->due_date, "class='tableheader2'");
69 else
70         label_cells(_("Requested Delivery"), $_SESSION['View']->due_date, "class='tableheader2'");
71 end_row();
72 start_row();
73 label_cells(_("Order Currency"), $_SESSION['View']->customer_currency, "class='tableheader2'");
74 label_cells(_("Deliver From Location"), $_SESSION['View']->location_name, "class='tableheader2'");
75 end_row();
76
77 label_row(_("Delivery Address"), nl2br($_SESSION['View']->delivery_address),
78         "class='tableheader2'", "colspan=3");
79 label_row(_("Reference"), $_SESSION['View']->reference, "class='tableheader2'", "colspan=3");
80 label_row(_("Telephone"), $_SESSION['View']->phone, "class='tableheader2'", "colspan=3");
81 label_row(_("E-mail"), "<a href='mailto:" . $_SESSION['View']->email . "'>" . $_SESSION['View']->email . "</a>",
82         "class='tableheader2'", "colspan=3");
83 label_row(_("Comments"), $_SESSION['View']->Comments, "class='tableheader2'", "colspan=3");
84 end_table();
85
86 if ($_GET['trans_type'] != ST_SALESQUOTE)
87 {
88         echo "</td><td valign='top'>";
89
90         start_table(TABLESTYLE);
91         display_heading2(_("Delivery Notes"));
92
93
94         $th = array(_("#"), _("Ref"), _("Date"), _("Total"));
95         table_header($th);
96
97         $result = get_related_documents(ST_CUSTDELIVERY, $_GET['trans_no']);
98
99         $delivery_total = 0;
100         $k = 0;
101         $dn_numbers = array();
102         
103         while ($del_row = db_fetch($result))
104         {
105
106                 alt_table_row_color($k);
107                 $dn_numbers[] = $del_row["trans_link"];
108                 $this_total = $del_row["ov_freight"]+ $del_row["ov_amount"] + $del_row["ov_freight_tax"]  + $del_row["ov_gst"] ;
109                 $delivery_total += $this_total;
110
111                 label_cell(get_customer_trans_view_str($del_row["type"], $del_row["trans_no"]));
112                 label_cell($del_row["reference"]);
113                 label_cell(sql2date($del_row["tran_date"]));
114                 amount_cell($this_total);
115                 end_row();
116
117         }
118
119         label_row(null, price_format($delivery_total), " ", "colspan=4 align=right");
120
121         end_table();
122         echo "</td><td valign='top'>";
123
124         start_table(TABLESTYLE);
125         display_heading2(_("Sales Invoices"));
126
127         $th = array(_("#"), _("Ref"), _("Date"), _("Total"));
128         table_header($th);
129         
130         $sql = "SELECT * FROM ".TB_PREF."debtor_trans WHERE type=".ST_SALESINVOICE
131                 ." AND trans_no IN(". implode(',', array_values($dn_numbers)).")";
132
133         $result = get_related_documents(ST_SALESINVOICE, $_GET['trans_no']);
134
135         $invoices_total = 0;
136         $k = 0;
137         $inv_numbers = array();
138
139         while ($inv_row = db_fetch($result))
140         {
141
142                 alt_table_row_color($k);
143
144                 $this_total = $inv_row["ov_freight"] + $inv_row["ov_freight_tax"]  + $inv_row["ov_gst"] + $inv_row["ov_amount"];
145                 $invoices_total += $this_total;
146
147                 $inv_numbers[] = $inv_row["trans_no"];
148                 label_cell(get_customer_trans_view_str($inv_row["type"], $inv_row["trans_no"]));
149                 label_cell($inv_row["reference"]);
150                 label_cell(sql2date($inv_row["tran_date"]));
151                 amount_cell($this_total);
152                 end_row();
153
154         }
155
156         label_row(null, price_format($invoices_total), " ", "colspan=4 align=right");
157
158         end_table();
159
160         display_heading2(_("Credit Notes"));
161
162         start_table(TABLESTYLE);
163         $th = array(_("#"), _("Ref"), _("Date"), _("Total"));
164         table_header($th);
165
166         $result = get_related_credits($inv_numbers);
167
168         $credits_total = 0;
169         $k = 0;
170
171         while ($credits_row = db_fetch($result))
172         {
173
174                 alt_table_row_color($k);
175
176                 $this_total = $credits_row["ov_freight"] + $credits_row["ov_freight_tax"]  + $credits_row["ov_gst"] + $credits_row["ov_amount"];
177                 $credits_total += $this_total;
178
179                 label_cell(get_customer_trans_view_str($credits_row["type"], $credits_row["trans_no"]));
180                 label_cell($credits_row["reference"]);
181                 label_cell(sql2date($credits_row["tran_date"]));
182                 amount_cell(-$this_total);
183                 end_row();
184
185         }
186
187         label_row(null, "<font color=red>" . price_format(-$credits_total) . "</font>",
188                 " ", "colspan=4 align=right");
189
190
191         end_table();
192
193         echo "</td></tr>";
194
195         end_table();
196 }
197 echo "<center>";
198 if ($_SESSION['View']->so_type == 1)
199         display_note(_("This Sales Order is used as a Template."), 0, 0, "class='currentfg'");
200 display_heading2(_("Line Details"));
201
202 start_table(TABLESTYLE, "colspan=9 width=95%");
203 $th = array(_("Item Code"), _("Item Description"), _("Quantity"), _("Unit"),
204         _("Price"), _("Discount"), _("Total"), _("Quantity Delivered"));
205 table_header($th);
206
207 $k = 0;  //row colour counter
208
209 foreach ($_SESSION['View']->line_items as $stock_item) {
210
211         $line_total = round2($stock_item->quantity * $stock_item->price * (1 - $stock_item->discount_percent),
212            user_price_dec());
213
214         alt_table_row_color($k);
215
216         label_cell($stock_item->stock_id);
217         label_cell($stock_item->item_description);
218         $dec = get_qty_dec($stock_item->stock_id);
219         qty_cell($stock_item->quantity, false, $dec);
220         label_cell($stock_item->units);
221         amount_cell($stock_item->price);
222         amount_cell($stock_item->discount_percent * 100);
223         amount_cell($line_total);
224
225         qty_cell($stock_item->qty_done, false, $dec);
226         end_row();
227 }
228
229 $items_total = $_SESSION['View']->get_items_total();
230
231 $display_total = price_format($items_total + $_SESSION['View']->freight_cost);
232
233 label_row(_("Shipping"), price_format($_SESSION['View']->freight_cost),
234         "align=right colspan=6", "nowrap align=right", 1);
235 label_row(_("Total Order Value"), $display_total, "align=right colspan=6",
236         "nowrap align=right", 1);
237
238 end_table(2);
239
240 end_page(true, false, false, $_GET['trans_type'], $_GET['trans_no']);
241
242 ?>