[Koha-patches] [PATCH] (bug #4916) permit tools/cleanborrowers.pl to be used by command line
Nahuel ANGELINETTI
nahuel.angelinetti at biblibre.com
Tue Jun 29 11:24:27 CEST 2010
This patchs adds the possibility to run the script by command line.
---
tools/cleanborrowers.pl | 69 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 69 insertions(+), 0 deletions(-)
diff --git a/tools/cleanborrowers.pl b/tools/cleanborrowers.pl
index 1a6c9bc..8cdea2b 100755
--- a/tools/cleanborrowers.pl
+++ b/tools/cleanborrowers.pl
@@ -40,6 +40,75 @@ use C4::Dates qw/format_date format_date_in_iso/;
use C4::Members; # GetBorrowersWhoHavexxxBorrowed.
use C4::Circulation; # AnonymiseIssueHistory.
use Date::Calc qw/Today Add_Delta_YM/;
+use Getopt::Long;
+
+if ( scalar @ARGV > 0 ) {
+ my ($untildate, $delete, $full, $anonymize, $help, $test);
+ my ($totalDel, $totalAno, $membersToDelete, $membersToAnonymize) = (0,0,0,0);
+ GetOptions( 'until=s' => \$untildate,
+ 'delete' => \$delete,
+ 'anonymize' => \$anonymize,
+ 'full' => \$full,
+ 'help|h' => \$help,
+ 'test|t' => \$test,
+ );
+
+ if($help or not $untildate){
+ print <<EOF
+ This script anonymize history, and delete olds borrowers.
+ Parameters :
+ -delete to delete borrowers that have not borrowed until the specified date
+ -full do not move borrowers to deletedborrowers, delete really from the database.
+ -anonymize to anonmize history of borrowers until the specified date
+ -until=s date until to clean borrowers and/or history
+ -test|t to test and do not delete anything
+ -help|h this help
+
+ example :
+ export PERL5LIB=/path/to/koha;export KOHA_CONF=/etc/koha/koha-conf.xml; ./tools/cleanborrowers.pl -delete -anonymize -until 2009-01-01
+EOF
+;
+ exit;
+ }
+ if($delete){
+ $membersToDelete = GetBorrowersWhoHaveNotBorrowedSince($untildate, 1);
+ $totalDel = scalar @$membersToDelete;
+ }
+ if($anonymize){
+ $membersToAnonymize = GetBorrowersWithIssuesHistoryOlderThan($untildate);
+ $totalAno = scalar @$membersToAnonymize;
+ }
+
+ print <<EOF
+ Anonymization Report:
+ * $totalDel patrons will be deleted
+ * $totalAno check-out history will be anonymized
+EOF
+;
+ exit if $test;
+
+ if($delete){
+ print "Deleting patrons...\n";
+ if($full){
+ foreach my $member (@$membersToDelete){
+ DelMember( $member->{'borrowernumber'} );
+ }
+ }else{
+ foreach my $member (@$membersToDelete){
+ MoveMemberToDeleted( $member->{'borrowernumber'} );
+ DelMember( $member->{'borrowernumber'} );
+ }
+ }
+ }
+
+ if($anonymize){
+ print "Anonimyzing check-out history...\n";
+ AnonymiseIssueHistory($untildate);
+ }
+
+ print "Cleaning borrowers successfully finished.\n";
+ exit;
+}
my $cgi = new CGI;
--
1.7.0.4
More information about the Koha-patches
mailing list