LP#1791335: Retain stat cats on item transfer
authorMike Rylander <mrylander@gmail.com>
Wed, 19 Sep 2018 15:16:39 +0000 (11:16 -0400)
committerChris Sharp <csharp@georgialibraries.org>
Mon, 24 Sep 2018 17:17:11 +0000 (13:17 -0400)
For some reason, parts were protected during item transfer, but stat cats were
not.  This commit protects them by fleshing stat cat entries in the outer
item transfer method.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/src/perlmods/lib/OpenILS/Application/Cat.pm

index 19c0b6a..2753d01 100644 (file)
@@ -852,8 +852,14 @@ sub transfer_copies_to_volume {
     my $fleshed_copies = [];
     my ($copy, $copy_evt);
     foreach my $copy_id ( @{ $copies } ) {
-        ($copy, $copy_evt) = $U->fetch_copy($copy_id);
-        return $copy_evt if $copy_evt;
+        $copy = $editor->search_asset_copy([
+            { id => $copy_id , deleted => 'f' },
+            {
+                flesh => 1,
+                flesh_fields => { acp => ['parts', 'stat_cat_entries'] }
+            }
+        ])->[0];
+        return OpenILS::Event->new('ASSET_COPY_NOT_FOUND') if !$copy;
         $copy->call_number( $volume );
         $copy->circ_lib( $cn->owning_lib() );
         $copy->ischanged( 't' );