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

(-)a/misc/maintenance/update_authorities.pl (-10 / +13 lines)
Lines 39-49 GetOptions( Link Here
39
39
40
@authid = map { split /[,]/, $_; } @authid;
40
@authid = map { split /[,]/, $_; } @authid;
41
print "No changes will be made\n" unless $commit;
41
print "No changes will be made\n" unless $commit;
42
if( $help ) {
42
pod2usage(1) if $help;
43
    pod2usage(1);
43
44
} elsif( $delete ) {
44
if ( $delete and $merge and $renumber ) {
45
    pod2usage(q|Only one action parameter can be passed (delete, merge or renumber)|);
46
}
47
48
if( $delete ) {
45
    delete_auth( \@authid );
49
    delete_auth( \@authid );
46
} elsif( $merge ) {
50
} elsif( $merge ) {
51
    pod2usage(q|Reference parameter is missing|) unless $reference;
47
    merge_auth( \@authid, $reference );
52
    merge_auth( \@authid, $reference );
48
} elsif( $renumber ) {
53
} elsif( $renumber ) {
49
    renumber( \@authid );
54
    renumber( \@authid );
Lines 65-74 sub delete_auth { Link Here
65
70
66
sub merge_auth {
71
sub merge_auth {
67
    my ( $auths, $reference ) = @_;
72
    my ( $auths, $reference ) = @_;
68
    if( !$reference ) {
73
69
        print "Reference parameter is missing\n";
74
    return unless $reference;
70
        return;
75
71
    }
72
    my $marc_ref = GetAuthority( $reference ) || die "Reference record $reference not found\n";
76
    my $marc_ref = GetAuthority( $reference ) || die "Reference record $reference not found\n";
73
    # First update all linked biblios of reference
77
    # First update all linked biblios of reference
74
    merge({ mergefrom => $reference, MARCfrom => $marc_ref, mergeto => $reference, MARCto => $marc_ref, override_limit => 1 }) if $commit;
78
    merge({ mergefrom => $reference, MARCfrom => $marc_ref, mergeto => $reference, MARCto => $marc_ref, override_limit => 1 }) if $commit;
Lines 101-110 sub merge_auth { Link Here
101
sub renumber {
105
sub renumber {
102
    my ( $auths ) = @_;
106
    my ( $auths ) = @_;
103
    foreach my $authid ( uniq(@$auths) ) {
107
    foreach my $authid ( uniq(@$auths) ) {
104
        if( my $obj = Koha::Authorities->find($authid) ) {
108
        if( my $authority = Koha::Authorities->find($authid) ) {
105
            my $marc = GetAuthority( $authid );
109
            my $marc = GetAuthority( $authid );
106
            if( $commit ) {
110
            if( $commit ) {
107
                AddAuthority( $marc, $authid, $obj->authtypecode );
111
                AddAuthority( $marc, $authid, $authority->authtypecode );
108
                    # AddAuthority contains an update of 001, 005 etc.
112
                    # AddAuthority contains an update of 001, 005 etc.
109
                print "Renumbered $authid\n" if $verbose;
113
                print "Renumbered $authid\n" if $verbose;
110
            } else {
114
            } else {
111
- 

Return to bug 18071