From 3b9d6631b23fe89271edb01ba935df6d1c253947 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 always clear items.onloan Content-Type: text/plain; charset=utf-8 If an item is no longer issued but somehow still has a date in the onloan column, checking it in should clear that date. Realized by a simple change in AddReturn, moving the ModItem call outside the if-doreturn statement and testing if the change is needed. 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 --- C4/Circulation.pm | 4 ++-- t/db_dependent/Circulation.t | 13 ++++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index 3e711cd..1e0fce6 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -1919,9 +1919,9 @@ sub AddReturn { $messages->{'WasReturned'} = 1; } - - ModItem({ onloan => undef }, $item->{biblionumber}, $item->{'itemnumber'}); } + # Clear items.onloan when needed + ModItem({ onloan => undef }, $item->{biblionumber}, $item->{itemnumber}) if defined $item->{onloan}; # the holdingbranch is updated if the document is returned to another location. # this is always done regardless of whether the item was on loan or not diff --git a/t/db_dependent/Circulation.t b/t/db_dependent/Circulation.t index f4ff177..f64dd59 100755 --- a/t/db_dependent/Circulation.t +++ b/t/db_dependent/Circulation.t @@ -17,7 +17,7 @@ use Modern::Perl; -use Test::More tests => 113; +use Test::More tests => 114; use DateTime; @@ -2047,6 +2047,17 @@ subtest 'CanBookBeIssued | is_overdue' => sub { }; +subtest 'AddReturn should always clear items.onloan' => sub { + plan tests => 1; + + # Tested by returning an item that has not been issued + 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' ); +}; + sub set_userenv { my ( $library ) = @_; C4::Context->set_userenv(0,0,0,'firstname','surname', $library->{branchcode}, $library->{branchname}, '', '', ''); -- 2.1.4