Fixed optional sorting lines during sales document ediiton (sort made in display...
authorJanusz Dobrowolski <janusz@frontaccouting.eu>
Wed, 8 May 2013 10:51:54 +0000 (12:51 +0200)
committerJanusz Dobrowolski <janusz@frontaccouting.eu>
Wed, 8 May 2013 10:51:54 +0000 (12:51 +0200)
config.default.php
sales/includes/cart_class.inc
sales/includes/ui/sales_credit_ui.inc
sales/includes/ui/sales_order_ui.inc

index 5dfa4feef17f0c1eb3558e22029b272b4e0a831a..b0e8cc551fb649fa4d274d2c30706db2b6e06f27 100644 (file)
@@ -282,7 +282,7 @@ $xr_providers = array("ECB", "YAHOO", "GOOGLE", "BLOOMBERG");
 $dflt_xr_provider = 0;
 
 /*
-       Optional sorting new sales documents lines according to item code
+       Optional sorting sales documents lines during edition according to item code
 */
 $sort_sales_items = false;
 
index 9b8c27edf86573716a4b81aa8bff5934615a644c..5a3d561db42bc5e74568f01f91375844ce3c8b49 100644 (file)
@@ -101,12 +101,18 @@ class cart
                return strcmp($a->stock_id, $b->stock_id);
        }
 
-       function sort_items()
+       /*
+               Returns items array optionally sorted by item code.
+       */
+       function get_items()
        {
                global $sort_sales_items;
 
-               if (@$sort_sales_items && !$this->trans_no) // sort items optionally for new transaction
-                       usort($this->line_items, array($this, '_cmp_lines'));
+               $items = $this->line_items;
+               if (@$sort_sales_items)
+                       uasort($items, array($this, '_cmp_lines'));
+
+               return $items;
        }
        //
        //      Prepare cart to new child document entry, just after initial parent doc read.
@@ -366,7 +372,6 @@ class cart
 
                if ($line->valid) {
                        $this->line_items[$line_no] = $line;
-                       $this->sort_items();
                        return 1;
                } else
                        display_error(_("You have to enter valid stock code or nonempty description"));
@@ -381,7 +386,6 @@ class cart
                $this->line_items[$line_no]->qty_dispatched = $qty;
                $this->line_items[$line_no]->price = $price;
                $this->line_items[$line_no]->discount_percent = $disc;
-               $this->sort_items();
        }
 
        function update_add_cart_item_qty($line_no, $qty)
index ac9c932f851a87f8cad127a22615bba9c5b4f71c..b75aac1ef7091f11bb7ec1aba8619bcfb0b11ee7 100644 (file)
@@ -176,7 +176,7 @@ function display_credit_items($title, &$order)
 
     $id = find_submit('Edit');
 
-    foreach ($order->line_items as $line_no=>$line)
+    foreach ($order->get_items() as $line_no=>$line)
     {
        $line_total =   round($line->qty_dispatched * $line->price * (1 - $line->discount_percent),
           user_price_dec());
index 0ace8627c9e1706db58ab691fbc2a03af5eb8fc2..0d2b3d33dbc7c1d011ea9d1525b8ea8e7d864a07 100644 (file)
@@ -159,7 +159,8 @@ function display_order_summary($title, &$order, $editable_items=false)
 
        $id = find_submit('Edit');
        $has_marked = false;
-       foreach ($order->line_items as $line_no=>$stock_item)
+
+       foreach ($order->get_items() as $line_no=>$stock_item)
        {
 
                $line_total = round($stock_item->qty_dispatched * $stock_item->price * (1 - $stock_item->discount_percent),