Merge remote-tracking branch 'origin/new/bug_7993'
[koha_fer] / tools / cleanborrowers.pl
index ddfb7e3..0b37c20 100755 (executable)
@@ -33,12 +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::Dates qw/format_date format_date_in_iso/;
 use C4::Members;        # GetBorrowersWhoHavexxxBorrowed.
 use C4::Circulation;    # AnonymiseIssueHistory.
+use C4::VirtualShelves (); #no import
 use Date::Calc qw/Today Add_Delta_YM/;
 
 my $cgi = new CGI;
@@ -66,18 +68,18 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
 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;
     my $membersToDelete;
-    if ($checkbox eq "borrower") {
-        $membersToDelete = GetBorrowersWhoHaveNotBorrowedSince($filterdate1);
+    if ($checkboxes{borrower}) {
+        $membersToDelete = GetBorrowersWhoHaveNotBorrowedSince($filterdate1, 1);
         $totalDel = scalar @$membersToDelete;
             
     }
     my $totalAno;
     my $membersToAnonymize;
-    if ($checkbox eq "issue") {
+    if ($checkboxes{issue}) {
         $membersToAnonymize =
           GetBorrowersWithIssuesHistoryOlderThan($filterdate2);
         $totalAno = scalar @$membersToAnonymize;
@@ -109,20 +111,22 @@ 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' ) {
             my $i;
             for ( $i = 0 ; $i < $totalDel ; $i++ ) {
                 MoveMemberToDeleted( $membersToDelete->[$i]->{'borrowernumber'} );
+                C4::VirtualShelves::HandleDelBorrower($membersToDelete->[$i]->{'borrowernumber'});
                 DelMember( $membersToDelete->[$i]->{'borrowernumber'} );
             }
         }
         else {    # delete completly.
             my $i;
             for ( $i = 0 ; $i < $totalDel ; $i++ ) {
-               DelMember($membersToDelete->[$i]->{'borrowernumber'});
+                C4::VirtualShelves::HandleDelBorrower($membersToDelete->[$i]->{'borrowernumber'});
+                DelMember($membersToDelete->[$i]->{'borrowernumber'});
             }
         }
         $template->param(