From 9694bb840319750ecb91f5bf3bbb10c7171d78b3 Mon Sep 17 00:00:00 2001 From: erickson Date: Fri, 22 Feb 2008 18:51:26 +0000 Subject: [PATCH] added support for volume-level holds migration during volume merging git-svn-id: svn://svn.open-ils.org/ILS/trunk@8825 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../perlmods/OpenILS/Application/Cat/Merge.pm | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Cat/Merge.pm b/Open-ILS/src/perlmods/OpenILS/Application/Cat/Merge.pm index 310db24f7e..7270182d25 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Cat/Merge.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Cat/Merge.pm @@ -218,6 +218,7 @@ sub merge_volumes { $_->edit_date('now'); return (undef,$editor->die_event) unless $editor->allowed('UPDATE_VOLUME', $_->owning_lib); $editor->update_asset_call_number($_) or return (undef, $editor->die_event); + merge_volume_holds($editor, $bigcn, $_->id); } my ($mvol) = grep { $_->id == $bigcn } @$volumes; @@ -225,6 +226,32 @@ sub merge_volumes { return ($mvol); } +sub merge_volume_holds { + my($e, $master_id, $vol_id) = @_; + + my $holds = $e->search_action_hold_request( + { cancel_time => undef, + fulfillment_time => undef, + hold_type => 'V', + target => $vol_id + } + ); + + for my $hold (@$holds) { + + $logger->info("Changing hold ".$hold->id. + " target from ".$hold->target." to $master_id in volume merge"); + + $hold->target($master_id); + unless($e->update_action_hold_request($hold)) { + my $evt = $e->event; + $logger->error("Error updating hold ". $evt->textcode .":". $evt->desc .":". $evt->stacktrace); + } + } + + return undef; +} + 1; -- 2.43.2