From b389048e873775bd39f5f4b651192c3ebf22c534 Mon Sep 17 00:00:00 2001 From: Jared Camins-Esakov Date: Sun, 14 Jul 2013 17:13:07 -0400 Subject: [PATCH] Bug 5202 QA follow-up: quiet warnings Due to massively incorrect data in the default authority frameworks, we were getting warnings about undefined values and spaces from checking which tab subfields/fields were displayed in. This patch eliminates those warnings. --- Koha/Util/MARC.pm | 19 +++++++++++++++---- authorities/merge.pl | 5 +++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Koha/Util/MARC.pm b/Koha/Util/MARC.pm index d0a3cb1..5d026ee 100644 --- a/Koha/Util/MARC.pm +++ b/Koha/Util/MARC.pm @@ -62,8 +62,13 @@ sub createMergeHash { my @subfields = $field->subfields(); my @subfield_array; foreach my $subfield (@subfields) { - if ( !defined($tagslib) - || $tagslib->{$fieldtag}->{ @$subfield[0] }->{'tab'} >= 0 ) + if ( + !defined($tagslib) + || ( defined $tagslib->{$fieldtag} + && defined $tagslib->{$fieldtag}->{ @$subfield[0] } + && defined $tagslib->{$fieldtag}->{ @$subfield[0] }->{'tab'} + && $tagslib->{$fieldtag}->{ @$subfield[0] }->{'tab'} >= 0 ) + ) { push @subfield_array, { @@ -75,8 +80,14 @@ sub createMergeHash { } - if ( ( !defined($tagslib) || $tagslib->{$fieldtag}->{'tab'} >= 0 ) - && @subfield_array ) + if ( + ( + !defined($tagslib) || ( defined $tagslib->{$fieldtag} + && defined $tagslib->{$fieldtag}->{'tab'} + && $tagslib->{$fieldtag}->{'tab'} >= 0 ) + ) + && @subfield_array + ) { push @array, { diff --git a/authorities/merge.pl b/authorities/merge.pl index 0e3fb6d..3d4b881 100755 --- a/authorities/merge.pl +++ b/authorities/merge.pl @@ -114,6 +114,11 @@ else { # Getting MARC Structure my $tagslib = GetTagsLabels( 1, $framework ); + foreach my $field ( keys %$tagslib ) { + if ( defined $tagslib->{$field}->{'tab'} && $tagslib->{$field}->{'tab'} eq ' ' ) { + $tagslib->{$field}->{'tab'} = 0; + } + } my $notreference = ( $authid[0] == $mergereference ) -- 1.7.9.5