@@ -, +, @@ --- opac/sco/sco-main.pl | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) --- a/opac/sco/sco-main.pl +++ a/opac/sco/sco-main.pl @@ -144,16 +144,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, @@ -187,9 +193,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, ); --