From: erickson Date: Wed, 3 Jun 2009 15:38:48 +0000 (+0000) Subject: when retargeting alternate holds after opportunistic checkin capture, only retarget... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=776e7b3fb2355bd3f9ccfbdeb730f3227b573b56;p=Evergreen.git when retargeting alternate holds after opportunistic checkin capture, only retarget related holds not all holds with prev_check_time=null git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_4_0@13300 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm index f989ae8be2..ac87ccaba7 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm @@ -2033,9 +2033,10 @@ sub do_hold_notify { } sub retarget_holds { - $logger->info("retargeting prev_check_time=null holds after opportunistic capture"); + my $self = shift; + $logger->info("circulator: retargeting holds @{$self->retarget} after opportunistic capture"); my $ses = OpenSRF::AppSession->create('open-ils.storage'); - $ses->request('open-ils.storage.action.hold_request.copy_targeter'); + $ses->request('open-ils.storage.action.hold_request.copy_targeter', undef, $self->retarget); # no reason to wait for the return value return; } diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm index 1208dafd67..1d9af605eb 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm @@ -1525,7 +1525,7 @@ sub find_nearest_permitted_hold { or return (undef, $editor->event); - my $retarget = 0; + my @retarget; # re-target any other holds that already target this copy for my $old_hold (@$old_holds) { @@ -1536,10 +1536,10 @@ sub find_nearest_permitted_hold { $old_hold->clear_prev_check_time; $editor->update_action_hold_request($old_hold) or return (undef, $editor->event); - $retarget = 1; + push(@retarget, $old_hold->id); } - return ($best_hold, undef, $retarget); + return ($best_hold, undef, (@retarget) ? \@retarget : undef); }