Presentation bug in Sales Order View when reference is 'auto'.
[fa-stable.git] / sales / view / view_sales_order.php
index c8a212e33447f503f7343c2f74eaca2572f57a1a..61a2181b8089e145f456b2452790d02d39b326c3 100644 (file)
@@ -20,7 +20,7 @@ include_once($path_to_root . "/sales/includes/sales_ui.inc");
 include_once($path_to_root . "/sales/includes/sales_db.inc");
 
 $js = "";
-if ($use_popup_windows)
+if ($SysPrefs->use_popup_windows)
        $js .= get_js_open_window(900, 600);
 
 if ($_GET['trans_type'] == ST_SALESQUOTE)
@@ -39,23 +39,24 @@ if (isset($_SESSION['View']))
        unset ($_SESSION['View']);
 }
 
-$_SESSION['View'] = new Cart($_GET['trans_type'], $_GET['trans_no'], true);
+$_SESSION['View'] = new Cart($_GET['trans_type'], $_GET['trans_no']);
+
+start_table(TABLESTYLE2, "width='95%'", 5);
 
-start_table("$table_style2 width=95%", 5);
-echo "<tr valign=top><td>";
-display_heading2(_("Order Information"));
 if ($_GET['trans_type'] != ST_SALESQUOTE)
 {
+       echo "<tr valign=top><td>";
+       display_heading2(_("Order Information"));
        echo "</td><td>";
        display_heading2(_("Deliveries"));
        echo "</td><td>";
        display_heading2(_("Invoices/Credits"));
+       echo "</td></tr>";
 }      
-echo "</td></tr>";
 
 echo "<tr valign=top><td>";
 
-start_table("$table_style width=95%");
+start_table(TABLESTYLE, "width='95%'");
 label_row(_("Customer Name"), $_SESSION['View']->customer_name, "class='tableheader2'",
        "colspan=3");
 start_row();
@@ -66,6 +67,8 @@ start_row();
 label_cells(_("Ordered On"), $_SESSION['View']->document_date, "class='tableheader2'");
 if ($_GET['trans_type'] == ST_SALESQUOTE)
        label_cells(_("Valid until"), $_SESSION['View']->due_date, "class='tableheader2'");
+elseif ($_SESSION['View']->reference == "auto")
+       label_cells(_("Due Date"), $_SESSION['View']->due_date, "class='tableheader2'");
 else
        label_cells(_("Requested Delivery"), $_SESSION['View']->due_date, "class='tableheader2'");
 end_row();
@@ -74,46 +77,60 @@ label_cells(_("Order Currency"), $_SESSION['View']->customer_currency, "class='t
 label_cells(_("Deliver From Location"), $_SESSION['View']->location_name, "class='tableheader2'");
 end_row();
 
+
+if ($_SESSION['View']->payment_terms['days_before_due']<0)
+{
+start_row();
+label_cells(_("Payment Terms"), $_SESSION['View']->payment_terms['terms'], "class='tableheader2'");
+label_cells(_("Required Pre-Payment"), price_format($_SESSION['View']->prep_amount), "class='tableheader2'");
+end_row();
+start_row();
+label_cells(_("Non-Invoiced Prepayments"), price_format($_SESSION['View']->alloc), "class='tableheader2'");
+label_cells(_("All Payments Allocated"), price_format($_SESSION['View']->sum_paid), "class='tableheader2'");
+end_row();
+} else
+       label_row(_("Payment Terms"), $_SESSION['View']->payment_terms['terms'], "class='tableheader2'", "colspan=3");
+
 label_row(_("Delivery Address"), nl2br($_SESSION['View']->delivery_address),
        "class='tableheader2'", "colspan=3");
 label_row(_("Reference"), $_SESSION['View']->reference, "class='tableheader2'", "colspan=3");
 label_row(_("Telephone"), $_SESSION['View']->phone, "class='tableheader2'", "colspan=3");
 label_row(_("E-mail"), "<a href='mailto:" . $_SESSION['View']->email . "'>" . $_SESSION['View']->email . "</a>",
        "class='tableheader2'", "colspan=3");
-label_row(_("Comments"), $_SESSION['View']->Comments, "class='tableheader2'", "colspan=3");
+label_row(_("Comments"), nl2br($_SESSION['View']->Comments), "class='tableheader2'", "colspan=3");
 end_table();
 
 if ($_GET['trans_type'] != ST_SALESQUOTE)
 {
        echo "</td><td valign='top'>";
 
-       start_table($table_style);
+       start_table(TABLESTYLE);
        display_heading2(_("Delivery Notes"));
 
 
        $th = array(_("#"), _("Ref"), _("Date"), _("Total"));
        table_header($th);
 
-       $sql = "SELECT * FROM ".TB_PREF."debtor_trans WHERE type=".ST_CUSTDELIVERY." AND order_=".db_escape($_GET['trans_no']);
-       $result = db_query($sql,"The related delivery notes could not be retreived");
-
+       $dn_numbers = array();
        $delivery_total = 0;
-       $k = 0;
-
-       while ($del_row = db_fetch($result))
-       {
 
-               alt_table_row_color($k);
+       if ($result = get_sales_child_documents(ST_SALESORDER, $_GET['trans_no'])) {
 
-               $this_total = $del_row["ov_freight"]+ $del_row["ov_amount"] + $del_row["ov_freight_tax"]  + $del_row["ov_gst"] ;
-               $delivery_total += $this_total;
+               $k = 0;
+               while ($del_row = db_fetch($result))
+               {
 
-               label_cell(get_customer_trans_view_str($del_row["type"], $del_row["trans_no"]));
-               label_cell($del_row["reference"]);
-               label_cell(sql2date($del_row["tran_date"]));
-               amount_cell($this_total);
-               end_row();
+                       alt_table_row_color($k);
+                       $dn_numbers[] = $del_row["trans_no"];
+                       $this_total = $del_row["ov_freight"]+ $del_row["ov_amount"] + $del_row["ov_freight_tax"]  + $del_row["ov_gst"] ;
+                       $delivery_total += $this_total;
 
+                       label_cell(get_customer_trans_view_str($del_row["type"], $del_row["trans_no"]));
+                       label_cell($del_row["reference"]);
+                       label_cell(sql2date($del_row["tran_date"]));
+                       amount_cell($this_total);
+                       end_row();
+               }
        }
 
        label_row(null, price_format($delivery_total), " ", "colspan=4 align=right");
@@ -121,70 +138,74 @@ if ($_GET['trans_type'] != ST_SALESQUOTE)
        end_table();
        echo "</td><td valign='top'>";
 
-       start_table($table_style);
+       start_table(TABLESTYLE);
        display_heading2(_("Sales Invoices"));
 
        $th = array(_("#"), _("Ref"), _("Date"), _("Total"));
        table_header($th);
-
-       $sql = "SELECT * FROM ".TB_PREF."debtor_trans WHERE type=".ST_SALESINVOICE." AND order_=".db_escape($_GET['trans_no']);
-       $result = db_query($sql,"The related invoices could not be retreived");
-
+       
+       $inv_numbers = array();
        $invoices_total = 0;
-       $k = 0;
-
-       while ($inv_row = db_fetch($result))
-       {
-
-               alt_table_row_color($k);
-
-               $this_total = $inv_row["ov_freight"] + $inv_row["ov_freight_tax"]  + $inv_row["ov_gst"] + $inv_row["ov_amount"];
-               $invoices_total += $this_total;
-
-               label_cell(get_customer_trans_view_str($inv_row["type"], $inv_row["trans_no"]));
-               label_cell($inv_row["reference"]);
-               label_cell(sql2date($inv_row["tran_date"]));
-               amount_cell($this_total);
-               end_row();
 
+       if ($_SESSION['View']->prepaid)
+               $result = get_sales_order_invoices($_GET['trans_no']);
+       else
+               $result = get_sales_child_documents(ST_CUSTDELIVERY, $dn_numbers);
+
+       if ($result) {
+               $k = 0;
+
+               while ($inv_row = db_fetch($result))
+               {
+                       alt_table_row_color($k);
+
+                       $this_total = $_SESSION['View']->prepaid ? $inv_row["prep_amount"] : 
+                               $inv_row["ov_freight"] + $inv_row["ov_freight_tax"]  + $inv_row["ov_gst"] + $inv_row["ov_amount"];
+                       $invoices_total += $this_total;
+
+                       $inv_numbers[] = $inv_row["trans_no"];
+                       label_cell(get_customer_trans_view_str($inv_row["type"], $inv_row["trans_no"]));
+                       label_cell($inv_row["reference"]);
+                       label_cell(sql2date($inv_row["tran_date"]));
+                       amount_cell($this_total);
+                       end_row();
+               }
        }
-
        label_row(null, price_format($invoices_total), " ", "colspan=4 align=right");
 
        end_table();
 
        display_heading2(_("Credit Notes"));
 
-       start_table($table_style);
+       start_table(TABLESTYLE);
        $th = array(_("#"), _("Ref"), _("Date"), _("Total"));
        table_header($th);
 
-       $sql = "SELECT * FROM ".TB_PREF."debtor_trans WHERE type=".ST_CUSTCREDIT." AND order_=".db_escape($_GET['trans_no']);
-       $result = db_query($sql,"The related credit notes could not be retreived");
-
        $credits_total = 0;
-       $k = 0;
 
-       while ($credits_row = db_fetch($result))
-       {
+       if ($result = get_sales_child_documents(ST_SALESINVOICE, $inv_numbers)) {
+               $k = 0;
 
-               alt_table_row_color($k);
+               while ($credits_row = db_fetch($result))
+               {
 
-               $this_total = $credits_row["ov_freight"] + $credits_row["ov_freight_tax"]  + $credits_row["ov_gst"] + $credits_row["ov_amount"];
-               $credits_total += $this_total;
+                       alt_table_row_color($k);
 
-               label_cell(get_customer_trans_view_str($credits_row["type"], $credits_row["trans_no"]));
-               label_cell($credits_row["reference"]);
-               label_cell(sql2date($credits_row["tran_date"]));
-               amount_cell(-$this_total);
-               end_row();
+                       $this_total = $credits_row["ov_freight"] + $credits_row["ov_freight_tax"]  + $credits_row["ov_gst"] + $credits_row["ov_amount"];
+                       $credits_total += $this_total;
 
-       }
+                       label_cell(get_customer_trans_view_str($credits_row["type"], $credits_row["trans_no"]));
+                       label_cell($credits_row["reference"]);
+                       label_cell(sql2date($credits_row["tran_date"]));
+                       amount_cell(-$this_total);
+                       end_row();
+
+               }
 
+       }
        label_row(null, "<font color=red>" . price_format(-$credits_total) . "</font>",
                " ", "colspan=4 align=right");
 
-
        end_table();
 
        echo "</td></tr>";
@@ -196,7 +217,7 @@ if ($_SESSION['View']->so_type == 1)
        display_note(_("This Sales Order is used as a Template."), 0, 0, "class='currentfg'");
 display_heading2(_("Line Details"));
 
-start_table("colspan=9 width=95% $table_style");
+start_table(TABLESTYLE, "width='95%'");
 $th = array(_("Item Code"), _("Item Description"), _("Quantity"), _("Unit"),
        _("Price"), _("Discount"), _("Total"), _("Quantity Delivered"));
 table_header($th);
@@ -223,17 +244,30 @@ foreach ($_SESSION['View']->line_items as $stock_item) {
        end_row();
 }
 
-$items_total = $_SESSION['View']->get_items_total();
+if ($_SESSION['View']->freight_cost != 0.0)
+       label_row(_("Shipping"), price_format($_SESSION['View']->freight_cost),
+               "align=right colspan=6", "nowrap align=right", 1);
 
-$display_total = price_format($items_total + $_SESSION['View']->freight_cost);
+$sub_tot = $_SESSION['View']->get_items_total() + $_SESSION['View']->freight_cost;
 
-label_row(_("Shipping"), price_format($_SESSION['View']->freight_cost),
-       "align=right colspan=6", "nowrap align=right", 1);
-label_row(_("Total Order Value"), $display_total, "align=right colspan=6",
+$display_sub_tot = price_format($sub_tot);
+
+label_row(_("Sub Total"), $display_sub_tot, "align=right colspan=6",
        "nowrap align=right", 1);
 
-end_table(2);
+$taxes = $_SESSION['View']->get_taxes();
+
+$tax_total = display_edit_tax_items($taxes, 6, $_SESSION['View']->tax_included,2);
+
+$display_total = price_format($sub_tot + $tax_total);
+
+start_row();
+label_cells(_("Amount Total"), $display_total, "colspan=6 align='right'","align='right'");
+label_cell('', "colspan=2");
+end_row();
+end_table();
+
+display_allocations_to(PT_CUSTOMER, $_SESSION['View']->customer_id, $_GET['trans_type'], $_GET['trans_no'], $sub_tot + $tax_total);
 
-end_page(true);
+end_page(true, false, false, $_GET['trans_type'], $_GET['trans_no']);
 
-?>