Bug 11273: FIX barcode generation in acquisition if hbyymmincr
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 14 Jul 2015 12:12:46 +0000 (13:12 +0100)
committerTomas Cohen Arazi <tomascohen@theke.io>
Mon, 7 Sep 2015 13:47:53 +0000 (10:47 -0300)
When AutoBarcode is activated and you have set AcqCreateItem to 'on
order' there is a Javascript error when you try to generate a barcode
for the item:

TypeError: document.f is undefined
http://localhost:8080/intranet-tmpl/lib/jquery/jquery.js
Line 11

Test plan:
0/ a. Set AutoBarcode to hbyymmincr
   b. Set AcqCreateItem to 'on ordering'
   c. Set the plugin barcode.pl to the barcode field for the default
   and the ACQ frameworks
1/ Go on the add items page (cataloguing/additem.pl) and confirm that
the plugin works as expected.
2/ Go on the New order page (acqui/neworderempty.pl) and confirm that
the plugin works as expected.

Followed test plan, works as expected.
Signed-off-by: Marc VĂ©ron <veron@veron.ch>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
C4/Barcodes/ValueBuilder.pm

index 686ad78..c8cfe59 100644 (file)
@@ -60,13 +60,17 @@ sub get_barcode {
     $nextnum = $year . $month . $nextnum;
     warn "New hbyymmincr Barcode = $nextnum" if $DEBUG;
     my $scr = "
-        for (i=0 ; i<document.f.field_value.length ; i++) {
-            if (document.f.tag[i].value == '$args->{loctag}' && document.f.subfield[i].value == '$args->{locsubfield}') {
+        var form = document.getElementById('f');
+        if ( !form ) {
+            form = document.getElementById('Aform');
+        }
+        for (i=0 ; i<form.field_value.length ; i++) {
+            if (form.tag[i].value == '$args->{loctag}' && form.subfield[i].value == '$args->{locsubfield}') {
                 fnum = i;
             }
         }
     if (\$('#' + id).val() == '') {
-        \$('#' + id).val(document.f.field_value[fnum].value + '$nextnum');
+        \$('#' + id).val(form.field_value[fnum].value + '$nextnum');
     }
     ";
     return $nextnum, $scr;