Bug 10030 - MaxFines checks against amount, not amount outstanding
authorKyle M Hall <kyle@bywatersolutions.com>
Thu, 11 Apr 2013 19:46:50 +0000 (15:46 -0400)
committerJared Camins-Esakov <jcamins@cpbibliography.com>
Thu, 16 May 2013 01:51:15 +0000 (21:51 -0400)
If a patron has over time accumulated fines greater than the amount
defined in MaxFine, the patron will never get more fines even if they
have previously paid off those fines.

This bug was introduced by the patch for Bug 7420.

Test Plan:
1) Create a patron
2) Create a fine of 10.00 for that patron
3) Pay off the fine
4) Set MaxFines to 5.00
5) Check out an item to the patron, backdate the due date
   so the item should generate fines.
6) Run fines.pl, observe that no fine was created
7) Apply the patch
8) Rerun fines.pl
9) Observe that the fine was created correctly

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
C4/Overdues.pm

index bc1c7a7..c99a669 100644 (file)
@@ -540,8 +540,9 @@ sub UpdateFine {
                 next;
             }
         }
-        $total_amount_other += $rec->{'amount'};
+        $total_amount_other += $rec->{'amountoutstanding'};
     }
+
     if (my $maxfine = C4::Context->preference('MaxFine')) {
         if ($total_amount_other + $amount > $maxfine) {
             my $new_amount = $maxfine - $total_amount_other;