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

(-)a/C4/AuthoritiesMarc.pm (-4 / +7 lines)
Lines 643-662 sub AddAuthority { Link Here
643
643
644
    # Save record into auth_header, update 001
644
    # Save record into auth_header, update 001
645
    my $action;
645
    my $action;
646
    my $authority;
646
    if (!$authid ) {
647
    if (!$authid ) {
647
        $action = 'create';
648
        $action = 'create';
648
        # Save a blank record, get authid
649
        # Save a blank record, get authid
649
        $dbh->do( "INSERT INTO auth_header (datecreated,marcxml) values (NOW(),?)", undef, '' );
650
        $authority = Koha::Authority->new({ datecreated => \'NOW()', marcxml => '' })->store();
650
        $authid = $dbh->last_insert_id( undef, undef, 'auth_header', 'authid' );
651
        $authority->discard_changes();
652
        $authid = $authority->authid;
651
        logaction( "AUTHORITIES", "ADD", $authid, "authority" ) if C4::Context->preference("AuthoritiesLog");
653
        logaction( "AUTHORITIES", "ADD", $authid, "authority" ) if C4::Context->preference("AuthoritiesLog");
652
    } else {
654
    } else {
653
        $action = 'modify';
655
        $action = 'modify';
656
        $authority = Koha::Authorities->find($authid);
654
    }
657
    }
658
655
    # Insert/update the recordID in MARC record
659
    # Insert/update the recordID in MARC record
656
    $record->delete_field( $record->field('001') );
660
    $record->delete_field( $record->field('001') );
657
    $record->insert_fields_ordered( MARC::Field->new( '001', $authid ) );
661
    $record->insert_fields_ordered( MARC::Field->new( '001', $authid ) );
658
    # Update
662
    # Update
659
    $dbh->do( "UPDATE auth_header SET authtypecode=?, marc=?, marcxml=? WHERE authid=?", undef, $authtypecode, $record->as_usmarc, $record->as_xml_record($format), $authid ) or die $DBI::errstr;
663
    $authority->update({ authtypecode => $authtypecode, marc => $record->as_usmarc, marcxml => $record->as_xml_record($format) });
660
664
661
    unless ( $skip_record_index ) {
665
    unless ( $skip_record_index ) {
662
        my $indexer = Koha::SearchEngine::Indexer->new({ index => $Koha::SearchEngine::AUTHORITIES_INDEX });
666
        my $indexer = Koha::SearchEngine::Indexer->new({ index => $Koha::SearchEngine::AUTHORITIES_INDEX });
663
- 

Return to bug 28186