Lines 2307-2312
sub TransformMarcToKoha {
Link Here
|
2307 |
|
2307 |
|
2308 |
my $record = $params->{record}; |
2308 |
my $record = $params->{record}; |
2309 |
my $limit_table = $params->{limit_table} // q{}; |
2309 |
my $limit_table = $params->{limit_table} // q{}; |
|
|
2310 |
my $kohafields = $params->{kohafields}; |
2310 |
|
2311 |
|
2311 |
my $result = {}; |
2312 |
my $result = {}; |
2312 |
if (!defined $record) { |
2313 |
if (!defined $record) { |
Lines 2324-2336
sub TransformMarcToKoha {
Link Here
|
2324 |
# The next call acknowledges Default as the authoritative framework |
2325 |
# The next call acknowledges Default as the authoritative framework |
2325 |
# for Koha to MARC mappings. |
2326 |
# for Koha to MARC mappings. |
2326 |
my $mss = GetMarcSubfieldStructure( '', { unsafe => 1 } ); # Do not change framework |
2327 |
my $mss = GetMarcSubfieldStructure( '', { unsafe => 1 } ); # Do not change framework |
2327 |
foreach my $kohafield ( keys %{ $mss } ) { |
2328 |
@{$kohafields} = keys %{ $mss } unless $kohafields; |
|
|
2329 |
foreach my $kohafield ( @{$kohafields} ) { |
2328 |
my ( $table, $column ) = split /[.]/, $kohafield, 2; |
2330 |
my ( $table, $column ) = split /[.]/, $kohafield, 2; |
2329 |
next unless $tables{$table}; |
2331 |
next unless $tables{$table}; |
2330 |
my $val = TransformMarcToKohaOneField( $kohafield, $record ); |
2332 |
my ( $value, @values ); |
2331 |
next if !defined $val; |
2333 |
foreach my $fldhash ( @{$mss->{$kohafield}} ) { |
|
|
2334 |
my $tag = $fldhash->{tagfield}; |
2335 |
my $sub = $fldhash->{tagsubfield}; |
2336 |
foreach my $fld ( $record->field($tag) ) { |
2337 |
if( $sub eq '@' || $fld->is_control_field ) { |
2338 |
push @values, $fld->data if $fld->data; |
2339 |
} else { |
2340 |
push @values, grep { $_ } $fld->subfield($sub); |
2341 |
} |
2342 |
} |
2343 |
} |
2344 |
if ( @values ){ |
2345 |
$value = join ' | ', uniq(@values); |
2346 |
|
2347 |
# Additional polishing for individual kohafields |
2348 |
if( $kohafield =~ /copyrightdate|publicationyear/ ) { |
2349 |
$value = _adjust_pubyear( $value ); |
2350 |
} |
2351 |
} |
2352 |
|
2353 |
next if !defined $value; |
2332 |
my $key = _disambiguate( $table, $column ); |
2354 |
my $key = _disambiguate( $table, $column ); |
2333 |
$result->{$key} = $val; |
2355 |
$result->{$key} = $value; |
2334 |
} |
2356 |
} |
2335 |
return $result; |
2357 |
return $result; |
2336 |
} |
2358 |
} |
2337 |
- |
|
|