Lines 697-702
sub marc_records_to_documents {
Link Here
|
697 |
$altscript = 1; |
697 |
$altscript = 1; |
698 |
} |
698 |
} |
699 |
} |
699 |
} |
|
|
700 |
# Handle references to GEOGR_NAME authorities |
701 |
if ($marcflavour eq 'marc21' && $tag eq '651') { |
702 |
$self->embed_geographic_name($field, $record_document, $data_fields_rules); |
703 |
} |
700 |
|
704 |
|
701 |
my $data_field_rules = $data_fields_rules->{$tag}; |
705 |
my $data_field_rules = $data_fields_rules->{$tag}; |
702 |
if ($data_field_rules) { |
706 |
if ($data_field_rules) { |
Lines 979-984
sub marc_records_to_documents {
Link Here
|
979 |
return \@record_documents; |
983 |
return \@record_documents; |
980 |
} |
984 |
} |
981 |
|
985 |
|
|
|
986 |
sub embed_geographic_name { |
987 |
my ($self, $field, $record_document, $rules) = @_; |
988 |
|
989 |
my $authid = $field->subfield('9'); |
990 |
return unless $authid; |
991 |
my $authority = Koha::MetadataRecord::Authority->get_from_authid($authid); |
992 |
return unless $authority; |
993 |
|
994 |
my $tag = '034'; |
995 |
|
996 |
my $auth_marc = $authority->record; |
997 |
my @coordinate_fields = $auth_marc->field($tag); |
998 |
|
999 |
for my $field (@coordinate_fields) { |
1000 |
my $data_field_rules = $rules->{$tag}; |
1001 |
if ($data_field_rules) { |
1002 |
my $subfields_mappings = $data_field_rules->{subfields}; |
1003 |
my $wildcard_mappings = $subfields_mappings->{'*'}; |
1004 |
foreach my $subfield ($field->subfields()) { |
1005 |
my ($code, $data) = @{$subfield}; |
1006 |
my $mappings = $subfields_mappings->{$code} // []; |
1007 |
if (@{$mappings}) { |
1008 |
$self->_process_mappings($mappings, $data, $record_document, { |
1009 |
data_source => 'subfield', |
1010 |
code => $code, |
1011 |
field => $field |
1012 |
} |
1013 |
); |
1014 |
} |
1015 |
} |
1016 |
} |
1017 |
} |
1018 |
} |
1019 |
|
982 |
=head2 _marc_to_array($record) |
1020 |
=head2 _marc_to_array($record) |
983 |
|
1021 |
|
984 |
my @fields = _marc_to_array($record) |
1022 |
my @fields = _marc_to_array($record) |
985 |
- |
|
|