Bug 22042: [22.05.x] Block all return actions when BlockReturnOfWithdrawn items is set to block
Currently this syspref only bokcs the literal 'return' from a patron, i.e. the checkin It still processes transfers, refunds lost items, updates NotForLoan status etc. We should block all of these things To test: 1 - Set BlockReturnOfWithdrawn to block 2 - Set an item as lost and withdrawn 3 - Check it in 4 - Item is found 5 - Apply patch 6 - Repeat 1-3 7 - Checkin is blocked, item still lost Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
parent
97827dc93a
commit
321d8f7ce6
2 changed files with 24 additions and 6 deletions
|
@ -2095,6 +2095,16 @@ sub AddReturn {
|
|||
}
|
||||
}
|
||||
|
||||
if ( $item->withdrawn ) { # book has been cancelled
|
||||
$messages->{'withdrawn'} = 1;
|
||||
|
||||
# In the case where we block return of withdrawn, we should completely block the return
|
||||
# without updating item statuses, so we exit early
|
||||
return ( 0, $messages, $issue, ( $patron ? $patron->unblessed : {} ))
|
||||
if C4::Context->preference("BlockReturnOfWithdrawnItems");
|
||||
}
|
||||
|
||||
|
||||
# full item data, but no borrowernumber or checkout info (no issue)
|
||||
my $hbr = GetBranchItemRule($item->homebranch, $itemtype)->{'returnbranch'} || "homebranch";
|
||||
# get the proper branch to which to return the item
|
||||
|
@ -2164,11 +2174,6 @@ sub AddReturn {
|
|||
return ( $doreturn, $messages, $issue, $patron_unblessed);
|
||||
}
|
||||
|
||||
if ( $item->withdrawn ) { # book has been cancelled
|
||||
$messages->{'withdrawn'} = 1;
|
||||
$doreturn = 0 if C4::Context->preference("BlockReturnOfWithdrawnItems");
|
||||
}
|
||||
|
||||
if ( $item->itemlost and C4::Context->preference("BlockReturnOfLostItems") ) {
|
||||
$doreturn = 0;
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
use Modern::Perl;
|
||||
use utf8;
|
||||
|
||||
use Test::More tests => 60;
|
||||
use Test::More tests => 61;
|
||||
use Test::Exception;
|
||||
use Test::MockModule;
|
||||
use Test::Deep qw( cmp_deeply );
|
||||
|
@ -5450,6 +5450,19 @@ subtest "GetSoonestRenewDate tests" => sub {
|
|||
);
|
||||
};
|
||||
|
||||
subtest 'Tests for BlockReturnOfWithdrawnItems' => sub {
|
||||
|
||||
plan tests => 1;
|
||||
|
||||
t::lib::Mocks::mock_preference('BlockReturnOfWithdrawnItems', 1);
|
||||
my $item = $builder->build_sample_item();
|
||||
$item->withdrawn(1)->itemlost(1)->store;
|
||||
my @return = AddReturn( $item->barcode, $item->homebranch, 0, undef );
|
||||
is_deeply(
|
||||
\@return,
|
||||
[ 0, { NotIssued => $item->barcode, withdrawn => 1 }, undef, {} ], "Item returned as withdrawn, no other messages");
|
||||
};
|
||||
|
||||
$schema->storage->txn_rollback;
|
||||
C4::Context->clear_syspref_cache();
|
||||
$branches = Koha::Libraries->search();
|
||||
|
|
Loading…
Reference in a new issue