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

(-)a/misc/maintenance/update_authorities.pl (-11 / +20 lines)
Lines 25-33 use Pod::Usage; Link Here
25
25
26
use C4::AuthoritiesMarc qw/AddAuthority DelAuthority GetAuthority merge/;
26
use C4::AuthoritiesMarc qw/AddAuthority DelAuthority GetAuthority merge/;
27
27
28
my ( @authid, $delete, $help, $merge, $reference, $renumber, $verbose );
28
my ( @authid, $commit, $delete, $help, $merge, $reference, $renumber, $verbose );
29
GetOptions(
29
GetOptions(
30
    'authid:s'    => \@authid,
30
    'authid:s'    => \@authid,
31
    'commit'      => \$commit,
31
    'delete'      => \$delete,
32
    'delete'      => \$delete,
32
    'help'        => \$help,
33
    'help'        => \$help,
33
    'merge'       => \$merge,
34
    'merge'       => \$merge,
Lines 37-50 GetOptions( Link Here
37
);
38
);
38
39
39
@authid = map { split /[,]/, $_; } @authid;
40
@authid = map { split /[,]/, $_; } @authid;
40
if( $delete ) {
41
if( $help ) {
42
    pod2usage(1);
43
} elsif( !$commit ) {
44
    print "Please add -commit parameter\n";
45
    exit;
46
} elsif( $delete ) {
41
    delete_auth( \@authid );
47
    delete_auth( \@authid );
42
} elsif( $merge ) {
48
} elsif( $merge ) {
43
    merge_auth( \@authid, $reference );
49
    merge_auth( \@authid, $reference );
44
} elsif( $renumber ) {
50
} elsif( $renumber ) {
45
    renumber( \@authid );
51
    renumber( \@authid );
46
} elsif( $help ) {
47
    pod2usage(1);
48
} else {
52
} else {
49
    pod2usage(1);
53
    pod2usage(1);
50
}
54
}
Lines 71-77 sub merge_auth { Link Here
71
    my $marc;
75
    my $marc;
72
    foreach my $authid ( uniq(@$auths) ) {
76
    foreach my $authid ( uniq(@$auths) ) {
73
        next if $authid == $reference;
77
        next if $authid == $reference;
74
        $marc = GetAuthority($authid) || next;
78
        $marc = GetAuthority($authid);
79
        if( !$marc ) {
80
            print "Authority id $authid ignored, does not exist.\n";
81
            next;
82
        }
75
        merge({ mergefrom => $authid, MARCfrom => $marc, mergeto => $reference, MARCto => $marc_ref, override_limit => 1 });
83
        merge({ mergefrom => $authid, MARCfrom => $marc, mergeto => $reference, MARCto => $marc_ref, override_limit => 1 });
76
        DelAuthority({ authid => $authid, skip_merge => 1 });
84
        DelAuthority({ authid => $authid, skip_merge => 1 });
77
        print "Record $authid merged into reference.\n" if $verbose;
85
        print "Record $authid merged into reference.\n" if $verbose;
Lines 107-127 It also allows you to force a renumber, i.e. save the authid into field 001. Link Here
107
115
108
=head1 SYNOPSIS
116
=head1 SYNOPSIS
109
117
110
update_authorities.pl -authid 1,2,3 -delete
118
update_authorities.pl -c -authid 1,2,3 -delete
111
119
112
update_authorities.pl -authid 1 -authid 2 -authid 3 -delete
120
update_authorities.pl -c -authid 1 -authid 2 -authid 3 -delete
113
121
114
update_authorities.pl -authid 1,2 -merge -reference 3
122
update_authorities.pl -c -authid 1,2 -merge -reference 3
115
123
116
update_authorities.pl -merge -reference 4
124
update_authorities.pl -c -merge -reference 4
117
125
118
update_authorities.pl -authid 1,2,3 -renumber
126
update_authorities.pl -c -authid 1,2,3 -renumber
119
127
120
=head1 OPTIONS
128
=head1 OPTIONS
121
129
122
authid: List authority numbers separated by commas or repeat the
130
authid: List authority numbers separated by commas or repeat the
123
parameter.
131
parameter.
124
132
133
commit: Needed to commit changes.
134
125
delete: Delete the listed authority numbers and remove its references from
135
delete: Delete the listed authority numbers and remove its references from
126
linked biblio records.
136
linked biblio records.
127
137
128
- 

Return to bug 18071