Bug 32959: Don't store results of autobarcode in item editor templates

Test Plan:
1) Enable autobarcode
2) Create a new item template, leave the barcode field blank
3) Apply that item template
4) Note the template prefills the barcode field
5) Delete that item template
6) Apply this patch
7) Restart all the things!
8) Repeat steps 2-4
9) Note the barcode field remains empty!

Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Kyle Hall 2023-02-14 08:51:13 -05:00 committed by Tomas Cohen Arazi
parent 219ad1d5d3
commit 47b2b4f15a
Signed by: tomascohen
GPG key ID: 0A272EA1B2F3C15F

View file

@ -276,6 +276,7 @@ if ($op eq "additem") {
} }
# if autoBarcode is set to 'incremental', calculate barcode... # if autoBarcode is set to 'incremental', calculate barcode...
my $submitted_barcode = $item->barcode;
if ( ! defined $item->barcode && C4::Context->preference('autoBarcode') eq 'incremental' ) { if ( ! defined $item->barcode && C4::Context->preference('autoBarcode') eq 'incremental' ) {
my ( $barcode ) = C4::Barcodes::ValueBuilder::incremental::get_barcode; my ( $barcode ) = C4::Barcodes::ValueBuilder::incremental::get_barcode;
$item->barcode($barcode); $item->barcode($barcode);
@ -288,13 +289,16 @@ if ($op eq "additem") {
my $template_is_shared = $input->param('template_is_shared'); my $template_is_shared = $input->param('template_is_shared');
my $replace_template_id = $input->param('replace_template_id'); my $replace_template_id = $input->param('replace_template_id');
my $contents = $item->unblessed;
$contents->{barcode} = $submitted_barcode; # Don't save the autobarcode in the template
if ($replace_template_id) { if ($replace_template_id) {
my $template = Koha::Item::Templates->find($replace_template_id); my $template = Koha::Item::Templates->find($replace_template_id);
$template->update( $template->update(
{ {
id => $replace_template_id, id => $replace_template_id,
is_shared => $template_is_shared ? 1 : 0, is_shared => $template_is_shared ? 1 : 0,
contents => $item->unblessed, contents => $contents,
} }
) if $template && ( ) if $template && (
$template->patron_id eq $loggedinuser $template->patron_id eq $loggedinuser
@ -308,7 +312,7 @@ if ($op eq "additem") {
name => $template_name, name => $template_name,
patron_id => $loggedinuser, patron_id => $loggedinuser,
is_shared => $template_is_shared ? 1 : 0, is_shared => $template_is_shared ? 1 : 0,
contents => $item->unblessed, contents => $contents,
} }
)->store(); )->store();
} }