Fixed price update when changing item in sales order entry.
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Wed, 30 Apr 2008 15:29:12 +0000 (15:29 +0000)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Wed, 30 Apr 2008 15:29:12 +0000 (15:29 +0000)
CHANGELOG.txt
includes/ui/ui_lists.inc
js/inserts.js
sales/includes/ui/sales_order_ui.inc

index d28b15bac514c821a95fb0f9b8b0eba3d049ca67..1152c1e89b2cd78e7e30d86b0390041bc070182f 100644 (file)
@@ -19,6 +19,12 @@ Legend:
 ! -> Note
 $ -> Affected files
 
+30-Apr-2008 Janusz Dobrowolski
+# Fixed price update when changing item in sales order.
+$ /includes/ui/ui_lists.inc
+  /js/inserts.js
+  /sales/includes/ui/sales_order_ui.inc
+
 24-Apr-2008 Janusz Dobrowolski
 + Added new per company directory for customized versions of report definition files repXXX.php, checked before using system default file.
 $ /company/0/reporting (added new directory)
index ef01376aba54b56fab25bff971228719f734869f..09bc9592bdd562c81d397c18e5572fff0dd18011 100644 (file)
@@ -643,12 +643,10 @@ function stock_items_list($name, $selected_id, $all_option=false, $submit_on_cha
        $result = db_query($sql);
 
 
-       if ($submit_on_change==true)
-               echo "<select name='$name' onchange='this.form.submit();'>";
-       else if ($extra != "")
-               echo "<select name='$name' $extra>";
-       else
-               echo "<select name='$name'>";
+    echo "<select name='$name'".
+           ($submit_on_change ? " onchange='this.form.submit();'" : '').
+           ($extra=='' ? '' : " $extra").
+       ">";
 
        if (($all_option == true))
        {
index 9d00636dff27cba9b04be6c8d5f6f92763a7ce97..e24c37f859022fa0b488766408651dad2ec1d3de 100644 (file)
@@ -55,12 +55,14 @@ var inserts = {
                        var len = select.length;
                        var ac = this.value;
                        var txt;
+                       var was = select.selectedIndex;
                        select.options[select.selectedIndex].selected = false;
                        for (i = 0; i < len; i++) {
 //                       txt = select.options[i].text;
                          txt = select.options[i].value;
                          if (txt.indexOf(ac) >= 0) {
                                select.options[i].selected = true;
+                               select._changed = was!=i;
                                break;
                          }
                        }
@@ -68,8 +70,8 @@ var inserts = {
                  element.onblur = function() {
                          var button = document.getElementsByName(this.name+'_button')[0];
                          var select = document.getElementsByName(this.getAttribute('rel'))[0];
-//                       var val = select.options[select.selectedIndex].text;
-                         var val = select.options[select.selectedIndex].value; TODO
+//                       var val = select.options[select.selectedIndex].text;  TODO
+                         var val = select.options[select.selectedIndex].value;
                          if (this.value != "")
                                  this.value = val;
                          return true;
@@ -82,6 +84,7 @@ var inserts = {
                                val = this.options[this.selectedIndex].value;
                                box.value = val; 
                                this.size = 1;
+                               if (this._changed) this.form.submit();
                                return true;
                         }
        },
index 5ed2fcdc5808c56a2dc8acf81f4c153b78447735..a33834f1bf2507608c1e1c4923926aee51f65426 100644 (file)
@@ -159,7 +159,7 @@ function display_order_header(&$order, $editable, $date_text, $display_tax_group
        echo "<table>";
 
        $customer_error = "";
-               $change_prices = 0;
+       $change_prices = 0;
 
        if (isset($order) && !$editable)
        {
@@ -248,22 +248,21 @@ function display_order_header(&$order, $editable, $date_text, $display_tax_group
                echo "</td><td>"; // outer table
        }
 
-       if$order->sales_type != $_POST['sales_type']) {
+       if ($order->sales_type != $_POST['sales_type']) {
                $myrow = get_sales_type($_POST['sales_type']);
                $order->set_sales_type($myrow['id'], $myrow['sales_type'],
                $myrow['tax_included']);
                $change_prices = 1;
        }
 
-               if($change_prices!=0)
-               {
+//     if ($change_prices != 0) {
                foreach ($order->line_items as $line_no=>$item) {
                        $line = &$order->line_items[$line_no];
                        $line->price = get_price($line->stock_id, $order->customer_currency,
                                $order->sales_type);
                //              $line->discount_percent = $order->default_discount;
                }
-       }
+//     }
 
        echo "<table height='5'>";
        if($editable)
@@ -335,7 +334,7 @@ function sales_order_item_controls(&$order, &$rowcounter, $line_no=-1)
                else
                {
                text_cells(null, "StockID2", '', 12, 10, "", "", "class='combo' rel='stock_id'"/* onblur='this.form.submit();'"*/);
-               stock_items_list_cells(null, 'stock_id', null, false, false, "class='combo' rel='StockID2'");
+               stock_items_list_cells(null, 'stock_id', null, false, true, "class='combo' rel='StockID2'");
                }
                $item_info = get_item_edit_info($_POST['stock_id']);
                $_POST['units'] = $item_info["units"];