From b5f91e709bd66be4c77ef0462b918302f809698a Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Mon, 9 Oct 2017 19:17:45 -0300 Subject: [PATCH] Bug 19431: Fix error when checking out an unknown barcode It seems this has been caused by commit 1544f9a5d4a8acd47c97d7c6ac55dee8e759d3ff Bug 18276: Remove GetBiblioFromItemNumber - circulation pages To reproduce the problem you need switch on the two prefs - OnSiteCheckouts - OnSiteCheckoutsForce Test plan: Try to check an item out using an unknown barcode With the 2 prefs set to on and without this patch, you will get the following error in the log Can't call method "materials" on an undefined value at /home/vagrant/kohaclone/circ/circulation.pl line 387. With this patch applied you should not get this error and a correct behaviour for the different pref combinations. --- circ/circulation.pl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/circ/circulation.pl b/circ/circulation.pl index 130d350288..8ca5a78a3c 100755 --- a/circ/circulation.pl +++ b/circ/circulation.pl @@ -372,7 +372,7 @@ if (@$barcodes) { } } - unless( $onsite_checkout and C4::Context->preference("OnSiteCheckoutsForce") ) { + if ( $error->{UNKNOWN_BARCODE} or not $onsite_checkout or not C4::Context->preference("OnSiteCheckoutsForce") ) { delete $question->{'DEBT'} if ($debt_confirmed); foreach my $impossible ( keys %$error ) { $template_params->{$impossible} = $$error{$impossible}; @@ -380,7 +380,8 @@ if (@$barcodes) { $blocker = 1; } } - if( !$blocker || $force_allow_issue ){ + + if( $item and ( !$blocker or $force_allow_issue ) ){ my $confirm_required = 0; unless($issueconfirmed){ # Get the item title for more information -- 2.11.0