From 9726bba3c990cacf6526a54cc72fc86c4eec2290 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 Content-Type: text/plain; charset=utf-8 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 --- .../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 b44d6f2..b7f1efd 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" ); } } -- 1.7.10.4