From 033891bc97e4b95a93a00bf0809f9acdeccf437c 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. --- .../fix_unclosed_nonaccruing_fines_bug17135.pl | 29 ++++++++++++-------- 1 file changed, 18 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..c345df0 100755 --- a/installer/data/mysql/fix_unclosed_nonaccruing_fines_bug17135.pl +++ b/installer/data/mysql/fix_unclosed_nonaccruing_fines_bug17135.pl @@ -97,10 +97,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 +173,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 +193,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