Fixed maximum nam length.
[fa-stable.git] / purchasing / includes / ui / po_ui.inc
index 7661fb9a1eb7f36b5d1ac1ac9470a70f3fc33329..f379573d570996269463431c69c328385e57fc6d 100644 (file)
@@ -42,15 +42,25 @@ function copy_to_cart()
 
 function get_supplier_details_to_order(&$order, $supplier_id)
 {
-       $sql = "SELECT curr_code,supp_name FROM ".TB_PREF."suppliers
-               WHERE supplier_id = '$supplier_id'";
+       $sql = "SELECT curr_code, supp_name, tax_group_id, supp.tax_included,
+                       supp.credit_limit - Sum(IFNULL(IF(trans.type=".ST_SUPPCREDIT.", -1, 1) 
+                               * (ov_amount + ov_gst + ov_discount),0)) as cur_credit
+               FROM ".TB_PREF."suppliers supp
+                        LEFT JOIN ".TB_PREF."supp_trans trans ON supp.supplier_id = trans.supplier_id
+               WHERE supp.supplier_id = '$supplier_id'
+               GROUP BY
+                         supp.supp_name";
+
        $result = db_query($sql, "The supplier details could not be retreived");
 
        $myrow = db_fetch($result);
+       $order->credit = $myrow["cur_credit"];
+       $_POST['supplier_id'] = $supplier_id;
+       $_POST['supplier_name'] = $myrow["supp_name"];
+       $_POST['curr_code'] = $myrow["curr_code"];
 
-       $order->curr_code = $_POST['curr_code'] = $myrow["curr_code"];
-       $order->supplier_name = $_POST['supplier_name'] = $myrow["supp_name"];
-       $order->supplier_id = $_POST['supplier_id'] = $supplier_id;
+       $order->set_supplier($supplier_id, $myrow["supp_name"], $myrow["curr_code"], 
+               $myrow["tax_group_id"], $myrow["tax_included"]);
 }
 
 //---------------------------------------------------------------------------------------------------
@@ -83,11 +93,11 @@ function create_new_po($trans_type, $trans_no)
 
 function display_po_header(&$order)
 {
-       global $table_style2, $Ajax, $Refs;
+       global $Ajax, $Refs;
 
        $editable = ($order->order_no == 0);
 
-       start_outer_table("width=80% $table_style2");
+       start_outer_table(TABLESTYLE2, "width=80%");
 
        table_section(1);
     if ($editable)
@@ -104,12 +114,15 @@ function display_po_header(&$order)
     }
 
        if ($order->supplier_id != get_post('supplier_id',-1)) {
+               $old_supp = $order->supplier_id;
                get_supplier_details_to_order($order, $_POST['supplier_id']);
                // supplier default price update
                foreach ($order->line_items as $line_no=>$item) {
                        $line = &$order->line_items[$line_no];
-                       $line->price =  get_purchase_price ($order->supplier_id, $_POST['stock_id']);
-                       $line->quantity =  get_purchase_conversion_factor ($order->supplier_id, $_POST['stock_id']);
+                       $line->price =  get_purchase_price ($order->supplier_id, $line->stock_id);
+                       $line->quantity =
+                               $line->quantity/get_purchase_conversion_factor ($old_supp, $line->stock_id)
+                                       *get_purchase_conversion_factor ($order->supplier_id, $line->stock_id);
                }
            $Ajax->activate('items_table');
        }
@@ -122,6 +135,10 @@ function display_po_header(&$order)
                        $_POST['OrderDate']);
        }
 
+       supplier_credit_row($order->supplier_id, $order->credit);
+
+       table_section(2);
+
     if ($editable)
     {
        ref_row(_("Reference:"), 'ref');
@@ -132,8 +149,6 @@ function display_po_header(&$order)
        label_row(_("Reference:"), $order->reference);
     }
 
-       table_section(2);
-
        // check this out?????????
        //if (!isset($_POST['OrderDate']) || $_POST['OrderDate'] == "")
        //      $_POST['OrderDate'] = $order->orig_order_date;
@@ -187,16 +202,14 @@ function display_po_header(&$order)
 
 function display_po_items(&$order, $editable=true)
 {
-       global $table_style;
-
     display_heading(_("Order Items"));
 
     div_start('items_table');
-    start_table("$table_style width=80%");
+    start_table(TABLESTYLE, "width=80%");
 
        $th = array(_("Item Code"), _("Item Description"), _("Quantity"),
                _("Received"), _("Unit"),
-               _("Required Delivery Date"), _("Price"), _("Line Total"), "");
+               _("Required Delivery Date"), $order->tax_included ? _("Price after Tax") : _("Price before Tax"), _("Line Total"), "");
        if ($order->trans_type != ST_PURCHORDER)
                array_remove($th, 5);
                
@@ -241,10 +254,25 @@ function display_po_items(&$order, $editable=true)
        if ($id==-1 && $editable)
                po_item_controls($order, $k);
 
-    $display_total = price_format($total);
-    label_row(_("Total Excluding Shipping/Tax"), $display_total, "colspan="
-       .(count($order->line_items) ? 7:6)." align=right",
-       "nowrap align=right", 2);
+       $colspan = count($th)-2;
+       if (count($order->line_items))
+               $colspan--;
+
+       $display_sub_total = price_format($total);
+
+       label_row(_("Sub-total"), $display_sub_total, "colspan=$colspan align=right","align=right", 2);
+
+       $taxes = $order->get_taxes(input_num('freight_cost'));
+       
+       $tax_total = display_edit_tax_items($taxes, $colspan, $order->tax_included, 2);
+
+       $display_total = price_format(($total + input_num('freight_cost') + $tax_total));
+
+       start_row();
+       label_cells(_("Amount Total"), $display_total, "colspan=$colspan align='right'","align='right'");
+       $order->order_no ? submit_cells('update', _("Update"), "colspan=2 align='center'", _("Refresh"), true)
+               : label_cell('', "colspan=2");
+       end_row();
 
        end_table(1);
        div_end();
@@ -254,8 +282,7 @@ function display_po_items(&$order, $editable=true)
 
 function display_po_summary(&$po, $is_self=false, $editable=false)
 {
-       global $table_style;
-    start_table("$table_style width=90%");
+    start_table(TABLESTYLE, "width=90%");
 
     start_row();
     label_cells(_("Reference"), $po->reference, "class='tableheader2'");
@@ -387,7 +414,7 @@ function po_item_controls(&$order, &$rowcounter, $line_no=-1)
        }
        else
        {
-               submit_cells('EnterLine', _("Add Item"), "colspan=2",
+               submit_cells('EnterLine', _("Add Item"), "colspan=2 align='center'",
                    _('Add new item to document'), true);
        }