Bug 33603: Fix misc/maintenance/search_for_data_inconsistencies.pl when biblio.biblionumber on control field
Since bug 29486, misc/maintenance/search_for_data_inconsistencies.pl search for biblio.biblionumber in MARC record with $record->subfield().
This fails when field is a control field (< 10).
Idem for biblioitems.biblioitemnumber
Test plan :
1.0) On a UNIMARC database (biblio.biblionumber is on 001)
1.1) Run misc/maintenance/search_for_data_inconsistencies.pl
=> Without patch you get error : Control fields (generally, just tags below 010) do not have subfields, use data()
=> With patch no error
2.0) On a MARC21 database (biblio.biblionumber is on 999c)
2.1) Run misc/maintenance/search_for_data_inconsistencies.pl
=> Check you see no error
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit cc1695ba96
)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
parent
998cc703cd
commit
9971011fb9
1 changed files with 13 additions and 2 deletions
|
@ -129,8 +129,19 @@ use C4::Biblio qw( GetMarcFromKohaField );
|
|||
push @decoding_errors, $@;
|
||||
next;
|
||||
}
|
||||
my $biblionumber = $record->subfield($biblio_tag, $biblio_subfield);
|
||||
my $biblioitemnumber = $record->subfield($biblioitem_tag, $biblioitem_subfield);
|
||||
my ( $biblionumber, $biblioitemnumber );
|
||||
if ( $biblio_tag < 10 ) {
|
||||
my $biblio_control_field = $record->field($biblio_tag);
|
||||
$biblionumber = $biblio_control_field->data if $biblio_control_field;
|
||||
} else {
|
||||
$biblionumber = $record->subfield( $biblio_tag, $biblio_subfield );
|
||||
}
|
||||
if ( $biblioitem_tag < 10 ) {
|
||||
my $biblioitem_control_field = $record->field($biblioitem_tag);
|
||||
$biblioitemnumber = $biblioitem_control_field->data if $biblioitem_control_field;
|
||||
} else {
|
||||
$biblioitemnumber = $record->subfield( $biblioitem_tag, $biblioitem_subfield );
|
||||
}
|
||||
if ( $biblionumber != $biblio->biblionumber ) {
|
||||
push @ids_not_in_marc,
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue