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

(-)a/misc/cronjobs/delete_patrons.pl (-8 / +19 lines)
Lines 57-93 $dbh->{RaiseError} = 1; Link Here
57
$dbh->{PrintError} = 0;
57
$dbh->{PrintError} = 0;
58
58
59
$dbh->{AutoCommit} = 0; # use transactions to avoid partial deletes
59
$dbh->{AutoCommit} = 0; # use transactions to avoid partial deletes
60
my $deleted = 0;
60
for my $member (@$members) {
61
for my $member (@$members) {
61
    print "Trying to delete patron $member->{borrowernumber}... "
62
    print "Trying to delete patron $member->{borrowernumber}... "
62
      if $verbose;
63
      if $verbose;
64
65
    my $borrowernumber = $member->{borrowernumber};
66
    my $flags = C4::Members::patronflags( $member );
67
    if ( my $charges = $flags->{CHARGES}{amount} ) {
68
        say "Failed to delete patron $borrowernumber: patron has $charges in fines";
69
        next;
70
    }
71
63
    eval {
72
    eval {
64
        C4::Members::MoveMemberToDeleted( $member->{borrowernumber} )
73
        C4::Members::MoveMemberToDeleted( $borrowernumber )
65
          if $confirm;
74
          if $confirm;
66
    };
75
    };
67
    if ($@) {
76
    if ($@) {
68
        say "Failed to delete patron $member->{borrowernumber}, cannot move it: ($@)";
77
        say "Failed to delete patron $borrowernumber, cannot move it: ($@)";
69
        $dbh->rollback;
78
        $dbh->rollback;
70
        next;
79
        next;
71
    }
80
    }
72
    eval {
81
    eval {
73
        C4::VirtualShelves::HandleDelBorrower( $member->{borrowernumber} )
82
        C4::VirtualShelves::HandleDelBorrower( $borrowernumber )
74
          if $confirm;
83
          if $confirm;
75
    };
84
    };
76
    if ($@) {
85
    if ($@) {
77
        say "Failed to delete patron $member->{borrowernumber}, error handling its lists: ($@)";
86
        say "Failed to delete patron $borrowernumber, error handling its lists: ($@)";
78
        $dbh->rollback;
87
        $dbh->rollback;
79
        next;
88
        next;
80
    }
89
    }
81
    eval { C4::Members::DelMember( $member->{borrowernumber} ) if $confirm; };
90
    eval { C4::Members::DelMember( $borrowernumber ) if $confirm; };
82
    if ($@) {
91
    if ($@) {
83
        say "Failed to delete patron $member->{borrowernumber}: $@)";
92
        say "Failed to delete patron $borrowernumber: $@)";
84
        $dbh->rollback;
93
        $dbh->rollback;
85
        next;
94
        next;
86
    }
95
    }
87
    $dbh->commit;
96
    $dbh->commit;
97
    $deleted++;
88
    say "OK" if $verbose;
98
    say "OK" if $verbose;
89
}
99
}
90
100
101
say "$deleted patrons deleted";
102
91
=head1 NAME
103
=head1 NAME
92
104
93
delete_patrons - This script deletes patrons
105
delete_patrons - This script deletes patrons
Lines 112-118 Print a brief help message Link Here
112
124
113
Delete patrons who have not borrowed since this date.
125
Delete patrons who have not borrowed since this date.
114
126
115
=item B<--expired_date>
127
=item B<--expired_before>
116
128
117
Delete patrons with an account expired before this date.
129
Delete patrons with an account expired before this date.
118
130
119
- 

Return to bug 10419