X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=tools%2Fcleanborrowers.pl;h=1a6c9bc25122289561a11d7d29e87dba1aaea6de;hb=fe2eb7c9fd6bcfd523ac2520d5354f614999102d;hp=3be6059a12a948eba6f1530d347cfefee0e0efe0;hpb=100e6a9808ead4ee8d951da59ead1550e75bb4c3;p=koha.git diff --git a/tools/cleanborrowers.pl b/tools/cleanborrowers.pl index 3be6059a12..1a6c9bc251 100755 --- a/tools/cleanborrowers.pl +++ b/tools/cleanborrowers.pl @@ -17,7 +17,6 @@ # # Written by Antoine Farnault antoine@koha-fr.org on Nov. 2006. -# $Id$ =head1 cleanborrowers.pl @@ -37,11 +36,10 @@ use strict; use CGI; use C4::Auth; use C4::Output; - - -use C4::Members; # GetBorrowersWhoHavexxxBorrowed. +use C4::Dates qw/format_date format_date_in_iso/; +use C4::Members; # GetBorrowersWhoHavexxxBorrowed. use C4::Circulation; # AnonymiseIssueHistory. -use Date::Calc qw/Date_to_Days Today/; +use Date::Calc qw/Today Add_Delta_YM/; my $cgi = new CGI; @@ -61,26 +59,26 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( query => $cgi, type => "intranet", authnotrequired => 0, - flagsrequired => { tools => 1, catalogue => 1 }, + flagsrequired => { tools => 'delete_anonymize_patrons', catalogue => 1 }, } ); if ( $params->{'step2'} ) { - $filterdate1 = $params->{'filterdate1'}; - $filterdate2 = $params->{'filterdate2'}; - my $checkbox = $params->{'checkbox'}; + $filterdate1 = format_date_in_iso($params->{'filterdate1'}); + $filterdate2 = format_date_in_iso($params->{'filterdate2'}); + my %checkboxes = map { $_ => 1 } split /\0/, $params->{'checkbox'}; my $totalDel; - if ($checkbox eq "borrower") { - $filterdate1 = $params->{'filterdate1'}; - my $membersToDelete = GetBorrowersWhoHaveNotBorrowedSince($filterdate1); + my $membersToDelete; + if ($checkboxes{borrower}) { + $membersToDelete = GetBorrowersWhoHaveNotBorrowedSince($filterdate1, 1); $totalDel = scalar @$membersToDelete; + } - my $totalAno; - if ($checkbox eq "issue") { - $filterdate2 = $params->{'filterdate2'}; - my $membersToAnonymize = + my $membersToAnonymize; + if ($checkboxes{issue}) { + $membersToAnonymize = GetBorrowersWithIssuesHistoryOlderThan($filterdate2); $totalAno = scalar @$membersToAnonymize; } @@ -89,18 +87,21 @@ if ( $params->{'step2'} ) { step2 => 1, totalToDelete => $totalDel, totalToAnonymize => $totalAno, - filterdate1 => $filterdate1, - filterdate2 => $filterdate2 + memberstodelete_list => $membersToDelete, + memberstoanonymize_list => $membersToAnonymize, + filterdate1 => format_date($filterdate1), + filterdate2 => format_date($filterdate2), ); - +### TODO : Use GetBorrowersNamesAndLatestIssue function in order to get the borrowers to delete or anonymize. +### Now, we are only using total, which is not enough imlo #writing the template output_html_with_http_headers $cgi, $cookie, $template->output; exit; } if ( $params->{'step3'} ) { - $filterdate1 = $params->{'filterdate1'}; - $filterdate2 = $params->{'filterdate2'}; + $filterdate1 = format_date_in_iso($params->{'filterdate1'}); + $filterdate2 = format_date_in_iso($params->{'filterdate2'}); my $do_delete = $params->{'do_delete'}; my $do_anonym = $params->{'do_anonym'}; @@ -108,7 +109,7 @@ if ( $params->{'step3'} ) { # delete members if ($do_delete) { - my $membersToDelete = GetBorrowersWhoHaveNotBorrowedSince($filterdate1); + my $membersToDelete = GetBorrowersWhoHaveNotBorrowedSince($filterdate1, 1); $totalDel = scalar(@$membersToDelete); $radio = $params->{'radio'}; if ( $radio eq 'trash' ) { @@ -151,15 +152,14 @@ if ( $params->{'step3'} ) { #default value set to the template are the 'CNIL' value. my ( $year, $month, $day ) = &Today(); -my $tmpyear = $year - 1; -my $tmpmonth = $month - 3; -$filterdate1 = $year . "-" . $tmpmonth . "-" . $day; -$filterdate2 = $tmpyear . "-" . $month . "-" . $day; +$filterdate1 = format_date(sprintf("%-04.4d-%-02.2d-%02.2d", Add_Delta_YM($year, $month, $day, -1, 0))); +$filterdate2 = format_date(sprintf("%-04.4d-%-02.2d-%02.2d", Add_Delta_YM($year, $month, $day, 0, -3))); $template->param( step1 => '1', filterdate1 => $filterdate1, - filterdate2 => $filterdate2 + filterdate2 => $filterdate2, + DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(), ); #writing the template