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

(-)a/misc/cronjobs/delete_patrons.pl (-11 / +17 lines)
Lines 9-22 use C4::Members; Link Here
9
use Koha::DateUtils;
9
use Koha::DateUtils;
10
10
11
my ( $help, $verbose, $not_borrowered_since, $expired_before, $category_code,
11
my ( $help, $verbose, $not_borrowered_since, $expired_before, $category_code,
12
    $dryrun );
12
    $confirm );
13
GetOptions(
13
GetOptions(
14
    'h|help'                 => \$help,
14
    'h|help'                 => \$help,
15
    'v|verbose'              => \$verbose,
15
    'v|verbose'              => \$verbose,
16
    'not_borrowered_since:s' => \$not_borrowered_since,
16
    'not_borrowered_since:s' => \$not_borrowered_since,
17
    'expired_before:s'       => \$expired_before,
17
    'expired_before:s'       => \$expired_before,
18
    'category_code:s'        => \$category_code,
18
    'category_code:s'        => \$category_code,
19
    'dry-run'                => \$dryrun,
19
    'c|confirm'              => \$confirm,
20
) || pod2usage(1);
20
) || pod2usage(1);
21
21
22
if ($help) {
22
if ($help) {
Lines 42-61 my $members = GetBorrowersToExpunge( Link Here
42
    }
42
    }
43
);
43
);
44
44
45
say "I found " . scalar(@$members) . " patrons to delete";
45
say scalar(@$members) . " patrons to delete";
46
47
my $dbh = C4::Context->dbh;
48
$dbh->{RaiseError} = 1;
49
$dbh->{PrintError} = 0;
50
46
for my $member (@$members) {
51
for my $member (@$members) {
47
    print "Trying to delete patron " . $member->{borrowernumber} . "... ";
52
    print "Trying to delete patron " . $member->{borrowernumber} . "... ";
48
    eval {
53
    eval {
49
        C4::Members::MoveMemberToDeleted( $member->{borrowernumber} )
54
        C4::Members::MoveMemberToDeleted( $member->{borrowernumber} )
50
          unless $dryrun;
55
          if $confirm;
51
    };
56
    };
52
    if ($@) {
57
    if ($@) {
53
        say "Failed, I cannot move this patron ($@)";
58
        say "Failed, cannot move this patron ($@)";
54
        next;
59
        next;
55
    }
60
    }
56
    eval { C4::Members::DelMember( $member->{borrowernumber} ) unless $dryrun; };
61
    eval { C4::Members::DelMember( $member->{borrowernumber} ) if $confirm; };
57
    if ($@) {
62
    if ($@) {
58
        say "Failed, I cannot delete this patron ($@)";
63
        say "Failed, cannot delete this patron ($@)";
59
        next;
64
        next;
60
    }
65
    }
61
    say "OK";
66
    say "OK";
Lines 67-73 delete_patrons - This script deletes patrons Link Here
67
72
68
=head1 SYNOPSIS
73
=head1 SYNOPSIS
69
74
70
delete_patrons.pl [-h -v] --not_borrowered_since=`date -d '-3 month' "+%Y-%m-%d"` --expired_before=`date -d '-3 month' "+%Y-%m-%d"` --category_code=CAT
75
delete_patrons.pl [-h -v -c] --not_borrowered_since=2013-07-21 --expired_before=2013-07-21 --category_code=CAT
76
77
dates can be generated with `date -d '-3 month' "+%Y-%m-%d"`
71
78
72
Options are cumulatives.
79
Options are cumulatives.
73
80
Lines 91-99 Delete patrons with an account expired before this date. Link Here
91
98
92
Delete patrons who have this category code.
99
Delete patrons who have this category code.
93
100
94
=item B<--dry-run>
101
=item B<-c|--confirm>
95
102
96
Dry run mode. To use with the verbose mode.
103
Without this flag set, this script will do nothing.
97
104
98
=item B<-v|--verbose>
105
=item B<-v|--verbose>
99
106
100
- 

Return to bug 10419