Bug 10419: new cronjob for deleting patrons
This patch provides a cronjob script for deleting patrons. It takes 3 options: --not_borrowed_since --expired_date --category_code See the perldoc misc/cronjobs/delete_patrons.pl. Use the -v flag for a verbose mode. Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz> Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> Passes all tests and QA script. Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This commit is contained in:
parent
9db77158d0
commit
231ed790e4
1 changed files with 123 additions and 0 deletions
123
misc/cronjobs/delete_patrons.pl
Normal file
123
misc/cronjobs/delete_patrons.pl
Normal file
|
@ -0,0 +1,123 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
use Modern::Perl;
|
||||
|
||||
use Pod::Usage;
|
||||
use Getopt::Long;
|
||||
|
||||
use C4::Members;
|
||||
use Koha::DateUtils;
|
||||
|
||||
my ( $help, $verbose, $not_borrowered_since, $expired_before, $category_code,
|
||||
$dryrun );
|
||||
GetOptions(
|
||||
'h|help' => \$help,
|
||||
'v|verbose' => \$verbose,
|
||||
'not_borrowered_since:s' => \$not_borrowered_since,
|
||||
'expired_before:s' => \$expired_before,
|
||||
'category_code:s' => \$category_code,
|
||||
'dry-run' => \$dryrun,
|
||||
) || pod2usage(1);
|
||||
|
||||
if ($help) {
|
||||
pod2usage(1);
|
||||
}
|
||||
|
||||
$not_borrowered_since = dt_from_string( $not_borrowered_since, 'iso' )
|
||||
if $not_borrowered_since;
|
||||
|
||||
$expired_before = dt_from_string( $expired_before, 'iso' )
|
||||
if $expired_before;
|
||||
|
||||
unless ( $not_borrowered_since or $expired_before or $category_code ) {
|
||||
pod2usage(q{At least one filter is mandatory});
|
||||
exit;
|
||||
}
|
||||
|
||||
my $members = GetBorrowersToExpunge(
|
||||
{
|
||||
not_borrowered_since => $not_borrowered_since,
|
||||
expired_before => $expired_before,
|
||||
category_code => $category_code,
|
||||
}
|
||||
);
|
||||
|
||||
say "I found " . scalar(@$members) . " patrons to delete";
|
||||
for my $member (@$members) {
|
||||
print "Trying to delete patron " . $member->{borrowernumber} . "... ";
|
||||
eval {
|
||||
C4::Members::MoveMemberToDeleted( $member->{borrowernumber} )
|
||||
unless $dryrun;
|
||||
};
|
||||
if ($@) {
|
||||
say "Failed, I cannot move this patron ($@)";
|
||||
next;
|
||||
}
|
||||
eval { C4::Members::DelMember( $member->{borrowernumber} ) unless $dryrun; };
|
||||
if ($@) {
|
||||
say "Failed, I cannot delete this patron ($@)";
|
||||
next;
|
||||
}
|
||||
say "OK";
|
||||
}
|
||||
|
||||
=head1 NAME
|
||||
|
||||
delete_patrons - This script deletes patrons
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
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
|
||||
|
||||
Options are cumulatives.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over
|
||||
|
||||
=item B<-h|--help>
|
||||
|
||||
Print a brief help message
|
||||
|
||||
=item B<--not_borrowered_since>
|
||||
|
||||
Delete patrons who have not borrowered since this date.
|
||||
|
||||
=item B<--expired_date>
|
||||
|
||||
Delete patrons with an account expired before this date.
|
||||
|
||||
=item B<--category_code>
|
||||
|
||||
Delete patrons who have this category code.
|
||||
|
||||
=item B<--dry-run>
|
||||
|
||||
Dry run mode. To use with the verbose mode.
|
||||
|
||||
=item B<-v|--verbose>
|
||||
|
||||
Verbose mode.
|
||||
|
||||
=back
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Jonathan Druart <jonathan.druart@biblibre.com>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2013 BibLibre
|
||||
|
||||
=head1 LICENSE
|
||||
|
||||
This file is part of Koha.
|
||||
|
||||
Koha is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software
|
||||
Foundation; either version 2 of the License, or (at your option) any later version.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with Koha; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
=cut
|
Loading…
Reference in a new issue