[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