From 89b76caf4d0d5ccb1294399c36c550186a5a1fec 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 --- 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 f0e39b7583..cf9d0fae45 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -2134,29 +2134,34 @@ sub AddReturn { if ($item_was_lost) { $messages->{'WasLost'} = 1; unless ( C4::Context->preference("BlockReturnOfLostItems") ) { - $messages->{'LostItemFeeRefunded'} = $updated_item->{_refunded}; - $messages->{'LostItemFeeRestored'} = $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 730a73bc8d..5d6fcb6f1a 100644 --- a/Koha/Item.pm +++ b/Koha/Item.pm @@ -1039,7 +1039,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 @@ -1089,7 +1095,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 @@ -1099,7 +1111,12 @@ sub _set_found_trigger { } } } elsif ( $lostreturn_policy eq 'charge' ) { - $self->{_charge} = 1; + $self->add_message( + { + type => 'info', + message => 'lost_charge', + } + ); } } -- 2.20.1