Bug 21231: BlockReturnofLostItems does not prevent lost items being found

When the syspref BlockReturnOfLostItems is set to Block, the item is blocked from being returned, but is still considered found -- it's set to lost=0 and a refund is applied to the patron (if circ rules allow). The item can then be checked in a second time and returned as it is no longer lost.

Test Plan:
1) Set an item to lost
2) Set BlockReturnOfLostItems to Block
3) Check the lost item in
4) Checkin  message should say item is lost and cannot be returned
5) Check lost status of item, it should remain unchanged

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
(cherry picked from commit ca2430480e)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit 3af501884e)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
Kyle M Hall 2018-08-16 07:11:17 -04:00 committed by Fridolin Somers
parent 026a7672c7
commit e28ef43417
3 changed files with 20 additions and 7 deletions

View File

@ -1958,7 +1958,9 @@ sub AddReturn {
UpdateHoldingbranch($branch, $item->{'itemnumber'});
$item->{'holdingbranch'} = $branch; # update item data holdingbranch too
}
ModDateLastSeen( $item->{'itemnumber'} );
my $leave_item_lost = C4::Context->preference("BlockReturnOfLostItems") ? 1 : 0;
ModDateLastSeen( $item->{itemnumber}, $leave_item_lost );
# check if we have a transfer for this document
my ($datesent,$frombranch,$tobranch) = GetTransfers( $item->{'itemnumber'} );

View File

@ -638,18 +638,24 @@ sub ModItemTransfer {
=head2 ModDateLastSeen
ModDateLastSeen($itemnum);
ModDateLastSeen( $itemnumber, $leave_item_lost );
Mark item as seen. Is called when an item is issued, returned or manually marked during inventory/stocktaking.
C<$itemnum> is the item number
C<$itemnumber> is the item number
C<$leave_item_lost> determines if a lost item will be found or remain lost
=cut
sub ModDateLastSeen {
my ($itemnumber) = @_;
my ( $itemnumber, $leave_item_lost ) = @_;
my $today = output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 });
ModItem({ itemlost => 0, datelastseen => $today }, undef, $itemnumber);
my $params;
$params->{datelastseen} = $today;
$params->{itemlost} = 0 unless $leave_item_lost;
ModItem( $params, undef, $itemnumber );
}
=head2 DelItem

View File

@ -616,7 +616,12 @@ $(document).ready(function () {
<p class="problem">Local use recorded</p>
[% END %]
[% IF ( errmsgloo.waslost ) %]
<p class="problem">Item was lost, now found.</p>
[% IF Koha.Preference('BlockReturnOfLostItems') %]
<p class="problem">Item is lost, cannot be checked in.</p>
[% ELSE %]
<p class="problem">Item was lost, now found.</p>
[% END %]
[% IF LostItemFeeRefunded and not Koha.Preference('BlockReturnOfLostItems') %]
<p class="problem">A refund has been applied to the borrowing patron's account.</p>
[% ELSIF Koha.Preference('BlockReturnOfLostItems') %]