From 1716917fb5f6c6bd5b84fa01e8bedd2a1f0bba1b Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Mon, 24 Dec 2018 14:33:51 +0000 Subject: [PATCH] Bug 17978: Check if hold can be placed before placing on placerequest.pl To test: 1 - Set an All/All/All rule with reserves limited 2 to 2 - Search in the staff side 3 - Select all records (or more than 2) from the results 4 - Click 'Place hold' 5 - Find a patron, place holds 6 - You get more holds than you should 7 - Delete those holds 8 - Apply patch 9 - Search and select more than 2 records 10 - Find patron, place holds 11 - Only 2 holds are placed Signed-off-by: Liz Rea Signed-off-by: Martin Renvoize Signed-off-by: Nick Clemens (cherry picked from commit fa53eb4cfa1d0c2125fc3097e6d2328899fc4259) Signed-off-by: Martin Renvoize --- reserve/placerequest.pl | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/reserve/placerequest.pl b/reserve/placerequest.pl index 351041b5df..1f061fe81a 100755 --- a/reserve/placerequest.pl +++ b/reserve/placerequest.pl @@ -95,14 +95,18 @@ if ( $type eq 'str8' && $borrower ) { if ($multi_hold) { my $bibinfo = $bibinfos{$biblionumber}; - AddReserve($branch,$borrower->{'borrowernumber'},$biblionumber,[$biblionumber], - $bibinfo->{rank},$startdate,$expirationdate,$notes,$bibinfo->{title},$checkitem,$found); + if ( CanBookBeReserved($borrower->{'borrowernumber'}, $biblionumber)->{status} eq 'OK' ) { + AddReserve($branch,$borrower->{'borrowernumber'},$biblionumber,[$biblionumber], + $bibinfo->{rank},$startdate,$expirationdate,$notes,$bibinfo->{title},$checkitem,$found); + } } else { # place a request on 1st available for ( my $i = 0 ; $i < $holds_to_place_count ; $i++ ) { - AddReserve( $branch, $borrower->{'borrowernumber'}, - $biblionumber, \@realbi, $rank[0], $startdate, $expirationdate, $notes, $title, - $checkitem, $found, $itemtype ); + if ( CanBookBeReserved($borrower->{'borrowernumber'}, $biblionumber)->{status} eq 'OK' ) { + AddReserve( $branch, $borrower->{'borrowernumber'}, + $biblionumber, \@realbi, $rank[0], $startdate, $expirationdate, $notes, $title, + $checkitem, $found, $itemtype ); + } } } } -- 2.39.5