Lines 621-626
sub marc_records_to_documents {
Link Here
|
621 |
$altscript = 1; |
621 |
$altscript = 1; |
622 |
} |
622 |
} |
623 |
} |
623 |
} |
|
|
624 |
# Handle references to GEOGR_NAME authorities |
625 |
if ($marcflavour eq 'marc21' && $tag eq '651') { |
626 |
$self->embed_geographic_name($field, $record_document, $data_fields_rules); |
627 |
} |
624 |
|
628 |
|
625 |
my $data_field_rules = $data_fields_rules->{$tag}; |
629 |
my $data_field_rules = $data_fields_rules->{$tag}; |
626 |
if ($data_field_rules) { |
630 |
if ($data_field_rules) { |
Lines 853-858
sub marc_records_to_documents {
Link Here
|
853 |
return \@record_documents; |
857 |
return \@record_documents; |
854 |
} |
858 |
} |
855 |
|
859 |
|
|
|
860 |
sub embed_geographic_name { |
861 |
my ($self, $field, $record_document, $rules) = @_; |
862 |
|
863 |
my $authid = $field->subfield('9'); |
864 |
return unless $authid; |
865 |
my $authority = Koha::MetadataRecord::Authority->get_from_authid($authid); |
866 |
return unless $authority; |
867 |
|
868 |
my $tag = '034'; |
869 |
|
870 |
my $auth_marc = $authority->record; |
871 |
my @coordinate_fields = $auth_marc->field($tag); |
872 |
|
873 |
for my $field (@coordinate_fields) { |
874 |
my $data_field_rules = $rules->{$tag}; |
875 |
if ($data_field_rules) { |
876 |
my $subfields_mappings = $data_field_rules->{subfields}; |
877 |
my $wildcard_mappings = $subfields_mappings->{'*'}; |
878 |
foreach my $subfield ($field->subfields()) { |
879 |
my ($code, $data) = @{$subfield}; |
880 |
my $mappings = $subfields_mappings->{$code} // []; |
881 |
if (@{$mappings}) { |
882 |
$self->_process_mappings($mappings, $data, $record_document, { |
883 |
data_source => 'subfield', |
884 |
code => $code, |
885 |
field => $field |
886 |
} |
887 |
); |
888 |
} |
889 |
} |
890 |
} |
891 |
} |
892 |
} |
893 |
|
856 |
=head2 _marc_to_array($record) |
894 |
=head2 _marc_to_array($record) |
857 |
|
895 |
|
858 |
my @fields = _marc_to_array($record) |
896 |
my @fields = _marc_to_array($record) |
859 |
- |
|
|