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

(-)a/misc/maintenance/update_authorities.pl (-14 / +29 lines)
Lines 38-48 GetOptions( Link Here
38
);
38
);
39
39
40
@authid = map { split /[,]/, $_; } @authid;
40
@authid = map { split /[,]/, $_; } @authid;
41
print "No changes will be made\n" unless $commit;
41
if( $help ) {
42
if( $help ) {
42
    pod2usage(1);
43
    pod2usage(1);
43
} elsif( !$commit ) {
44
    print "Please add -commit parameter\n";
45
    exit;
46
} elsif( $delete ) {
44
} elsif( $delete ) {
47
    delete_auth( \@authid );
45
    delete_auth( \@authid );
48
} elsif( $merge ) {
46
} elsif( $merge ) {
Lines 56-63 if( $help ) { Link Here
56
sub delete_auth {
54
sub delete_auth {
57
    my ( $auths ) = @_;
55
    my ( $auths ) = @_;
58
    foreach my $authid ( uniq(@$auths) ) {
56
    foreach my $authid ( uniq(@$auths) ) {
59
        DelAuthority({ authid => $authid }); # triggers a merge (read: cleanup)
57
        if( $commit ) {
60
        print "Removing $authid\n" if $verbose;
58
            DelAuthority({ authid => $authid }); # triggers a merge (read: cleanup)
59
            print "Removing $authid\n" if $verbose;
60
        } else {
61
            print "Would have removed $authid\n" if $verbose;
62
        }
61
    }
63
    }
62
}
64
}
63
65
Lines 67-75 sub merge_auth { Link Here
67
        print "Reference parameter is missing\n";
69
        print "Reference parameter is missing\n";
68
        return;
70
        return;
69
    }
71
    }
70
    my $marc_ref = GetAuthority( $reference ) || return;
72
    my $marc_ref = GetAuthority( $reference ) || die "Reference record $reference not found\n";
71
    # First update all linked biblios of reference
73
    # First update all linked biblios of reference
72
    merge({ mergefrom => $reference, MARCfrom => $marc_ref, mergeto => $reference, MARCto => $marc_ref, override_limit => 1 });
74
    merge({ mergefrom => $reference, MARCfrom => $marc_ref, mergeto => $reference, MARCto => $marc_ref, override_limit => 1 }) if $commit;
73
75
74
    # Merge all authid's into reference
76
    # Merge all authid's into reference
75
    my $marc;
77
    my $marc;
Lines 80-88 sub merge_auth { Link Here
80
            print "Authority id $authid ignored, does not exist.\n";
82
            print "Authority id $authid ignored, does not exist.\n";
81
            next;
83
            next;
82
        }
84
        }
83
        merge({ mergefrom => $authid, MARCfrom => $marc, mergeto => $reference, MARCto => $marc_ref, override_limit => 1 });
85
        if( $commit ) {
84
        DelAuthority({ authid => $authid, skip_merge => 1 });
86
            merge({
85
        print "Record $authid merged into reference.\n" if $verbose;
87
                mergefrom      => $authid,
88
                MARCfrom       => $marc,
89
                mergeto        => $reference,
90
                MARCto         => $marc_ref,
91
                override_limit => 1
92
            });
93
            DelAuthority({ authid => $authid, skip_merge => 1 });
94
            print "Record $authid merged into reference $reference.\n" if $verbose;
95
        } else {
96
            print "Would have marged record $authid into reference $reference.\n" if $verbose;
97
        }
86
    }
98
    }
87
}
99
}
88
100
Lines 91-99 sub renumber { Link Here
91
    foreach my $authid ( uniq(@$auths) ) {
103
    foreach my $authid ( uniq(@$auths) ) {
92
        if( my $obj = Koha::Authorities->find($authid) ) {
104
        if( my $obj = Koha::Authorities->find($authid) ) {
93
            my $marc = GetAuthority( $authid );
105
            my $marc = GetAuthority( $authid );
94
            AddAuthority( $marc, $authid, $obj->authtypecode );
106
            if( $commit ) {
95
                # AddAuthority contains an update of 001, 005 etc.
107
                AddAuthority( $marc, $authid, $obj->authtypecode );
96
            print "Renumbered $authid\n" if $verbose;
108
                    # AddAuthority contains an update of 001, 005 etc.
109
                print "Renumbered $authid\n" if $verbose;
110
            } else {
111
                print "Would have renumbered $authid\n" if $verbose;
112
            }
97
        } else {
113
        } else {
98
            print "Record $authid not found!\n"  if $verbose;
114
            print "Record $authid not found!\n"  if $verbose;
99
        }
115
        }
100
- 

Return to bug 18071