From: Thomas Berezansky Date: Tue, 31 Jan 2012 15:48:25 +0000 (-0500) Subject: Fix inability to suspend holds X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=3ace401ed850aa71eb555d7e30e0fe8c47dd6d0a;p=contrib%2FConifer.git 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 --- 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) {