@@ -, +, @@
---
C4/Circulation.pm | 18 ++++++++++++------
.../prog/en/includes/accounts.inc | 1 +
.../bootstrap/en/includes/account-table.inc | 1 +
3 files changed, 14 insertions(+), 6 deletions(-)
--- a/C4/Circulation.pm
+++ a/C4/Circulation.pm
@@ -2031,7 +2031,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 ) {
@@ -2315,7 +2315,7 @@ sub _debar_user_on_return {
=head2 _FixOverduesOnReturn
- &_FixOverduesOnReturn($borrowernumber, $itemnumber, $exemptfine);
+ &_FixOverduesOnReturn($borrowernumber, $itemnumber, $exemptfine, $status);
C<$borrowernumber> borrowernumber
@@ -2323,12 +2323,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;
@@ -2337,6 +2339,10 @@ sub _FixOverduesOnReturn {
warn "_FixOverduesOnReturn() not supplied valid itemnumber";
return;
}
+ unless( $status ) {
+ warn "_FixOverduesOnReturn() not supplied valid status";
+ return;
+ }
my $schema = Koha::Database->schema;
@@ -2377,7 +2383,7 @@ sub _FixOverduesOnReturn {
&logaction("FINES", 'MODIFY',$borrowernumber,"Overdue forgiven: item $item");
}
} else {
- $accountline->status('RETURNED');
+ $accountline->status($status);
}
return $accountline->store();
@@ -2863,7 +2869,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
@@ -3708,7 +3714,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
@@ -44,6 +44,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
@@ -122,6 +122,7 @@
[%- CASE 'REPLACED' -%] (Replaced)
[%- CASE 'FORGIVEN' -%] (Forgiven)
[%- CASE 'VOID' -%] (Voided)
+ [%- CASE 'LOST' -%] (Lost)
[%- CASE -%]
[%- END -%]
[%- END -%]
--