From b8091c4d6920cd225fd36cdc272a53f0510e0478 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Mon, 4 Nov 2019 16:06:15 +0000 Subject: [PATCH] Bug 23964: ReservesNeedReturn should only apply to available items To test: 1 - Checkout an item to a patron 2 - Make sure 'ReservesNeedReturn' is set to 'Automatically' 3 - Place an item level hold on the checked out item 4 - Note the hold is marked waiting 5 - Delete the hold 6 - Apply patch 7 - Place a new hold 8 - Hold is not marked waiting 9 - Please a hold on a different item 10 - Note it is marked waiting 11 - Test when item is damaged and hold not allowed on damaged items 12 - Test when item is in transit 13 - Test when item has another hold 14 - Only in the case where none of the above are true should the hold be marked waiting Signed-off-by: Martin Renvoize --- C4/Reserves.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/C4/Reserves.pm b/C4/Reserves.pm index cf6ee50169..b9fb57b5c4 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -173,9 +173,9 @@ sub AddReserve { # if we have an item selectionned, and the pickup branch is the same as the holdingbranch # of the document, we force the value $priority and $found . if ( $checkitem and not C4::Context->preference('ReservesNeedReturns') ) { - $priority = 0; my $item = Koha::Items->find( $checkitem ); # FIXME Prevent bad calls - if ( $item->holdingbranch eq $branch ) { + if ( !$item->onloan && $item->holdingbranch eq $branch && ( $item->damaged && C4::Context->preference('AllowHoldsOnDamagedItems') || !$item->damaged ) && !$item->get_transfer && !$item->holds->count ) { + $priority = 0; $found = 'W'; } } -- 2.20.1