Bug 5687: Unable to dispatch SO for service items with u/m decimal places set as...
[fa-stable.git] / sales / customer_delivery.php
index fe4ae8276d507f269dbf57ada97d2339b20c6e46..e58eb4a719c1cbe2859384a66f909c393f3a9327 100644 (file)
@@ -62,6 +62,8 @@ if (isset($_GET['AddedID'])) {
 
        hyperlink_params("$path_to_root/sales/inquiry/sales_orders_view.php", _("Select Another Order For Dispatch"), "OutstandingOnly=1");
 
+       hyperlink_params("$path_to_root/admin/attachments.php", _("Add an Attachment"), "filterType=".ST_CUSTDELIVERY."&trans_no=$dispatch_no");
+
        display_footer_exit();
 
 } elseif (isset($_GET['UpdatedID'])) {
@@ -248,13 +250,16 @@ function check_quantities()
        // Update cart delivery quantities/descriptions
        foreach ($_SESSION['Items']->line_items as $line=>$itm) {
                if (isset($_POST['Line'.$line])) {
-               if($_SESSION['Items']->trans_no) {
-                       $min = $itm->qty_done;
-                       $max = $itm->quantity;
-               } else {
-                       $min = 0;
-                       $max = $itm->quantity - $itm->qty_done;
-               }
+                       if($_SESSION['Items']->trans_no) {
+                               $min = $itm->qty_done;
+                               $max = $itm->quantity;
+                       } else {
+                               $min = 0;
+                               // Fixing floating point problem in PHP.
+                               $dec = get_unit_dec($itm->stock_id);
+                               $dec = $dec == -1 ? user_qty_dec() : $dec;
+                               $max = round2($itm->quantity - $itm->qty_done, $dec);
+                       }
 
                        if (check_num('Line'.$line, $min, $max)) {
                                $_SESSION['Items']->line_items[$line]->qty_dispatched =
@@ -263,7 +268,6 @@ function check_quantities()
                                set_focus('Line'.$line);
                                $ok = 0;
                        }
-
                }
 
                if (isset($_POST['Line'.$line.'Desc'])) {
@@ -329,9 +333,6 @@ label_cells(_("Currency"), $_SESSION['Items']->customer_currency, "class='tableh
 end_row();
 start_row();
 
-//if (!isset($_POST['ref']))
-//     $_POST['ref'] = $Refs->get_next(ST_CUSTDELIVERY);
-
 if ($_SESSION['Items']->trans_no==0) {
        ref_cells(_("Reference"), 'ref', '', null, "class='tableheader2'", false, ST_CUSTDELIVERY,
        array('customer' => $_SESSION['Items']->customer_id,
@@ -379,7 +380,7 @@ if (!isset($_POST['due_date']) || !is_date($_POST['due_date'])) {
        $_POST['due_date'] = get_invoice_duedate($_SESSION['Items']->payment, $_POST['DispatchDate']);
 }
 customer_credit_row($_SESSION['Items']->customer_id, $_SESSION['Items']->credit, "class='tableheader2'");
-// 2010-09-03 Joe Hunt
+
 $dim = get_company_pref('use_dimension');
 if ($dim > 0) {
        start_row();