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

(-)a/C4/Breeding.pm (-50 / +14 lines)
Lines 485-497 sub _translate_query { #SRU query adjusted per server cf. srufields column Link Here
485
485
486
ImportBreedingAuth($marcrecords,$overwrite_auth,$filename,$encoding);
486
ImportBreedingAuth($marcrecords,$overwrite_auth,$filename,$encoding);
487
487
488
    ImportBreedingAuth imports MARC records in the reservoir (import_records table).
488
    ImportBreedingAuth imports MARC records in the reservoir (import_records table) or returns their id if they already exist.
489
    ImportBreedingAuth is based on the ImportBreeding subroutine.
490
489
491
=cut
490
=cut
492
491
493
sub ImportBreedingAuth {
492
sub ImportBreedingAuth {
494
    my ($marcrecord,$overwrite_auth,$filename,$encoding) = @_;
493
    my ($marcrecord,$filename,$encoding) = @_;
495
    my $dbh = C4::Context->dbh;
494
    my $dbh = C4::Context->dbh;
496
495
497
    my $batch_id = GetZ3950BatchId($filename);
496
    my $batch_id = GetZ3950BatchId($filename);
Lines 500-555 sub ImportBreedingAuth { Link Here
500
    my $marcflavour = C4::Context->preference('marcflavour');
499
    my $marcflavour = C4::Context->preference('marcflavour');
501
    my $marc_type = $marcflavour eq 'UNIMARC' ? 'UNIMARCAUTH' : $marcflavour;
500
    my $marc_type = $marcflavour eq 'UNIMARC' ? 'UNIMARCAUTH' : $marcflavour;
502
501
503
    # fields used for import results
502
    my $heading = C4::AuthoritiesMarc::GetAuthorizedHeading({ record => $marcrecord });
504
    my $imported=0;
505
    my $alreadyindb = 0;
506
    my $alreadyinfarm = 0;
507
    my $notmarcrecord = 0;
508
    my $breedingid;
509
503
510
        # Normalize the record so it doesn't have separated diacritics
504
    my $heading_authtype_code = GuessAuthTypeCode($marcrecord);
511
        SetUTF8Flag($marcrecord);
512
513
        if (scalar($marcrecord->fields()) == 0) {
514
            $notmarcrecord++;
515
        } else {
516
            my $heading;
517
            $heading = C4::AuthoritiesMarc::GetAuthorizedHeading({ record => $marcrecord });
518
505
519
            my $heading_authtype_code;
506
    my $controlnumber = $marcrecord->field('001')->data;
520
            $heading_authtype_code = GuessAuthTypeCode($marcrecord);
507
    my $breedingid;
521
508
522
            my $controlnumber;
509
    # Normalize the record so it doesn't have separated diacritics
523
            $controlnumber = $marcrecord->field('001')->data;
510
    SetUTF8Flag($marcrecord);
524
511
525
            #Check if the authority record already exists in the database...
512
    $searchbreeding->execute($controlnumber,$heading);
526
            my ($duplicateauthid,$duplicateauthvalue);
513
    ($breedingid) = $searchbreeding->fetchrow;
527
            if ($marcrecord && $heading_authtype_code) {
528
                ($duplicateauthid,$duplicateauthvalue) = FindDuplicateAuthority( $marcrecord, $heading_authtype_code);
529
            }
530
514
531
            if ($duplicateauthid && $overwrite_auth ne 2) {
515
    return $breedingid if $breedingid;
532
                #If the authority record exists and $overwrite_auth doesn't equal 2, then mark it as already in the DB
516
    $breedingid = AddAuthToBatch($batch_id, 0, $marcrecord, $encoding);
533
                $alreadyindb++;
517
    return $breedingid;
534
            } else {
535
                if ($controlnumber && $heading) {
536
                    $searchbreeding->execute($controlnumber,$heading);
537
                    ($breedingid) = $searchbreeding->fetchrow;
538
                }
539
                if ($breedingid && $overwrite_auth eq '0') {
540
                    $alreadyinfarm++;
541
                } else {
542
                    if ($breedingid && $overwrite_auth eq '1') {
543
                        ModAuthorityInBatch($breedingid, $marcrecord);
544
                    } else {
545
                        my $import_id = AddAuthToBatch($batch_id, $imported, $marcrecord, $encoding);
546
                        $breedingid = $import_id;
547
                    }
548
                    $imported++;
549
                }
550
            }
551
        }
552
    return ($notmarcrecord,$alreadyindb,$alreadyinfarm,$imported,$breedingid);
553
}
518
}
554
519
555
=head2 Z3950SearchAuth
520
=head2 Z3950SearchAuth
Lines 649-655 sub Z3950SearchAuth { Link Here
649
                            $heading_authtype_code = GuessAuthTypeCode($marcrecord);
614
                            $heading_authtype_code = GuessAuthTypeCode($marcrecord);
650
                            $heading = C4::AuthoritiesMarc::GetAuthorizedHeading({ record => $marcrecord });
615
                            $heading = C4::AuthoritiesMarc::GetAuthorizedHeading({ record => $marcrecord });
651
616
652
                            my ($notmarcrecord, $alreadyindb, $alreadyinfarm, $imported, $breedingid)= ImportBreedingAuth( $marcrecord, 2, $serverhost[$k], $encoding[$k]);
617
                            my $breedingid = ImportBreedingAuth( $marcrecord, $serverhost[$k], $encoding[$k]);
653
                            my %row_data;
618
                            my %row_data;
654
                            $row_data{server}       = $servers[$k]->{'servername'};
619
                            $row_data{server}       = $servers[$k]->{'servername'};
655
                            $row_data{breedingid}   = $breedingid;
620
                            $row_data{breedingid}   = $breedingid;
656
- 

Return to bug 24267