From a744a3e2026c52b9270ea248909f71f3744ff1a4 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Wed, 28 Mar 2018 16:25:07 +0200 Subject: [PATCH] Bug 20487: AddReturn should clear items.onloan for unissued items If an item is no longer issued but somehow still has a date in the onloan column, checking it in should clear that date. Adding a ModItem call in the NotIssued section. Test plan: [1] Run t/db_dependent/Circulation.t [2] Bonus: Checkout item, delete issue from table, checkin. Verify that items.onloan has been cleared. Signed-off-by: Marcel de Rooy Signed-off-by: Charles Farmer Signed-off-by: Josef Moravec Signed-off-by: Nick Clemens --- C4/Circulation.pm | 1 + t/db_dependent/Circulation.t | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index b772a7a999..9c14365947 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -1817,6 +1817,7 @@ sub AddReturn { . Dumper($issue->unblessed) . "\n"; } else { $messages->{'NotIssued'} = $barcode; + ModItem({ onloan => undef }, $item->{biblionumber}, $item->{itemnumber}) if defined $item->{onloan}; # even though item is not on loan, it may still be transferred; therefore, get current branch info $doreturn = 0; # No issue, no borrowernumber. ONLY if $doreturn, *might* you have a $borrower later. diff --git a/t/db_dependent/Circulation.t b/t/db_dependent/Circulation.t index d383d3f9c8..09d4d0adb6 100755 --- a/t/db_dependent/Circulation.t +++ b/t/db_dependent/Circulation.t @@ -17,7 +17,7 @@ use Modern::Perl; -use Test::More tests => 118; +use Test::More tests => 119; use Data::Dumper; use DateTime; @@ -2358,6 +2358,16 @@ subtest 'CanBookBeIssued | notforloan' => sub { # TODO test with AllowNotForLoanOverride = 1 }; +subtest 'AddReturn should clear items.onloan for unissued items' => sub { + plan tests => 1; + + t::lib::Mocks::mock_preference( "AllowReturnToBranch", 'anywhere' ); + my $item = $builder->build_object({ class => 'Koha::Items', value => { onloan => '2018-01-01' }}); + AddReturn( $item->barcode, $item->homebranch ); + $item->discard_changes; # refresh + is( $item->onloan, undef, 'AddReturn did clear items.onloan' ); +}; + $schema->storage->txn_rollback; $cache->clear_from_cache('single_holidays'); -- 2.39.5