Bug 17913: Run perltidy on the inner foreach loop
Kept the same number of lines. You could verify with diff -w. Test plan: [1] Run t/db_dependent/Authorities/Merge.t [2] As the last patch in this series, also test the interface: Set AuthorityMergeMode to loose. Set dontmerge to Do. Modify an authority record attached to multiple biblios. Edit a subfield, clear a subfield and add a subfield. Save. Wait a bit for the merge and Zebra update. Verify that the changes are merged properly into biblio records. [3] Repeat step 2 with AuthorityMergeMode to strict. Remember that this affects the extra subfields in biblio records. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Josef Moravec <josef.moravec@gmail.com> Signed-off-by: Julian Maurice <julian.maurice@biblibre.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
parent
28b74224d3
commit
dd1c63230f
1 changed files with 25 additions and 25 deletions
|
@ -1473,45 +1473,45 @@ sub merge {
|
|||
: { map { ( $_->[0], 1 ); } ( @record_from, @record_to ) };
|
||||
foreach my $marcrecord(@reccache){
|
||||
my $update = 0;
|
||||
foreach my $tagfield (@$tags_using_authtype){
|
||||
my $countfrom = 0; # used in strict mode to remove duplicates
|
||||
foreach my $field ($marcrecord->field($tagfield)){
|
||||
my $auth_number = $field->subfield("9"); # link to authority
|
||||
my $tag=$field->tag();
|
||||
foreach my $tagfield (@$tags_using_authtype) {
|
||||
my $countfrom = 0; # used in strict mode to remove duplicates
|
||||
foreach my $field ( $marcrecord->field($tagfield) ) {
|
||||
my $auth_number = $field->subfield("9"); # link to authority
|
||||
my $tag = $field->tag();
|
||||
next if !defined($auth_number) || $auth_number ne $mergefrom;
|
||||
$countfrom++;
|
||||
if( $overwrite && $countfrom > 1 ) {
|
||||
if ( $overwrite && $countfrom > 1 ) {
|
||||
# remove this duplicate in strict mode
|
||||
$marcrecord->delete_field( $field );
|
||||
$marcrecord->delete_field($field);
|
||||
$update = 1;
|
||||
next;
|
||||
}
|
||||
my $newtag = $tags_new
|
||||
? _merge_newtag( $tag, $tags_new )
|
||||
: $tag;
|
||||
my $field_to = MARC::Field->new(
|
||||
$newtag,
|
||||
$field->indicator(1),
|
||||
$field->indicator(2),
|
||||
"9" => $mergeto,
|
||||
);
|
||||
foreach my $subfield (grep {$_->[0] ne '9'} @record_to) {
|
||||
$field_to->add_subfields($subfield->[0] =>$subfield->[1]);
|
||||
? _merge_newtag( $tag, $tags_new )
|
||||
: $tag;
|
||||
my $field_to = MARC::Field->new(
|
||||
$newtag,
|
||||
$field->indicator(1),
|
||||
$field->indicator(2),
|
||||
"9" => $mergeto,
|
||||
);
|
||||
foreach my $subfield ( grep { $_->[0] ne '9' } @record_to ) {
|
||||
$field_to->add_subfields( $subfield->[0] => $subfield->[1] );
|
||||
}
|
||||
if( !$overwrite ) {
|
||||
if ( !$overwrite ) {
|
||||
# add subfields back in loose mode, check skip_subfields
|
||||
foreach my $subfield ( $field->subfields ) {
|
||||
next if $skip_subfields->{ $subfield->[0] };
|
||||
$field_to->add_subfields( $subfield->[0], $subfield->[1] );
|
||||
}
|
||||
}
|
||||
if( $tags_new ) {
|
||||
$marcrecord->delete_field( $field );
|
||||
append_fields_ordered( $marcrecord, $field_to );
|
||||
} else {
|
||||
$field->replace_with($field_to);
|
||||
}
|
||||
$update=1;
|
||||
if ($tags_new) {
|
||||
$marcrecord->delete_field($field);
|
||||
append_fields_ordered( $marcrecord, $field_to );
|
||||
} else {
|
||||
$field->replace_with($field_to);
|
||||
}
|
||||
$update = 1;
|
||||
}
|
||||
}
|
||||
my ($bibliotag,$bibliosubf) = GetMarcFromKohaField("biblio.biblionumber","") ;
|
||||
|
|
Loading…
Reference in a new issue