X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=tools%2Fcleanborrowers.pl;h=4fde0f2b5eb2085dd41126f46c21c942d38435c9;hb=75a4efa7042a8d15ba7832d67b8670282da3abbc;hp=1385aa821398cac82fad0cf043c17fcb40094f39;hpb=a5bd2403218b5add150088ab525b1f00e50a0c12;p=koha_gimpoz diff --git a/tools/cleanborrowers.pl b/tools/cleanborrowers.pl index 1385aa8213..4fde0f2b5e 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 @@ -34,15 +33,14 @@ This script allows to do 2 things. =cut use strict; +#use warnings; FIXME - Bug 2505 use CGI; use C4::Auth; use C4::Output; -use C4::Date; - - -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; @@ -62,24 +60,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 = format_date_in_iso($params->{'filterdate1'}); $filterdate2 = format_date_in_iso($params->{'filterdate2'}); - my $checkbox = $params->{'checkbox'}; + my %checkboxes = map { $_ => 1 } split /\0/, $params->{'checkbox'}; my $totalDel; - if ($checkbox eq "borrower") { - my $membersToDelete = GetBorrowersWhoHaveNotBorrowedSince($filterdate1); + my $membersToDelete; + if ($checkboxes{borrower}) { + $membersToDelete = GetBorrowersWhoHaveNotBorrowedSince($filterdate1, 1); $totalDel = scalar @$membersToDelete; + } - my $totalAno; - if ($checkbox eq "issue") { - my $membersToAnonymize = + my $membersToAnonymize; + if ($checkboxes{issue}) { + $membersToAnonymize = GetBorrowersWithIssuesHistoryOlderThan($filterdate2); $totalAno = scalar @$membersToAnonymize; } @@ -88,10 +88,13 @@ if ( $params->{'step2'} ) { step2 => 1, totalToDelete => $totalDel, totalToAnonymize => $totalAno, + 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; @@ -107,7 +110,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' ) { @@ -150,16 +153,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 = format_date($tmpyear . "-" . $month . "-" . $day); -$filterdate2 = format_date($year . "-" . $tmpmonth . "-" . $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, - DHTMLcalendar_dateformat => get_date_format_string_for_DHTMLcalendar(), + DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(), ); #writing the template