From bc647bc21b3496fb6f7b509d57f516116178222d Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Fri, 9 Sep 2016 10:53:48 +0200 Subject: [PATCH] Bug 17135: [QA Follow-up] Changes as to reporting We should at least report some grand totals when fixing fine records. This patch also includes some cosmetic whitespace swapping. Turned one last into an if statement. Added a copyright statement too. Signed-off-by: Marcel de Rooy Signed-off-by: Kyle M Hall --- ...fix_unclosed_nonaccruing_fines_bug17135.pl | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/installer/data/mysql/fix_unclosed_nonaccruing_fines_bug17135.pl b/installer/data/mysql/fix_unclosed_nonaccruing_fines_bug17135.pl index b44d6f2577..b7f1efd088 100755 --- a/installer/data/mysql/fix_unclosed_nonaccruing_fines_bug17135.pl +++ b/installer/data/mysql/fix_unclosed_nonaccruing_fines_bug17135.pl @@ -1,5 +1,7 @@ #!/usr/bin/perl +# Copyright 2016 Jacek Ablewicz +# # This file is part of Koha. # # Koha is free software; you can redistribute it and/or modify it @@ -97,10 +99,9 @@ sub Bug_17135_fix { ## which does not require any correction next if ($fine->{description} =~ /$due_qr/); - { + if( !$old_date_pattern ) { ## for extracting old due date from fine description ## not used for fixing anything, logging/debug purposes only - last if $old_date_pattern; $old_date_pattern = $due; $old_date_pattern =~ s/[A-Za-z]/\[A-Za-z\]/g; $old_date_pattern =~ s/[0-9]/\\d/g; @@ -174,15 +175,12 @@ sub Bug_17135_fix { }; } - if ($verbose) { - Warn("Fine records with mismatched old vs current due dates: $different_dates_cnt"); - Warn("Non-accruing accountlines FU records (item not due): ".$not_due_not_accruning_cnt); - Warn("Non-accruing accountlines FU records (item due): ".$due_not_accruning_cnt); + if( $verbose ) { + Warn( "Fine records with mismatched old vs current due dates: $different_dates_cnt" ); + Warn( "Non-accruing accountlines FU records (item not due): ".$not_due_not_accruning_cnt ); + Warn( "Non-accruing accountlines FU records (item due): ".$due_not_accruning_cnt ); } - if (@$forfixing > 0) { - Warn("Dry run (test only mode), skipping ".scalar(@$forfixing)." database changes.") unless ($confirm); - } my $updated_cnt = 0; my $update_sql = "UPDATE accountlines SET accounttype = 'F' WHERE accounttype = 'FU' AND accountlines_id = ? LIMIT 1"; for my $fine (@$forfixing) { @@ -197,8 +195,19 @@ sub Bug_17135_fix { $updated_cnt += $rows_affected; logaction("FINES", "FU", $fine->{borrowernumber}, $logentry) if ($log); } - if (@$forfixing > 0 && $confirm && $mode eq 'production') { - Warn("Database update done, $updated_cnt".((@$forfixing == $updated_cnt)? "": "/".scalar(@$forfixing))." fine records closed successfully."); + + # Regardless of verbose, we report at least a number here + if( @$forfixing > 0 ) { + if( $confirm && $mode eq 'production') { + Warn( "Database update done, $updated_cnt". + ( @$forfixing == $updated_cnt? "": ( "/". @$forfixing )). + " fine records closed successfully." ); + } else { + Warn( "Dry run (test only mode), skipping ". @$forfixing. + " fine records." ); + } + } else { + Warn( "No fine records needed to be fixed" ); } }