Bug 35587: Do not trigger transfer if lost item returned and BlockReturnOfLostItems enabled

This fixes current buggy behaviour - when BlockReturnOfLostItems is enabled, no transfer should be triggered and the lost status should be retained.

To test:

1. Go to Koha Administration -> Global system preferences
2. Set the BlockReturnOfLostItems system preference to Block
3. Enable the AutomaticItemReturn system preference (this is simply to make testing a bit faster)
4. Take note of your logged in library
5. Search for an item where the home library is NOT the same as your logged in library
6. Edit this item and give it a lost status
7. Check in the item
8. Notice the item is returned and a transfer is automatically triggered
9. If you go to the item record page, the lost status has been remove

10. Apply the patch and restart services

11. Edit the item again and give it a lost status. This will also cancel the transfer
12. Check in the item
13. Confirm the transfer is NOT triggered and the lost status is retained as expected.
14. Go back to system preferences and disable the BlockReturnOfLostItems system preference (set to "Don't block")
15. Check in the item
16. Confirm the transfer is triggered and lost status is removed

17. Confirm tests pass

prove t/db_dependent/Circulation/Returns.t
prove t/db_dependent/Circulation/Branch.t

Sponsored-by: Pymble Ladies' College
Signed-off-by: Esther <esther@bywatersolutions.com>
Signed-off-by: Kelly <kelly@bywatersolutions.com>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit is contained in:
Aleisha Amohia 2023-12-20 02:37:48 +00:00 committed by Katrin Fischer
parent 1f16ac11e2
commit 930ad0178d
Signed by: kfischer
GPG key ID: 0EF6E2C03357A834
2 changed files with 6 additions and 1 deletions

View file

@ -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'} )

View file

@ -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" );