diff --git a/C4/Items.pm b/C4/Items.pm index 3c5d9c3012..abd7520491 100644 --- a/C4/Items.pm +++ b/C4/Items.pm @@ -1502,9 +1502,7 @@ sub Item2Marc { } keys %{ $itemrecord } }; my $framework = C4::Biblio::GetFrameworkCode( $biblionumber ); - my $itemmarc = C4::Biblio::TransformKohaToMarc( - $mungeditem, { no_split => 1}, - ); + my $itemmarc = C4::Biblio::TransformKohaToMarc( $mungeditem ); # Bug 21774: no_split parameter removed to allow cloned subfields my ( $itemtag, $itemsubfield ) = C4::Biblio::GetMarcFromKohaField( "items.itemnumber", $framework, ); diff --git a/t/db_dependent/Items.t b/t/db_dependent/Items.t index f8e8dc8fb5..9c078eb859 100755 --- a/t/db_dependent/Items.t +++ b/t/db_dependent/Items.t @@ -33,7 +33,7 @@ use Koha::Caches; use t::lib::Mocks; use t::lib::TestBuilder; -use Test::More tests => 12; +use Test::More tests => 13; use Test::Warn; @@ -840,6 +840,28 @@ subtest 'Test logging for ModItem' => sub { $schema->storage->txn_rollback; }; +subtest 'Split subfields in Item2Marc (Bug 21774)' => sub { + plan tests => 3; + $schema->storage->txn_begin; + + my $builder = t::lib::TestBuilder->new; + my $biblio = $builder->build({ source => 'Biblio', value => { frameworkcode => q{} } }); + my $item = $builder->build({ source => 'Item', value => { biblionumber => $biblio->{biblionumber}, ccode => 'A|B' } }); + + Koha::MarcSubfieldStructures->search({ tagfield => '952', tagsubfield => '8' })->delete; # theoretical precaution + Koha::MarcSubfieldStructures->search({ kohafield => 'items.ccode' })->delete; + my $mapping = Koha::MarcSubfieldStructure->new({ frameworkcode => q{}, tagfield => '952', tagsubfield => '8', kohafield => 'items.ccode' })->store; + + # Start testing + my $marc = C4::Items::Item2Marc( $item, $biblio->{biblionumber} ); + my @subs = $marc->subfield( $mapping->tagfield, $mapping->tagsubfield ); + is( @subs, 2, 'Expect two subfields' ); + is( $subs[0], 'A', 'First subfield matches' ); + is( $subs[1], 'B', 'Second subfield matches' ); + + $schema->storage->txn_rollback; +}; + # Helper method to set up a Biblio. sub get_biblio { my ( $frameworkcode ) = @_;