From: Thomas Berezansky Date: Wed, 24 Jul 2013 14:02:08 +0000 (-0400) Subject: Fix error on deleted hold in transit X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=dae5f2a1f1057ed4fdd83ca1b861ca2864fe6b45;p=evergreen%2Fequinox.git Fix error on deleted hold in transit May be caused by purging holds combined with "Checkout fills related hold" Signed-off-by: Thomas Berezansky Signed-off-by: Jason Stephenson --- diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm index ff50ed3797..e01bbc9e4f 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm @@ -3271,14 +3271,21 @@ sub process_received_transit { if($hold_transit) { my $hold = $self->editor->retrieve_action_hold_request($hold_transit->hold); - # hold has arrived at destination, set shelf time - $self->put_hold_on_shelf($hold); - $self->bail_on_events($self->editor->event) - unless $self->editor->update_action_hold_request($hold); - return if $self->bail_out; + if ($hold) { + # hold has arrived at destination, set shelf time + $self->put_hold_on_shelf($hold); + $self->bail_on_events($self->editor->event) + unless $self->editor->update_action_hold_request($hold); + return if $self->bail_out; - $self->notify_hold($hold_transit->hold); - $ishold = 1; + $self->notify_hold($hold_transit->hold); + $ishold = 1; + } else { + $hold_transit = undef; + $self->cancelled_hold_transit(1); + $self->reshelve_copy(1); + $self->fake_hold_dest(0); + } } $self->push_events(