Browse Source

Bug 11945: SQL syntax error in delete_expired_opac_registrations.pl

This patch corrects a syntax error, adds some comments to the usage
instructions and adds a count of the removed borrowers (with verbose
flag on).

Note that this is a dangerous script. It will delete your patrons
in patron category PatronSelfRegistrationDefaultCategory.
If you do not use this as a temporary category, you should NOT run this
script.

Test plan:
Check PatronSelfRegistrationDefaultCategory.
Check PatronSelfRegistrationExpireTemporaryAccountsDelay.
Based on these two settings, check the number of patrons to be deleted (date
enrolled should be before NOW minus the delay).
Backup your data and run the script.
Check the number of deleted borrowers.

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
MM-OPAC/theme_dep
Marcel de Rooy 8 years ago
committed by Tomas Cohen Arazi
parent
commit
5e7e48b9c5
  1. 20
      misc/cronjobs/delete_expired_opac_registrations.pl

20
misc/cronjobs/delete_expired_opac_registrations.pl

@ -33,22 +33,29 @@ use C4::Members qw/ DelMember /;
my $help;
my $confirm;
my $verbose;
GetOptions(
'h|help' => \$help,
'c|confirm' => \$confirm,
'v|verbose' => \$verbose,
);
my $usage = << 'ENDUSAGE';
This script remove confirmed OPAC based patron registrations
This script removes confirmed OPAC based patron registrations
that have not been changed from the patron category specified
in the system preference PatronSelfRegistrationDefaultCategory
within the required time period.
This script has the following parameters :
-h --help: This message
NOTE: If you do not use self registration, do NOT run this script.
If you use self registration, but you do not use a temporary
category for new registrations, do NOT run this script too.
This script has the following parameters :
-c --confirm: Without this flag set, this script will do nothing.
-h --help: Print this message.
-v --verbose: Print number of removed patrons.
ENDUSAGE
if ( $help || !$confirm ) {
@ -56,7 +63,7 @@ if ( $help || !$confirm ) {
exit;
}
## Delete accounts that haven't been upgraded from the 'temporary' category code'
# Delete accounts that haven't been upgraded from the 'temporary' category code
my $delay =
C4::Context->preference('PatronSelfRegistrationExpireTemporaryAccountsDelay');
my $category_code =
@ -68,13 +75,16 @@ my $query = "
WHERE
categorycode = ?
AND
DATEDIFF( DATE( NOW() ), DATE(dateenrolled) ) = ? )
DATEDIFF( NOW(), dateenrolled ) > ?
";
my $dbh = C4::Context->dbh;
my $sth = $dbh->prepare($query);
$sth->execute( $category_code, $delay );
my $cnt=0;
while ( my ($borrowernumber) = $sth->fetchrow_array() ) {
DelMember($borrowernumber);
$cnt++;
}
print "Removed $cnt expired self-registered borrowers in category $category_code\n" if $verbose;

Loading…
Cancel
Save