From 9062df67c8df0e6416ee69c01bf10e0acf111bf7 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Fri, 31 Mar 2017 13:22:05 -0300 Subject: [PATCH] Bug 18349: If a confirmation is required, consider as blocker Only RENEW_ISSUE should not be considered as blocker, others should. Note that this code is not robust and the whole script as well as the return of CanBookBeIssued should be rewrittent completely. We need a small patch to easy backport to stable releases Signed-off-by: Nick Clemens Signed-off-by: Kyle M Hall (cherry picked from commit d28d5a280d590bb19afbea23705802aa46af5e6d) Signed-off-by: Katrin Fischer --- opac/sco/sco-main.pl | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/opac/sco/sco-main.pl b/opac/sco/sco-main.pl index 3f1c4b5134..51044c964f 100755 --- a/opac/sco/sco-main.pl +++ b/opac/sco/sco-main.pl @@ -143,16 +143,22 @@ elsif ( $op eq "checkout" ) { 0, C4::Context->preference("AllowItemsOnHoldCheckoutSCO") ); - $confirm_required = scalar keys %$needconfirm; + my $issue_error; + if ( $confirm_required = scalar keys %$needconfirm ) { + for my $error ( qw( UNKNOWN_BARCODE max_loans_allowed ISSUED_TO_ANOTHER NO_MORE_RENEWALS NOT_FOR_LOAN DEBT WTHDRAWN RESTRICTED RESERVED ITEMNOTSAMEBRANCH EXPIRED DEBARRED CARD_LOST GNA INVALID_DATE UNKNOWN_BARCODE TOO_MANY DEBT_GUARANTEES USERBLOCKEDOVERDUE PATRON_CANT PREVISSUE NOT_FOR_LOAN_FORCING ITEM_LOST) ) { + if ( $needconfirm->{$error} ) { + $issue_error = $error; + $confirmed = 0; + last; + } + } + } #warn "confirm_required: " . $confirm_required ; if (scalar keys %$impossible) { - # warn "impossible: numkeys: " . scalar (keys(%$impossible)); - #warn join " ", keys %$impossible; - my $issue_error = (keys %$impossible)[0]; + my $issue_error = (keys %$impossible)[0]; # FIXME This is wrong, we assume only one error and keys are not ordered - # FIXME we assume only one error. $template->param( impossible => $issue_error, "circ_error_$issue_error" => 1, @@ -186,9 +192,8 @@ elsif ( $op eq "checkout" ) { } } elsif ( $confirm_required && !$confirmed ) { #warn "failed confirmation"; - my $issue_error = (keys %$needconfirm)[0]; $template->param( - impossible => (keys %$needconfirm)[0], + impossible => 1, "circ_error_$issue_error" => 1, hide_main => 1, ); -- 2.39.5