From 15f7ac993ecf20705a7f39eaa767069f8fcae6d2 Mon Sep 17 00:00:00 2001 From: Steven Callender Date: Tue, 10 Jul 2012 15:43:59 -0400 Subject: [PATCH] Changed the thawing of a hold to first update the hold record and then re-target. When thawing a hold, originaly we were first re-targeting before actually saving the hold record. On items with large quantities, sometimes the hold would timeout on targetig before getting a chance to actually save. This patch moves things around to first save the hold record before attempting to retarget. Signed-off-by: Mike Rylander Signed-off-by: Bill Erickson --- .../perlmods/lib/OpenILS/Application/Circ/Holds.pm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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 b72db96635..1dee0c365a 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm @@ -1003,10 +1003,20 @@ sub update_hold_impl { } } - update_hold_if_frozen($self, $e, $hold, $orig_hold); + if($U->is_true($hold->frozen)) { + $logger->info("clearing current_copy and check_time for frozen hold ".$hold->id); + $hold->clear_current_copy; + $hold->clear_prev_check_time; + } + $e->update_action_hold_request($hold) or return $e->die_event; $e->commit; + if(!$U->is_true($hold->frozen) && $U->is_true($orig_hold->frozen)) { + $logger->info("Running targeter on activated hold ".$hold->id); + $U->storagereq( 'open-ils.storage.action.hold_request.copy_targeter', undef, $hold->id ); + } + # a change to mint-condition changes the set of potential copies, so retarget the hold; if($U->is_true($hold->mint_condition) and !$U->is_true($orig_hold->mint_condition)) { _reset_hold($self, $e->requestor, $hold) -- 2.43.2