From 3ace401ed850aa71eb555d7e30e0fe8c47dd6d0a Mon Sep 17 00:00:00 2001 From: Thomas Berezansky Date: Tue, 31 Jan 2012 10:48:25 -0500 Subject: [PATCH] Fix inability to suspend holds The hold status code was being used for "has the hold been captured", but the value for "frozen" was after the cutoff being assumed for "captured". So check for the suspended code specifically in the if, and don't return the suspended code if there is a capture time. Signed-off-by: Thomas Berezansky Signed-off-by: Bill Erickson --- Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm index 9271c5de84..5c840c5d10 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm @@ -935,7 +935,7 @@ sub update_hold_impl { # -------------------------------------------------------------- if ($U->is_true($hold->frozen) and not $U->is_true($orig_hold->frozen)) { $hold_status = _hold_status($e, $hold); - if ($hold_status > 2) { # hold is captured + if ($hold_status > 2 && $hold_status != 7) { # hold is captured $logger->info("bypassing hold freeze on captured hold"); return OpenILS::Event->new('HOLD_SUSPEND_AFTER_CAPTURE'); } @@ -1177,7 +1177,7 @@ sub _hold_status { if ($hold->cancel_time) { return 6; } - if ($U->is_true($hold->frozen)) { + if ($U->is_true($hold->frozen) && !$hold->capture_time) { return 7; } if ($hold->current_shelf_lib and $hold->current_shelf_lib ne $hold->pickup_lib) { -- 2.43.2