This add a check of borrower expiry date, and don't delete the borrower if he's 
still active.
---
 C4/Members.pm           |   10 ++++++----
 tools/cleanborrowers.pl |    4 ++--
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/C4/Members.pm b/C4/Members.pm
index 8cc32bd..d44d55f 100644
--- a/C4/Members.pm
+++ b/C4/Members.pm
@@ -1904,9 +1904,8 @@ this function get all borrowers who haven't borrowed 
since the date given on inp
 =cut
 
 sub GetBorrowersWhoHaveNotBorrowedSince {
-### TODO : It could be dangerous to delete Borrowers who have just been 
entered and who have not yet borrowed any book. May be good to add a dateexpiry 
or dateenrolled filter.      
-       
-                my $filterdate = 
shift||POSIX::strftime("%Y-%m-%d",localtime());
+    my $filterdate = shift||POSIX::strftime("%Y-%m-%d",localtime());
+    my $filterexpiry = shift;
     my $filterbranch = shift || 
                         ((C4::Context->preference('IndependantBranches') 
                              && C4::Context->userenv 
@@ -1926,7 +1925,10 @@ sub GetBorrowersWhoHaveNotBorrowedSince {
     if ($filterbranch && $filterbranch ne ""){ 
         $query.=" AND borrowers.branchcode= ?";
         push @query_params,$filterbranch;
-    }    
+    }
+    if($filterexpiry){
+        $query .= " AND dateexpiry < NOW() ";
+    }
     $query.=" GROUP BY borrowers.borrowernumber";
     if ($filterdate){ 
         $query.=" HAVING latestissue <? OR latestissue IS NULL";
diff --git a/tools/cleanborrowers.pl b/tools/cleanborrowers.pl
index 908ba62..1a6c9bc 100755
--- a/tools/cleanborrowers.pl
+++ b/tools/cleanborrowers.pl
@@ -71,7 +71,7 @@ if ( $params->{'step2'} ) {
     my $totalDel;
     my $membersToDelete;
     if ($checkboxes{borrower}) {
-        $membersToDelete = GetBorrowersWhoHaveNotBorrowedSince($filterdate1);
+        $membersToDelete = GetBorrowersWhoHaveNotBorrowedSince($filterdate1, 
1);
         $totalDel = scalar @$membersToDelete;
             
     }
@@ -109,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' ) {
-- 
1.6.0.4

_______________________________________________
Koha-patches mailing list
[email protected]
http://lists.koha.org/mailman/listinfo/koha-patches

Reply via email to