From fe9e0a669a55a198ff542a5412e28902bfaff277 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Wed, 16 Apr 2014 09:16:26 -0400 Subject: [PATCH] Bug 6427 [Part 24] - Fines with accruing = 0 should not be updated, even if they are for checked out and overdue items --- C4/Overdues.pm | 30 ++++++++++++++++-------------- 1 files changed, 16 insertions(+), 14 deletions(-) diff --git a/C4/Overdues.pm b/C4/Overdues.pm index 15326fa..30aaf7a 100644 --- a/C4/Overdues.pm +++ b/C4/Overdues.pm @@ -512,20 +512,22 @@ sub UpdateFine { my $offset = 0; if ($fine) { - if ( - sprintf( "%.6f", $fine->amount_original() ) - ne - sprintf( "%.6f", $amount ) ) - { - my $difference = $amount - $fine->amount_original(); + if ( $fine->accruing() ) { # Don't update or recreate fines no longer accruing + if ( + sprintf( "%.6f", $fine->amount_original() ) + ne + sprintf( "%.6f", $amount ) ) + { + my $difference = $amount - $fine->amount_original(); - $fine->amount_original( $fine->amount_original() + $difference ); - $fine->amount_outstanding( $fine->amount_outstanding() + $difference ); - $fine->amount_last_increment($difference); - $fine->updated_on($timestamp); - $fine->update(); + $fine->amount_original( $fine->amount_original() + $difference ); + $fine->amount_outstanding( $fine->amount_outstanding() + $difference ); + $fine->amount_last_increment($difference); + $fine->updated_on($timestamp); + $fine->update(); - $offset = 1; + $offset = 1; + } } } else { -- 1.7.2.5