@@ -, +, @@ --- C4/Circulation.pm | 14 ++++++++------ .../intranet-tmpl/prog/en/includes/accounts.inc | 1 + .../bootstrap/en/includes/account-table.inc | 1 + 3 files changed, 10 insertions(+), 6 deletions(-) --- a/C4/Circulation.pm +++ a/C4/Circulation.pm @@ -2021,7 +2021,7 @@ sub AddReturn { # fix up the overdues in accounts... if ($borrowernumber) { - my $fix = _FixOverduesOnReturn( $borrowernumber, $item->itemnumber, $exemptfine ); + my $fix = _FixOverduesOnReturn( $borrowernumber, $item->itemnumber, $exemptfine, 'RETURNED' ); defined($fix) or warn "_FixOverduesOnReturn($borrowernumber, $item->itemnumber...) failed!"; # zero is OK, check defined if ( $issue and $issue->is_overdue ) { @@ -2305,7 +2305,7 @@ sub _debar_user_on_return { =head2 _FixOverduesOnReturn - &_FixOverduesOnReturn($borrowernumber, $itemnumber, $exemptfine); + &_FixOverduesOnReturn($borrowernumber, $itemnumber, $exemptfine, $status); C<$borrowernumber> borrowernumber @@ -2313,12 +2313,14 @@ C<$itemnumber> itemnumber C<$exemptfine> BOOL -- remove overdue charge associated with this issue. +C<$status> ENUM -- reason for fix [ RETURNED, RENEWED, LOST, FORGIVEN ] + Internal function =cut sub _FixOverduesOnReturn { - my ( $borrowernumber, $item, $exemptfine ) = @_; + my ( $borrowernumber, $item, $exemptfine, $status ) = @_; unless( $borrowernumber ) { warn "_FixOverduesOnReturn() not supplied valid borrowernumber"; return; @@ -2363,7 +2365,7 @@ sub _FixOverduesOnReturn { &logaction("FINES", 'MODIFY',$borrowernumber,"Overdue forgiven: item $item"); } } else { - $accountline->status('RETURNED'); + $accountline->status($status); } return $accountline->store(); @@ -2845,7 +2847,7 @@ sub AddRenewal { if ( C4::Context->preference('CalculateFinesOnReturn') && $issue->is_overdue ) { _CalculateAndUpdateFine( { issue => $issue, item => $item_unblessed, borrower => $patron_unblessed } ); } - _FixOverduesOnReturn( $borrowernumber, $itemnumber ); + _FixOverduesOnReturn( $borrowernumber, $itemnumber, undef, 'RENEWED' ); # If the due date wasn't specified, calculate it by adding the # book's loan length to today's date or the current due date @@ -3690,7 +3692,7 @@ sub LostItem{ if ( my $borrowernumber = $issues->{borrowernumber} ){ my $patron = Koha::Patrons->find( $borrowernumber ); - my $fix = _FixOverduesOnReturn($borrowernumber, $itemnumber, C4::Context->preference('WhenLostForgiveFine'), 0); # 1, 0 = exemptfine, no-dropbox + my $fix = _FixOverduesOnReturn($borrowernumber, $itemnumber, C4::Context->preference('WhenLostForgiveFine'), 'LOST'); defined($fix) or warn "_FixOverduesOnReturn($borrowernumber, $itemnumber...) failed!"; # zero is OK, check defined if (C4::Context->preference('WhenLostChargeReplacementFee')){ --- a/koha-tmpl/intranet-tmpl/prog/en/includes/accounts.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/accounts.inc @@ -43,6 +43,7 @@ [%- CASE 'REPLACED' -%] (Replaced) [%- CASE 'FORGIVEN' -%] (Forgiven) [%- CASE 'VOID' -%] (Voided) + [%- CASE 'LOST' -%] (Lost) [%- CASE -%] [%- END -%] [%- END -%] --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/account-table.inc +++ a/koha-tmpl/opac-tmpl/bootstrap/en/includes/account-table.inc @@ -121,6 +121,7 @@ [%- CASE 'REPLACED' -%] (Replaced) [%- CASE 'FORGIVEN' -%] (Forgiven) [%- CASE 'VOID' -%] (Voided) + [%- CASE 'LOST' -%] (Lost) [%- CASE -%] [%- END -%] [%- END -%] --