[Koha-patches] [PATCH] Bug 5572 - refinements to function merge sub merge in C4::AuthoritiesMarc
Janusz Kaczmarek
januszop at gmail.com
Fri May 24 16:00:24 CEST 2013
---
C4/AuthoritiesMarc.pm | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm
index 9ea3b2d..341c78e 100644
--- a/C4/AuthoritiesMarc.pm
+++ b/C4/AuthoritiesMarc.pm
@@ -1431,6 +1431,13 @@ sub merge {
}
$oResult->destroy();
#warn scalar(@reccache)." biblios to update";
+ #Get a list of authority controlled subfields
+ $sth = $dbh->prepare("select distinct tagsubfield from auth_subfield_structure where authtypecode=? and tagfield=? and tab >=0 and hidden = 0");
+ $sth->execute($authtypecodeto, $auth_tag_to_report_to);
+ my @subfields_controlled_by_auth_to;
+ while (my ($tagsubfield) = $sth->fetchrow) {
+ push @subfields_controlled_by_auth_to, $tagsubfield ;
+ }
# Get All candidate Tags for the change
# (This will reduce the search scope in marc records).
$sth = $dbh->prepare("select distinct tagfield from marc_subfield_structure where authtypecode=?");
@@ -1463,6 +1470,9 @@ sub merge {
$field_to->add_subfields($subfield->[0] =>$subfield->[1]);
$exclude.= $subfield->[0];
}
+ foreach my $subt (@subfields_controlled_by_auth_to) {
+ $exclude.= $subt;
+ }
$exclude='['.$exclude.']';
# add subfields in $field not included in @record_to
my @restore= grep {$_->[0]!~/$exclude/} $field->subfields();
--
1.7.2.5
More information about the Koha-patches
mailing list