From 3d0015fe6932f2fed3aba79b1fc99ecb6d1d3504 Mon Sep 17 00:00:00 2001 From: Fridolin Somers Date: Fri, 5 Aug 2022 08:36:50 -1000 Subject: [PATCH] Bug 31299: Fix duplicate output in search_for_data_inconsistencies.pl In search_for_data_inconsistencies.pl when there are several inconsistencies on same framework, the second output of items contains the first one. Looks like it is since Bug 21466 Test plan using koha-testing-docker : 1) Create 2 inconsistencies on the same item via SQL : update items set itemlost = 9 where itemnumber=900; update items set notforloan = 8 where itemnumber=900; 2) Without patch 3) Run ./misc/maintenance/search_for_data_inconsistencies.pl => You see duplicate output : == Wrong values linked to authorised values == * The Framework *BKS* is using the authorised value's category *NOT_LOAN*, but the following items.notforloan do not have a value defined ({itemnumber => value }): {900 => 8} * The Framework *BKS* is using the authorised value's category *LOST*, but the following items.itemlost do not have a value defined ({itemnumber => value }): {900 => 8} {900 => 9} 4) Apply patch 5) Run ./misc/maintenance/search_for_data_inconsistencies.pl => Fixed :D == Wrong values linked to authorised values == * The Framework *BKS* is using the authorised value's category *LOST*, but the following items.itemlost do not have a value defined ({itemnumber => value }): {900 => 9} * The Framework *BKS* is using the authorised value's category *NOT_LOAN*, but the following items.notforloan do not have a value defined ({itemnumber => value }): {900 => 8} Signed-off-by: Marcel de Rooy Signed-off-by: Tomas Cohen Arazi --- misc/maintenance/search_for_data_inconsistencies.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/maintenance/search_for_data_inconsistencies.pl b/misc/maintenance/search_for_data_inconsistencies.pl index 0ccdd8b1bb..be5923cb3b 100755 --- a/misc/maintenance/search_for_data_inconsistencies.pl +++ b/misc/maintenance/search_for_data_inconsistencies.pl @@ -237,11 +237,11 @@ use C4::Biblio qw( GetMarcFromKohaField ); if (%$invalid_av_per_framework) { new_section('Wrong values linked to authorised values'); for my $frameworkcode ( keys %$invalid_av_per_framework ) { - my $output; while ( my ( $av_category, $v ) = each %{$invalid_av_per_framework->{$frameworkcode}} ) { my $items = $v->{items}; my $kohafield = $v->{kohafield}; my ( $table, $column ) = split '\.', $kohafield; + my $output; while ( my $i = $items->next ) { my $value = $table eq 'items' ? $i->$column -- 2.39.5