From d37c52d50e9aaa6b7f6594db6de2a2ec5efb443f Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Thu, 9 Oct 2014 10:23:31 +0200 Subject: [PATCH] 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 --- misc/cronjobs/delete_expired_opac_registrations.pl | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/misc/cronjobs/delete_expired_opac_registrations.pl b/misc/cronjobs/delete_expired_opac_registrations.pl index c7c3375..7a24d47 100755 --- a/misc/cronjobs/delete_expired_opac_registrations.pl +++ b/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; -- 1.9.1