|
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 |
- |
|
|