Bug 9126: Do not return from Check too early.
authorJulian Maurice <julian.maurice@biblibre.com>
Wed, 21 Nov 2012 16:38:28 +0000 (17:38 +0100)
committerJared Camins-Esakov <jcamins@cpbibliography.com>
Tue, 15 Jan 2013 04:01:02 +0000 (23:01 -0500)
If there is no errors, it should continue instead of returning true.

+ move a block of code at the end of Check function. This avoid
detaching and re-attaching a HTML block if there are errors.

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
The following queries show us the issues:
select count(*) from items;
select * from aqorders_items where ordernumber=XX;

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
To test:

AcqCreateItem = receive
UniqueItemFields = barcode

1) Create a new basket
2) Create a new order with quantity > 1
3) Close the basket and create a new invoice/shipment
4) Receive only 1 item.
   - Fill out the first item form with item type only. Click add.
   - Don't change second item form at all.
   - Click save.

Before patch:
2 items are created on the record, both with the selected itemtype.

After patch:
Only 1 item is created, which is correct.

Signed-off-by: Elliott Davis <elliott@bywatersolions.com>
Seems to work as described by the test plan
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt

index da9aefe..84378ea 100644 (file)
                 }
             });
 
-            var alertString;
-            if (total_errors==0) {
-                return true;
-            } else {
-                alertString  = _("Form not submitted because of the following problem(s)");
+            if (total_errors != 0) {
+                var alertString = _("Form not submitted because of the following problem(s)");
                 alertString += "\n------------------------------------------------------------------------------------\n";
                 alertString += "\n- "+ total_errors+_(" mandatory fields empty (highlighted)");
                 alert(alertString);
                 return false;
             }
 
+            if(check_additem('[% UniqueItemFields %]') == false){
+                alert(_('Duplicate values detected. Please correct the errors and resubmit.') );
+                return false;
+            };
+
             // Remove last itemblock if it is not in items_list
             var lastitemblock = $("#outeritemblock > div:last");
             var tobedeleted = true;
             if(tobedeleted){
                 $(lastitemblock).remove();
             }
-
-            if(check_additem('[% UniqueItemFields %]') == false){
-                alert(_('Duplicate values detected. Please correct the errors and resubmit.') );
-                if(tobedeleted) {
-                    $(lastitemblock).appendTo("#outeritemblock");
-                }
-                return false;
-            };
         [% END %]
 
         return true;