From f54b10b8f1b4c26b67986bee731673aad3c79b06 Mon Sep 17 00:00:00 2001 From: erickson Date: Wed, 27 Jul 2005 21:48:14 +0000 Subject: [PATCH] fixing up some lost items handling git-svn-id: svn://svn.open-ils.org/ILS/trunk@1560 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../src/perlmods/OpenILS/Application/Circ/Holds.pm | 3 +++ .../src/perlmods/OpenILS/Application/Circ/Rules.pm | 22 ++++++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm index 55f6eed63d..a05cb41cd4 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm @@ -416,11 +416,14 @@ sub capture_copy { sub _build_hold_transit { my( $self, $login_session, $session, $hold, $user, $copy ) = @_; my $trans = Fieldmapper::action::hold_transit_copy->new; + $trans->hold($hold->id); $trans->source($user->home_ou); $trans->dest($hold->pickup_lib); $trans->source_send_time("now"); $trans->target_copy($copy->id); + $trans->copy_status($copy->status); + my $meth = $self->method_lookup("open-ils.circ.hold_transit.create"); my ($stat) = $meth->run( $login_session, $trans, $session ); if(!$stat) { throw OpenSRF::EX ("Error creating new hold transit"); } diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Rules.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Rules.pm index 6923d2b917..94ddf287fa 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Rules.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Rules.pm @@ -762,14 +762,28 @@ sub transit_receive { my $s = $session->request( "open-ils.storage.direct.asset.copy.update", $copy )->gather(1); - if(!$s) {throw OpenSRF::EX::ERROR ("Error putting copy on holds shelf ".$copy->id);} # blah.. + if(!$s) {throw OpenSRF::EX::ERROR ("Error updating copy ".$copy->id);} # blah.. $apputils->commit_db_session($session); - return { status => 0, route_to => $user->home_ou, text => "Transit Complete", record => $record, copy => $copy }; + my($status, $status_text) = (0, "Transit Complete"); + + if($transit->copy_status eq "3") { #if copy is lost + $status = 2; + $status_text = "Copy is marked as LOST"; + } + + return { + status => $status, + route_to => $user->home_ou, + text => $status_text, + record => $record, + copy => $copy }; } else { $apputils->rollback_db_session($session); + + return { copy => $copy, record => $record, status => 3, route_to => $transit->dest, @@ -826,6 +840,8 @@ sub checkin { my $session = $apputils->start_db_session(); my $transit_return; + my $orig_copy_status; + try { @@ -861,6 +877,7 @@ sub checkin { } + $orig_copy_status = $copy->status; $copy->status(0); # find circ's where the transaction is still open for the @@ -964,6 +981,7 @@ sub checkin { $transit->dest($copy->circ_lib); $transit->target_copy($copy->id); $transit->source_send_time("now"); + $transit->copy_status($orig_copy_status); my $s = $session->request( "open-ils.storage.direct.action.transit_copy.create", $transit )->gather(1); -- 2.11.0