From 2cfd41d64f22b7ed57c0d57c4ea7a11d711bf6d4 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Fri, 19 Mar 2021 14:51:57 +0000 Subject: [PATCH] Bug 26704: Update Koha::Item to use Koha::Object::Messages Signed-off-by: Tomas Cohen Arazi Signed-off-by: Katrin Fischer --- C4/Circulation.pm | 49 ++++++++++++++++++++++++++--------------------- Koha/Item.pm | 23 +++++++++++++++++++--- 2 files changed, 47 insertions(+), 25 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index 69bf445aea..f7bfc3a4d1 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -2129,29 +2129,34 @@ sub AddReturn { if ($item_was_lost) { $messages->{'WasLost'} = 1; unless ( C4::Context->preference("BlockReturnOfLostItems") ) { - $messages->{'LostItemFeeRefunded'} = 1 if $updated_item->{_refunded}; - $messages->{'LostItemFeeRestored'} = 1 if $updated_item->{_restored}; - - if ( $updated_item->{_charge} ) { - $issue //= Koha::Old::Checkouts->search( - { itemnumber => $item->itemnumber }, - { order_by => { '-desc' => 'returndate' }, rows => 1 } ) - ->single; - unless ( exists( $patron_unblessed->{branchcode} ) ) { - my $patron = $issue->patron; - $patron_unblessed = $patron->unblessed; - } - _CalculateAndUpdateFine( - { - issue => $issue, - item => $item->unblessed, - borrower => $patron_unblessed, - return_date => $return_date + my @object_messages = @{ $updated_item->messages }; + for my $message (@object_messages) { + $messages->{'LostItemFeeRefunded'} = 1 + if $message->message eq 'lost_refunded'; + $messages->{'LostItemFeeRestored'} = 1 + if $message->message eq 'lost_restored'; + + if ( $message->message eq 'lost_charge' ) { + $issue //= Koha::Old::Checkouts->search( + { itemnumber => $item->itemnumber }, + { order_by => { '-desc' => 'returndate' }, rows => 1 } + )->single; + unless ( exists( $patron_unblessed->{branchcode} ) ) { + my $patron = $issue->patron; + $patron_unblessed = $patron->unblessed; } - ); - _FixOverduesOnReturn( $patron_unblessed->{borrowernumber}, - $item->itemnumber, undef, 'RETURNED' ); - $messages->{'LostItemFeeCharged'} = 1; + _CalculateAndUpdateFine( + { + issue => $issue, + item => $item->unblessed, + borrower => $patron_unblessed, + return_date => $return_date + } + ); + _FixOverduesOnReturn( $patron_unblessed->{borrowernumber}, + $item->itemnumber, undef, 'RETURNED' ); + $messages->{'LostItemFeeCharged'} = 1; + } } } } diff --git a/Koha/Item.pm b/Koha/Item.pm index 57a04656cf..26321babfe 100644 --- a/Koha/Item.pm +++ b/Koha/Item.pm @@ -1158,7 +1158,13 @@ sub _set_found_trigger { ); $credit->apply( { debits => [$lost_charge] } ); - $self->{_refunded} = 1; + $self->add_message( + { + type => 'info', + message => 'lost_refunded', + payload => { credit_id => $credit->id } + } + ); } # Update the account status @@ -1208,7 +1214,13 @@ sub _set_found_trigger { if ( $refund ) { # Revert the forgive credit $refund->void({ interface => 'trigger' }); - $self->{_restored} = 1; + $self->add_message( + { + type => 'info', + message => 'lost_restored', + payload => { refund_id => $refund->id } + } + ); } # Reconcile balances if required @@ -1218,7 +1230,12 @@ sub _set_found_trigger { } } } elsif ( $lostreturn_policy eq 'charge' ) { - $self->{_charge} = 1; + $self->add_message( + { + type => 'info', + message => 'lost_charge', + } + ); } } -- 2.30.2