Bug 29689: (bug 28445 follow-up) Fix AutoBarcode=hbyymmincr
The selector is not correct, we must to not rely on the number.
This patch fixes a regression caused by bug 28445, but also a
long-standing bug.
* Regression:
The barcode plugin is broken is autoBarcode=<branchcode>yymm0001
There is a JS error in the console:
Uncaught TypeError: form.field_value is undefined
Focustag_952_subfield_p_878344
Focustag_952_subfield_p_878344_handler
jQuery 11
BindEventstag_952_subfield_p_878344
* Long standing bug:
If there are several item forms on the same page, the branchcode is not
correctly retrieved. For instance on the "Serial edition" page there are
2 item forms, the homebranch that is used by the barcode plugin will be
the one from the last form.
Test plan:
* regression
Set autoBarcode=<branchcode>yymm0001
Catalogue a new item, click into the barcode input
Notice that without this patch you get a JS error in the console
* long standing bug
Create a new subscription, select "Create an item record when receiving this serial".
Receive a serial
Open the 2 item forms ("Click to add item")
Select 2 different home library and click the barcode inputs.
The prefix (branchcode) should be correct with this patch applied.
QA Note: it would be way easier if all add item forms were using the new
methods, it could be:
let loc = document.getElementsByName('items.homebranch')[0].value;
Yes, that's all!
Signed-off-by: Hayley Pelham <hayleypelham@catalyst.net.nz>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
parent
3d1556dafa
commit
0c8496a85a
|
|
@ -56,23 +56,17 @@ sub get_barcode {
|
|||
$nextnum++;
|
||||
$nextnum = sprintf("%0*d", "4",$nextnum);
|
||||
$nextnum = $year . $month . $nextnum;
|
||||
my $scr = "
|
||||
var form = document.getElementById('f');
|
||||
if ( !form ) {
|
||||
form = document.getElementById('serials_edit');
|
||||
my $scr = qq~
|
||||
let elt = \$("#"+id);
|
||||
let homebranch = elt.parents('fieldset.rows:first')
|
||||
.find('input[name="kohafield"][value="items.homebranch"]')
|
||||
.siblings("select")
|
||||
.val();
|
||||
|
||||
if ( \$(elt).val() == '' ) {
|
||||
\$(elt).val(homebranch + '$nextnum');
|
||||
}
|
||||
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(form.field_value[fnum].value + '$nextnum');
|
||||
}
|
||||
";
|
||||
~;
|
||||
return $nextnum, $scr;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ my $builder = sub {
|
|||
# find today's date
|
||||
($args{year}, $args{mon}, $args{day}) = split('-', output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 }));
|
||||
($args{tag},$args{subfield}) = GetMarcFromKohaField( "items.barcode" );
|
||||
($args{loctag},$args{locsubfield}) = GetMarcFromKohaField( "items.homebranch" );
|
||||
|
||||
my $nextnum;
|
||||
my $scr;
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@ my $builder = sub {
|
|||
# find today's date
|
||||
($args{year}, $args{mon}, $args{day}) = split('-', output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 }));
|
||||
($args{tag},$args{subfield}) = GetMarcFromKohaField( "items.barcode" );
|
||||
($args{loctag},$args{locsubfield}) = GetMarcFromKohaField( "items.homebranch" );
|
||||
|
||||
my $nextnum;
|
||||
my $scr;
|
||||
|
|
|
|||
|
|
@ -148,6 +148,7 @@
|
|||
<input type="hidden" name="items.more_subfields_xml" value="[% subfield.subfield | html %]" />
|
||||
[% END %]
|
||||
<input type="hidden" name="tag" value="[% subfield.tag | html %]" />
|
||||
<input type="hidden" name="kohafield" value="[% subfield.kohafield | html %]" /> [%# We should not need that but all item forms are not rewritten yet %]
|
||||
<input type="hidden" name="subfield" value="[% subfield.subfield | html %]" />
|
||||
<input type="hidden" name="mandatory" value="[% subfield.mandatory | html %]" />
|
||||
<input type="hidden" name="important" value="[% subfield.important | html %]" />
|
||||
|
|
|
|||
|
|
@ -61,8 +61,6 @@ my %args = (
|
|||
day => '30',
|
||||
tag => '952',
|
||||
subfield => 'p',
|
||||
loctag => '952',
|
||||
locsubfield => 'a'
|
||||
);
|
||||
|
||||
my ($nextnum, $scr) = C4::Barcodes::ValueBuilder::incremental::get_barcode(\%args);
|
||||
|
|
|
|||
Loading…
Reference in New Issue