From 4ca53c6a88b86292c55ef2e422ff3a1b9fc58b56 Mon Sep 17 00:00:00 2001
From: Kyle M Hall <kyle@bywatersolutions.com>
Date: Wed, 8 Jan 2020 15:27:31 -0500
Subject: [PATCH] Bug 24380 - Backdated returns do not update fines unless
CalculateFinesOnReturn is enabled
In Koha 18.11 backdating a return triggered a recalculation of the fine. This was removed in bug 14591, and I believe it was in error. The bug report itself has no justification for the change in behavior.
Test Plan:
1) Disable CalculateFinesOnReturn
2) Backdate an overdue with fines, note the fine does not change
3) Apply this patch
4) Repeat step 2
5) The fine should be updated!
Signed-off-by: Kelly McElligott <kelly@bywatersolutions.com>
---
C4/Circulation.pm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/C4/Circulation.pm b/C4/Circulation.pm
index c3629c2472..6ab9de4dbe 100644
--- a/C4/Circulation.pm
+++ b/C4/Circulation.pm
@@ -1843,6 +1843,7 @@ sub AddReturn {
undef $branch;
}
$branch = C4::Context->userenv->{'branch'} unless $branch; # we trust userenv to be a safe fallback/default
+ my $return_date_specified = !!$return_date;
$return_date //= dt_from_string();
my $messages;
my $patron;
@@ -1960,7 +1961,7 @@ sub AddReturn {
MarkIssueReturned( $borrowernumber, $item->itemnumber, $return_date, $patron->privacy );
};
unless ( $@ ) {
- if ( C4::Context->preference('CalculateFinesOnReturn') && !$item->itemlost ) {
+ if ( ( $return_date_specified || C4::Context->preference('CalculateFinesOnReturn') ) && !$item->itemlost ) {
_CalculateAndUpdateFine( { issue => $issue, item => $item_unblessed, borrower => $patron_unblessed, return_date => $return_date } );
}
} else {
--
2.11.0