From 820535244922c9a090f9a297900ec65062f59ffd Mon Sep 17 00:00:00 2001 From: Arthur Suzuki Date: Fri, 3 Jul 2020 16:55:24 +0200 Subject: [PATCH] Bug 25408: (QA follow-up) --- C4/Reserves.pm | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/C4/Reserves.pm b/C4/Reserves.pm index 30de970146..296a85c725 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -326,11 +326,11 @@ sub CanBookBeReserved{ } my $canReserve = { status => '' }; - my ($rights,$item); - foreach my $itemnumber (@itemnumbers) { $canReserve = CanItemBeReserved( $borrowernumber, $itemnumber, $pickup_branchcode, $params ); - return { status => 'RecordHoldNotAllowed' } if $canReserve->{rights}->{opacitemholds} eq 'F'; + my $opacitemholds = $canReserve->{rights}->{opacitemholds}; + return { status => 'RecordHoldNotAllowed' } if $opacitemholds eq 'F'; + return { status => 'OK' } if ( $canReserve->{status} eq 'notReservable' && $opacitemholds eq 'N' ); return { status => 'OK' } if $canReserve->{status} eq 'OK'; } return $canReserve; @@ -414,7 +414,8 @@ sub CanItemBeReserved { } # we retrieve rights - if ( my $rights = GetHoldRule( $borrower->{'categorycode'}, $item->effective_itemtype, $branchcode ) ) { + my $rights; + if ( $rights = GetHoldRule( $borrower->{'categorycode'}, $item->effective_itemtype, $branchcode ) ) { $ruleitemtype = $rights->{itemtype}; $allowedreserves = $rights->{reservesallowed} // $allowedreserves; $holds_per_record = $rights->{holds_per_record} // $holds_per_record; @@ -434,18 +435,9 @@ sub CanItemBeReserved { my $holds = Koha::Holds->search($search_params); if ( $opacitemholds eq "N" ) { - return { status => "notReservable" }; + return { status => "notReservable", rights => $rights }; } - $item = Koha::Items->find( $itemnumber ); - - my $holds = Koha::Holds->search( - { - borrowernumber => $borrowernumber, - biblionumber => $item->biblionumber, - } - ); - if ( defined $holds_per_record && $holds_per_record ne '' && $holds->count() >= $holds_per_record ) { return { status => "tooManyHoldsForThisRecord", limit => $holds_per_record }; @@ -2279,7 +2271,7 @@ sub GetHoldRule { ); $rules->{holds_per_record} = $holds_per_x_rules->{holds_per_record}; $rules->{holds_per_day} = $holds_per_x_rules->{holds_per_day}; - $rules->{opacitemholds} = $holds_per_x_rules->{opacitemholds}; + $rules->{opacitemholds} = $holds_per_x_rules->{opacitemholds} // 'Y'; return $rules; } -- 2.11.0