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

(-)a/C4/AuthoritiesMarc.pm (-15 / +19 lines)
Lines 266-275 sub SearchAuthorities { Link Here
266
        
266
        
267
        ##Here we have to extract MARC record and $authid from ZEBRA AUTHORITIES
267
        ##Here we have to extract MARC record and $authid from ZEBRA AUTHORITIES
268
        my $rec=$oAResult->record($counter);
268
        my $rec=$oAResult->record($counter);
269
        my $marcdata=$rec->raw();
270
        my $authrecord;
271
        my $separator=C4::Context->preference('authoritysep');
269
        my $separator=C4::Context->preference('authoritysep');
272
        $authrecord = MARC::File::USMARC::decode($marcdata);
270
        my $authrecord = MARC::Record->new_from_xml(
271
            $rec->raw(),
272
            'UTF-8'
273
        );
273
        my $authid=$authrecord->field('001')->data();
274
        my $authid=$authrecord->field('001')->data();
274
        my %newline;
275
        my %newline;
275
        $newline{authid} = $authid;
276
        $newline{authid} = $authid;
Lines 847-861 sub FindDuplicateAuthority { Link Here
847
    my $query='at:'.$authtypecode.' ';
848
    my $query='at:'.$authtypecode.' ';
848
    my $filtervalues=qr([\001-\040\!\'\"\`\#\$\%\&\*\+,\-\./:;<=>\?\@\(\)\{\[\]\}_\|\~]);
849
    my $filtervalues=qr([\001-\040\!\'\"\`\#\$\%\&\*\+,\-\./:;<=>\?\@\(\)\{\[\]\}_\|\~]);
849
    if ($record->field($auth_tag_to_report)) {
850
    if ($record->field($auth_tag_to_report)) {
850
      foreach ($record->field($auth_tag_to_report)->subfields()) {
851
        foreach ($record->field($auth_tag_to_report)->subfields()) {
851
        $_->[1]=~s/$filtervalues/ /g; $query.= " $op he:\"".$_->[1]."\"" if ($_->[0]=~/[A-z]/);
852
            $_->[1]=~s/$filtervalues/ /g; $query.= " $op he:\"".$_->[1]."\"" if ($_->[0]=~/[A-z]/);
852
      }
853
        }
853
    }
854
    }
854
    my ($error, $results, $total_hits) = C4::Search::SimpleSearch( $query, 0, 1, [ "authorityserver" ] );
855
    my ($error, $results, $total_hits) = C4::Search::SimpleSearch( $query, 0, 1, [ "authorityserver" ] );
855
    # there is at least 1 result => return the 1st one
856
    # there is at least 1 result => return the 1st one
856
    if (!defined $error && @{$results} ) {
857
    if (!defined $error && @{$results} ) {
857
      my $marcrecord = MARC::File::USMARC::decode($results->[0]);
858
        my $marcrecord = MARC::Record->new_from_xml(
858
      return $marcrecord->field('001')->data,BuildSummary($marcrecord,$marcrecord->field('001')->data,$authtypecode);
859
            $results->[0]
860
        );
861
        return $marcrecord->field('001')->data,BuildSummary($marcrecord,$marcrecord->field('001')->data,$authtypecode);
859
    }
862
    }
860
    # no result, returns nothing
863
    # no result, returns nothing
861
    return;
864
    return;
Lines 1452-1464 sub merge { Link Here
1452
    }
1455
    }
1453
    my $z=0;
1456
    my $z=0;
1454
    while ( $z<$count ) {
1457
    while ( $z<$count ) {
1455
        my $rec;
1458
        my $marcrecordzebra= MARC::Record->new_from_xml(
1456
        $rec=$oResult->record($z);
1459
            $oResult->record($z)->raw(),
1457
        my $marcdata = $rec->raw();
1460
            'UTF-8'
1458
        my $marcrecordzebra= MARC::Record->new_from_usmarc($marcdata);
1461
        );
1459
        my ( $biblionumbertagfield, $biblionumbertagsubfield ) = &GetMarcFromKohaField( "biblio.biblionumber", '' );
1462
        my ( $biblionumbertagfield, $biblionumbertagsubfield ) = &GetMarcFromKohaField( "biblio.biblionumber", '' );
1460
        my $i = ($biblionumbertagfield < 10) ? $marcrecordzebra->field($biblionumbertagfield)->data : $marcrecordzebra->subfield($biblionumbertagfield, $biblionumbertagsubfield);
1463
        my $i = ($biblionumbertagfield < 10)
1461
        my $marcrecorddb=GetMarcBiblio($i);
1464
            ? $marcrecordzebra->field( $biblionumbertagfield )->data
1465
            : $marcrecordzebra->subfield( $biblionumbertagfield, $biblionumbertagsubfield );
1466
        my $marcrecorddb = GetMarcBiblio($i);
1462
        push @reccache, $marcrecorddb;
1467
        push @reccache, $marcrecorddb;
1463
        $z++;
1468
        $z++;
1464
    }
1469
    }
1465
- 

Return to bug 11096