diff --git a/C4/Circulation.pm b/C4/Circulation.pm index 8db38ca253..8a8d3ab8fc 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -60,6 +60,7 @@ use Koha::Account::Offsets; use Koha::Config::SysPrefs; use Koha::Charges::Fees; use Koha::Util::SystemPreferences; +use Koha::Checkouts::ReturnClaims; use Carp; use List::MoreUtils qw( uniq any ); use Scalar::Util qw( looks_like_number ); @@ -2127,6 +2128,19 @@ sub AddReturn { } } + if ( C4::Context->preference('ClaimReturnedLostValue') ) { + my $claims = Koha::Checkouts::ReturnClaims->search( + { + itemnumber => $item->id, + resolution => undef, + } + ); + + if ( $claims->count ) { + $messages->{ReturnClaims} = $claims; + } + } + return ( $doreturn, $messages, $issue, ( $patron ? $patron->unblessed : {} )); } diff --git a/t/db_dependent/Circulation/Returns.t b/t/db_dependent/Circulation/Returns.t index 41f7736bec..25ce71849c 100644 --- a/t/db_dependent/Circulation/Returns.t +++ b/t/db_dependent/Circulation/Returns.t @@ -17,7 +17,7 @@ use Modern::Perl; -use Test::More tests => 4; +use Test::More tests => 5; use Test::MockModule; use Test::Warn; @@ -339,4 +339,29 @@ subtest 'BlockReturnOfLostItems' => sub { is( $doreturn, 1, "Without BlockReturnOfLostItems, a checkin of a lost item should not be blocked"); }; +subtest 'Checkin of an item claimed as returned should generate a message' => sub { + plan tests => 1; + + t::lib::Mocks::mock_preference('ClaimReturnedLostValue', 1); + my $biblio = $builder->build_object( { class => 'Koha::Biblios' } ); + my $item = $builder->build_object( + { + class => 'Koha::Items', + value => { + biblionumber => $biblio->biblionumber, + notforloan => 0, + itemlost => 0, + withdrawn => 0, + } + } + ); + my $patron = $builder->build_object({class => 'Koha::Patrons'}); + my $checkout = AddIssue( $patron->unblessed, $item->barcode ); + + $checkout->claim_returned({ created_by => $patron->id }); + + my ( $doreturn, $messages, $issue ) = AddReturn($item->barcode); + ok( $messages->{ReturnClaims}, "ReturnClaims is in messages for return of a claimed as returned itm" ); +}; + $schema->storage->txn_rollback;