diff --git a/Koha/SimpleMARC.pm b/Koha/SimpleMARC.pm index 82c3adc6f7..2867dc1cd6 100644 --- a/Koha/SimpleMARC.pm +++ b/Koha/SimpleMARC.pm @@ -526,7 +526,7 @@ sub delete_field { my $subfieldName = $params->{subfield}; my $field_numbers = $params->{field_numbers} // []; - if ( not $subfieldName or $subfieldName eq '' ) { + if ( !defined $subfieldName or $subfieldName eq '' ) { _delete_field({ record => $record, field => $fieldName, field_numbers => $field_numbers }); } else { _delete_subfield({ record => $record, field => $fieldName, subfield => $subfieldName, field_numbers => $field_numbers }); diff --git a/t/SimpleMARC.t b/t/SimpleMARC.t index 4fd8933b29..6455820fbb 100755 --- a/t/SimpleMARC.t +++ b/t/SimpleMARC.t @@ -1676,7 +1676,7 @@ subtest 'move_field' => sub { subtest 'delete_field' => sub { plan tests => 2; subtest 'delete subfield' => sub { - plan tests => 2; + plan tests => 3; my $record = new_record; $record->append_fields( MARC::Field->new( @@ -1710,6 +1710,18 @@ subtest 'delete_field' => sub { @fields_952p = read_field( { record => $record, field => '952', subfield => 'p' } ); is_deeply( \@fields_952p, [], 'Delete all 952$p' ); + + $record = new_record; + $record->append_fields( + MARC::Field->new( + 600, ' ', ' ', + a => 'Murakami, Haruki', + 0 => 'https://id.loc.gov/authorities/names/n81152393.html', + ), + ); + delete_field( { record => $record, field => '600', subfield => '0' } ); + my @fields_600 = read_field( { record => $record, field => '600' } ); + is_deeply( \@fields_600, ['Murakami, Haruki'], 'Delete all 600$0, only subfield 0 deleted' ); }; subtest 'delete field' => sub {