View | Details | Raw Unified | Return to bug 30813
Collapse All | Expand All

(-)a/C4/Biblio.pm (-5 / +26 lines)
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
- 

Return to bug 30813