From c449e5df5a497f0bd4faf7c45687c93480cb5bda Mon Sep 17 00:00:00 2001 From: erickson Date: Wed, 3 Jun 2009 15:38:22 +0000 Subject: [PATCH] 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@13299 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm | 5 +++-- Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm index 1770fcc023..b492cd5e30 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 712de32b0c..3aef62dc0f 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); } -- 2.11.0