[Koha-patches] [PATCH] (bug #3667) fix borrowers cleanup

Nahuel ANGELINETTI nahuel.angelinetti at biblibre.com
Fri Sep 25 16:33:26 CEST 2009


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




More information about the Koha-patches mailing list