From 9e052fe5cc0ec7e1a874cd258a0fc387493354c3 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 --- 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 17ae306f26..8e17a679d8 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.11.0