Lines 41-46
use C4::Dates qw/format_date format_date_in_iso/;
Link Here
|
41 |
use C4::Members; # GetBorrowersWhoHavexxxBorrowed. |
41 |
use C4::Members; # GetBorrowersWhoHavexxxBorrowed. |
42 |
use C4::Circulation; # AnonymiseIssueHistory. |
42 |
use C4::Circulation; # AnonymiseIssueHistory. |
43 |
use Date::Calc qw/Today Add_Delta_YM/; |
43 |
use Date::Calc qw/Today Add_Delta_YM/; |
|
|
44 |
use Getopt::Long; |
45 |
|
46 |
if ( scalar @ARGV > 0 ) { |
47 |
my ($untildate, $delete, $full, $anonymize, $help, $test); |
48 |
my ($totalDel, $totalAno, $membersToDelete, $membersToAnonymize) = (0,0,0,0); |
49 |
GetOptions( 'until=s' => \$untildate, |
50 |
'delete' => \$delete, |
51 |
'anonymize' => \$anonymize, |
52 |
'full' => \$full, |
53 |
'help|h' => \$help, |
54 |
'test|t' => \$test, |
55 |
); |
56 |
|
57 |
if($help or not $untildate){ |
58 |
print <<EOF |
59 |
This script anonymize history, and delete olds borrowers. |
60 |
Parameters : |
61 |
-delete to delete borrowers that have not borrowed until the specified date |
62 |
-full do not move borrowers to deletedborrowers, delete really from the database. |
63 |
-anonymize to anonmize history of borrowers until the specified date |
64 |
-until=s date until to clean borrowers and/or history |
65 |
-test|t to test and do not delete anything |
66 |
-help|h this help |
67 |
|
68 |
example : |
69 |
export PERL5LIB=/path/to/koha;export KOHA_CONF=/etc/koha/koha-conf.xml; ./tools/cleanborrowers.pl -delete -anonymize -until 2009-01-01 |
70 |
EOF |
71 |
; |
72 |
exit; |
73 |
} |
74 |
if($delete){ |
75 |
$membersToDelete = GetBorrowersWhoHaveNotBorrowedSince($untildate, 1); |
76 |
$totalDel = scalar @$membersToDelete; |
77 |
} |
78 |
if($anonymize){ |
79 |
$membersToAnonymize = GetBorrowersWithIssuesHistoryOlderThan($untildate); |
80 |
$totalAno = scalar @$membersToAnonymize; |
81 |
} |
82 |
|
83 |
print <<EOF |
84 |
Anonymization Report: |
85 |
* $totalDel patrons will be deleted |
86 |
* $totalAno check-out history will be anonymized |
87 |
EOF |
88 |
; |
89 |
exit if $test; |
90 |
|
91 |
if($delete){ |
92 |
print "Deleting patrons...\n"; |
93 |
if($full){ |
94 |
foreach my $member (@$membersToDelete){ |
95 |
DelMember( $member->{'borrowernumber'} ); |
96 |
} |
97 |
}else{ |
98 |
foreach my $member (@$membersToDelete){ |
99 |
MoveMemberToDeleted( $member->{'borrowernumber'} ); |
100 |
DelMember( $member->{'borrowernumber'} ); |
101 |
} |
102 |
} |
103 |
} |
104 |
|
105 |
if($anonymize){ |
106 |
print "Anonimyzing check-out history...\n"; |
107 |
AnonymiseIssueHistory($untildate); |
108 |
} |
109 |
|
110 |
print "Cleaning borrowers successfully finished.\n"; |
111 |
exit; |
112 |
} |
44 |
|
113 |
|
45 |
my $cgi = new CGI; |
114 |
my $cgi = new CGI; |
46 |
|
115 |
|
47 |
- |
|
|