Lines 6-11
use Pod::Usage;
Link Here
|
6 |
use Getopt::Long; |
6 |
use Getopt::Long; |
7 |
|
7 |
|
8 |
use C4::Members; |
8 |
use C4::Members; |
|
|
9 |
use C4::VirtualShelves; |
9 |
use Koha::DateUtils; |
10 |
use Koha::DateUtils; |
10 |
|
11 |
|
11 |
my ( $help, $verbose, $not_borrowed_since, $expired_before, $category_code, |
12 |
my ( $help, $verbose, $not_borrowed_since, $expired_before, $category_code, |
Lines 44-71
my $members = GetBorrowersToExpunge(
Link Here
|
44 |
} |
45 |
} |
45 |
); |
46 |
); |
46 |
|
47 |
|
|
|
48 |
unless ($confirm) { |
49 |
say "Doing a dry run; no patron records will actually be deleted."; |
50 |
say "Run again with --confirm to delete the records."; |
51 |
} |
52 |
|
47 |
say scalar(@$members) . " patrons to delete"; |
53 |
say scalar(@$members) . " patrons to delete"; |
48 |
|
54 |
|
49 |
my $dbh = C4::Context->dbh; |
55 |
my $dbh = C4::Context->dbh; |
50 |
$dbh->{RaiseError} = 1; |
56 |
$dbh->{RaiseError} = 1; |
51 |
$dbh->{PrintError} = 0; |
57 |
$dbh->{PrintError} = 0; |
52 |
|
58 |
|
|
|
59 |
@$members = ( { borrowernumber => 19 } ); |
60 |
|
61 |
$dbh->{AutoCommit} = 0; # use transactions to avoid partial deletes |
53 |
for my $member (@$members) { |
62 |
for my $member (@$members) { |
54 |
print "Trying to delete patron " . $member->{borrowernumber} . "... "; |
63 |
print "Trying to delete patron $member->{borrowernumber}... " |
|
|
64 |
if $verbose; |
55 |
eval { |
65 |
eval { |
56 |
C4::Members::MoveMemberToDeleted( $member->{borrowernumber} ) |
66 |
C4::Members::MoveMemberToDeleted( $member->{borrowernumber} ) |
57 |
if $confirm; |
67 |
if $confirm; |
58 |
}; |
68 |
}; |
59 |
if ($@) { |
69 |
if ($@) { |
60 |
say "Failed, cannot move this patron ($@)"; |
70 |
say "Failed to delete patron $member->{borrowernumber}, cannot move it: ($@)"; |
|
|
71 |
$dbh->rollback; |
72 |
next; |
73 |
} |
74 |
eval { |
75 |
C4::VirtualShelves::HandleDelBorrower( $member->{borrowernumber} ) |
76 |
if $confirm; |
77 |
}; |
78 |
if ($@) { |
79 |
say "Failed to delete patron $member->{borrowernumber}, error handling its lists: ($@)"; |
80 |
$dbh->rollback; |
61 |
next; |
81 |
next; |
62 |
} |
82 |
} |
63 |
eval { C4::Members::DelMember( $member->{borrowernumber} ) if $confirm; }; |
83 |
eval { C4::Members::DelMember( $member->{borrowernumber} ) if $confirm; }; |
64 |
if ($@) { |
84 |
if ($@) { |
65 |
say "Failed, cannot delete this patron ($@)"; |
85 |
say "Failed to delete patron $member->{borrowernumber}: $@)"; |
|
|
86 |
$dbh->rollback; |
66 |
next; |
87 |
next; |
67 |
} |
88 |
} |
68 |
say "OK"; |
89 |
$dbh->commit; |
|
|
90 |
say "OK" if $verbose; |
69 |
} |
91 |
} |
70 |
|
92 |
|
71 |
=head1 NAME |
93 |
=head1 NAME |
72 |
- |
|
|