From 2c0dc0154108eb6a2df8be0d3f27a54e57908885 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 14 Jul 2015 13:12:46 +0100 Subject: [PATCH] Bug 11273: FIX barcode generation in acquisition if hbyymmincr 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. --- C4/Barcodes/ValueBuilder.pm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/C4/Barcodes/ValueBuilder.pm b/C4/Barcodes/ValueBuilder.pm index 686ad78..c8cfe59 100644 --- a/C4/Barcodes/ValueBuilder.pm +++ b/C4/Barcodes/ValueBuilder.pm @@ -60,13 +60,17 @@ sub get_barcode { $nextnum = $year . $month . $nextnum; warn "New hbyymmincr Barcode = $nextnum" if $DEBUG; my $scr = " - for (i=0 ; i{loctag}' && document.f.subfield[i].value == '$args->{locsubfield}') { + var form = document.getElementById('f'); + if ( !form ) { + form = document.getElementById('Aform'); + } + for (i=0 ; i{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; -- 2.1.0