Allowing a quantity of 0 in a PO item line when modifying caused strange result.
authorJoe Hunt <joe.hunt.consulting@gmail.com>
Fri, 18 Dec 2009 15:35:26 +0000 (15:35 +0000)
committerJoe Hunt <joe.hunt.consulting@gmail.com>
Fri, 18 Dec 2009 15:35:26 +0000 (15:35 +0000)
Fixed depending on the decimals in the stock item to not allow less than minimum.

CHANGELOG.txt
purchasing/po_entry_items.php

index 1ed6714c2d6e560de2936dd437341d0bdc9a25d8..ff3540997473e42c5848c7829cd078b96e47aa22 100644 (file)
@@ -19,6 +19,11 @@ Legend:
 ! -> Note
 $ -> Affected files
 
+18-Dec-2009 Joe Hunt
+# Allowing a quantity of 0 in a PO item line when modifying caused strange result.
+  Fixed depending on the decimals in the stock item to not allow less than minimum.
+$ /purchasing/po_entry_items.php
+
 12-Dec-2009 Joe Hunt
 ! Implemented search on categories as well in sales_items_list...
 $ /includes/ui/ui_lists.inc
index 988c90faf3a1b15af98e82d0c8eb5af3af9484cb..34cce5534c1a26f8a2a54eef8c62858fa5b66b89 100644 (file)
@@ -157,9 +157,12 @@ function handle_cancel_po()
 
 function check_data()
 {
-    if (!check_num('qty',0))
+       $dec = get_qty_dec($_POST['stock_id']);
+       $min = 1 / pow(10, $dec);
+    if (!check_num('qty',$min))
     {
-               display_error(_("The quantity of the order item must be numeric and not less than zero."));
+       $min = number_format2($min, $dec);
+               display_error(_("The quantity of the order item must be numeric and not less than ").$min);
                set_focus('qty');
                return false;
     }
@@ -185,19 +188,21 @@ function handle_update_item()
 {
        $allow_update = check_data(); 
 
-       if ($allow_update && 
-               ($_SESSION['PO']->line_items[$_POST['line_no']]->qty_inv > input_num('qty') ||
-               $_SESSION['PO']->line_items[$_POST['line_no']]->qty_received > input_num('qty')))
+       if ($allow_update)
        {
-               display_error(_("You are attempting to make the quantity ordered a quantity less than has already been invoiced or received.  This is prohibited.") .
-                       "<br>" . _("The quantity received can only be modified by entering a negative receipt and the quantity invoiced can only be reduced by entering a credit note against this item."));
-               set_focus('qty');
-               return;
-       }
+               if ($_SESSION['PO']->line_items[$_POST['line_no']]->qty_inv > input_num('qty') ||
+                       $_SESSION['PO']->line_items[$_POST['line_no']]->qty_received > input_num('qty'))
+               {
+                       display_error(_("You are attempting to make the quantity ordered a quantity less than has already been invoiced or received.  This is prohibited.") .
+                               "<br>" . _("The quantity received can only be modified by entering a negative receipt and the quantity invoiced can only be reduced by entering a credit note against this item."));
+                       set_focus('qty');
+                       return;
+               }
        
-       $_SESSION['PO']->update_order_item($_POST['line_no'], input_num('qty'), input_num('price'),
-               $_POST['req_del_date']);
-       unset_form_variables();
+               $_SESSION['PO']->update_order_item($_POST['line_no'], input_num('qty'), input_num('price'),
+                       $_POST['req_del_date']);
+               unset_form_variables();
+       }       
     line_start_focus();
 }