diff --git a/C4/Circulation.pm b/C4/Circulation.pm index 562cad7267..b98c267f4b 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -2514,6 +2514,10 @@ sub AddReturn { } } + if ( $messages->{WasLost} and C4::Context->preference('BlockReturnOfLostItems') ) { + $validTransfer = 0; + } + # Transfer to returnbranch if Automatic transfer set or append message NeedsTransfer if ( $validTransfer && !C4::RotatingCollections::isItemInAnyCollection( $item->itemnumber ) && ( $doreturn or $messages->{'NotIssued'} ) diff --git a/t/db_dependent/Circulation/Returns.t b/t/db_dependent/Circulation/Returns.t index db25fda549..6d3069df45 100755 --- a/t/db_dependent/Circulation/Returns.t +++ b/t/db_dependent/Circulation/Returns.t @@ -286,7 +286,7 @@ subtest 'Handle ids duplication' => sub { }; subtest 'BlockReturnOfLostItems' => sub { - plan tests => 4; + plan tests => 5; my $item = $builder->build_sample_item; my $patron = $builder->build_object({ class => 'Koha::Patrons' }); my $checkout = AddIssue( $patron, $item->barcode ); @@ -298,6 +298,7 @@ subtest 'BlockReturnOfLostItems' => sub { my ( $doreturn, $messages, $issue ) = AddReturn($item->barcode); is( $doreturn, 0, "With BlockReturnOfLostItems, a checkin of a lost item should be blocked"); is( $messages->{WasLost}, 1, "... and the WasLost flag should be set"); + is( $messages->{NeedsTransfer}, undef, "... and no transfer should be triggered"); $item->discard_changes; is( $item->itemlost, 1, "Item remains lost" );