From 527983fc086292359c32c69ca467c6427816bdf5 Mon Sep 17 00:00:00 2001 From: Chris Sharp Date: Wed, 24 Aug 2016 14:23:09 -0400 Subject: [PATCH] LP#1613374 - Check stored copy status before clobbering it. Some transit.copy_statuses would result in some other behavior upon checkin, so we check all that would go into 'Reshelving' status, otherwise, restore the stored status. Signed-off-by: Chris Sharp --- .../lib/OpenILS/Application/Circ/Transit.pm | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Transit.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Transit.pm index 88b706be5b..fad79239c9 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Transit.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Transit.pm @@ -245,8 +245,21 @@ sub __abort_transit { # Only change the copy status if the copy status is "In Transit." if ($copy->status == OILS_COPY_STATUS_IN_TRANSIT) { - # recover the copy status - $copy->status( OILS_COPY_STATUS_CANCELED_TRANSIT ); + # if the status would normally result in 'Reshelving' once the item is checked in + if ($transit->copy_status == OILS_COPY_STATUS_AVAILABLE || + $transit->copy_status == OILS_COPY_STATUS_CHECKED_OUT || + $transit->copy_status == OILS_COPY_STATUS_IN_PROCESS || + $transit->copy_status == OILS_COPY_STATUS_ON_HOLDS_SHELF || + $transit->copy_status == OILS_COPY_STATUS_IN_TRANSIT || + $transit->copy_status == OILS_COPY_STATUS_CATALOGING || + $transit->copy_status == OILS_COPY_STATUS_ON_RESV_SHELF || + $transit->copy_status == OILS_COPY_STATUS_RESHELVING) { + # set copy to Canceled Transit + $copy->status( OILS_COPY_STATUS_CANCELED_TRANSIT); + } else { + # recover the copy status + $copy->status($transit->copy_status); + } $copy->editor( $e->requestor->id ); $copy->edit_date('now'); -- 2.43.2