[Koha-cvs] koha C4/Circulation/Fines.pm misc/fines.pl [rel_3_0]

Bruno Toumi btoumi at ouestprovence.fr
Tue Oct 24 10:46:26 CEST 2006


CVSROOT:	/sources/koha
Module name:	koha
Branch:		rel_3_0
Changes by:	Bruno Toumi <btoumi>	06/10/24 08:46:26

Modified files:
	C4/Circulation : Fines.pm 
	misc           : fines.pl 

Log message:
	add function and test to change satus of borrowers( debarred or not)
	add link with overdurules and field debarred

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/C4/Circulation/Fines.pm?cvsroot=koha&only_with_tag=rel_3_0&r1=1.14.2.2&r2=1.14.2.3
http://cvs.savannah.gnu.org/viewcvs/koha/misc/fines.pl?cvsroot=koha&only_with_tag=rel_3_0&r1=1.1.2.3&r2=1.1.2.4

Patches:
Index: C4/Circulation/Fines.pm
===================================================================
RCS file: /sources/koha/koha/C4/Circulation/Fines.pm,v
retrieving revision 1.14.2.2
retrieving revision 1.14.2.3
diff -u -b -r1.14.2.2 -r1.14.2.3
--- C4/Circulation/Fines.pm	12 Oct 2006 10:27:55 -0000	1.14.2.2
+++ C4/Circulation/Fines.pm	24 Oct 2006 08:46:26 -0000	1.14.2.3
@@ -1,6 +1,6 @@
 package C4::Circulation::Fines;
 
-# $Id: Fines.pm,v 1.14.2.2 2006/10/12 10:27:55 btoumi Exp $
+# $Id: Fines.pm,v 1.14.2.3 2006/10/24 08:46:26 btoumi Exp $
 
 # Copyright 2000-2002 Katipo Communications
 #
@@ -57,10 +57,12 @@
 		&CheckAccountLineLevelInfo
 		&CheckAccountLineItemInfo
 		&CheckExistantNotifyid
+		&CheckBorrowerDebarred
 		&GetIssuesIteminfo
 		&GetNextIdNotify
 		&GetMaxAccountno 
 		&GetOverdueDelays 
+		&GetOverduerules
 		&GetFine
 		&GetItems  
 		&GetNotifyId
@@ -69,6 +71,7 @@
 		&AmountNotify
 		&UpdateAccountLines 
 		&UpdateFine
+		&UpdateBorrowerDebarred
 		&CreateItemAccountLine
 		&ReplacementCost
 		&ReplacementCost2);
@@ -906,6 +909,92 @@
     	return($exist);
 }
 
+=item GetOverduerules
+
+($overduerules) = &GetOverduerules($categorycode);
+
+Returns the value of borrowers (debarred or not) with notify level
+
+C<$overduerules> return value of debbraed field in overduerules table
+
+C<$category> contains the borrower categorycode
+
+C<$notify_level> contains the notify level
+=cut
+
+
+sub GetOverduerules{
+	my($category,$notify_level) = @_;
+	my $dbh = C4::Context->dbh;
+    	my $query=qq|SELECT debarred$notify_level 
+		     FROM overduerules 
+		     WHERE categorycode=?|; 
+	my $sth=$dbh->prepare($query);
+    	$sth->execute($category);
+    	my ($overduerules)=$sth->fetchrow;
+    	$sth->finish;
+    	return($overduerules);
+}
+
+
+=item CheckBorrowerDebarred
+
+($debarredstatus) = &CheckBorrowerDebarred($borrowernumber);
+
+Check if the borrowers is already debarred
+
+C<$debarredstatus> return 0 for not debarred and return 1 for debarred
+
+C<$borrowernumber> contains the borrower number
+
+=cut
+
+
+sub CheckBorrowerDebarred{
+	my($borrowernumber) = @_;
+	my $dbh = C4::Context->dbh;
+    	my $query=qq|SELECT debarred
+	 	     FROM borrowers 
+		     WHERE borrowernumber=?
+		    |;
+	my $sth=$dbh->prepare($query);
+    	$sth->execute($borrowernumber);
+    	my ($debarredstatus)=$sth->fetchrow;
+    	$sth->finish;
+    	if ($debarredstatus eq '1'){
+	return(1);}
+	else{
+	return(0);
+	}
+}
+
+
+
+=item UpdateBorrowerDebarred
+
+($borrowerstatut) = &UpdateBorrowerDebarred($borrowernumber);
+
+update status of borrowers in borrowers table (field debarred)
+
+C<$borrowernumber> borrower number
+
+=cut
+sub UpdateBorrowerDebarred{
+	my($borrowernumber) = @_;
+	my $dbh = C4::Context->dbh;
+    	my $query=qq|UPDATE borrowers 
+		     SET debarred='1' 
+                     WHERE borrowernumber=?
+		    |;
+	my $sth=$dbh->prepare($query);
+    	$sth->execute($borrowernumber);
+    	$sth->finish;
+    	return 1;
+}
+
+
+
+
 =item CheckExistantNotifyid
 
   ($exist) = &CheckExistantNotifyid($borrowernumber,$itemnumber,$accounttype,$notify_id);

Index: misc/fines.pl
===================================================================
RCS file: /sources/koha/koha/misc/Attic/fines.pl,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -b -r1.1.2.3 -r1.1.2.4
--- misc/fines.pl	20 Oct 2006 15:17:27 -0000	1.1.2.3
+++ misc/fines.pl	24 Oct 2006 08:46:26 -0000	1.1.2.4
@@ -25,7 +25,7 @@
 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
 # Suite 330, Boston, MA  02111-1307 USA
 
-# $Id: fines.pl,v 1.1.2.3 2006/10/20 15:17:27 btoumi Exp $
+# $Id: fines.pl,v 1.1.2.4 2006/10/24 08:46:26 btoumi Exp $
 
 use C4::Context;
 use C4::Search;
@@ -80,11 +80,15 @@
 	my $issuingrules=GetIssuingRules($data->[$i]->{'itemnumber'},$borrower->{'categorycode'});
  
 if($delays1  and $delays2  and $delays3)  { 	
+	
+	my $debarredstatus=CheckBorrowerDebarred($borrower->{'borrowernumber'});
+ 		
 	if (($issuingrules->{'fine'} > 0) || ($issuingrules->{'fine'} ne '' )){
 
 		#DELAYS 1##########################################
 		if ($amount > 0 && $daycount >= $delays1 && $daycount < $delays2){
-		
+		my $debarred1=GetOverduerules($borrower->{'categorycode'},1);
+		(UpdateBorrowerDebarred($borrower->{'borrowernumber'}))if(($debarred1 eq '1' ) and ($debarredstatus eq '0'));
 		UpdateFine($data->[$i]->{'itemnumber'},$data->[$i]->{'borrowernumber'},$amount,$type,$due);
 		my $getnotifyid=CheckExistantNotifyid($borrower->{'borrowernumber'},$datedue);
 		
@@ -112,8 +116,9 @@
 		
 		#DELAYS 2#################################
 		
-		if ($daycount >= $delays2 && $daycount <= $delays3){
-		
+		if ($daycount >= $delays2 && $daycount < $delays3){
+		my $debarred2=GetOverduerules($borrower->{'categorycode'},2);
+		(UpdateBorrowerDebarred($borrower->{'borrowernumber'}))if(($debarred2 eq '1' ) and ($debarredstatus eq '0'));
 		my $update=CheckAccountLineLevelInfo($borrower->{'borrowernumber'},$data->[$i]->{'itemnumber'},2);
 		if ($update eq '0'){
 		UpdateAccountLines(undef,2,$borrower->{'borrowernumber'},$data->[$i]->{'itemnumber'});
@@ -123,7 +128,8 @@
 		
 		#DELAYS 3###################################
 		if ($daycount >= $delays3  ){
-			
+			my $debarred3=GetOverduerules($borrower->{'categorycode'},3);
+			(UpdateBorrowerDebarred($borrower->{'borrowernumber'}))if(($debarred3 eq '1' ) and ($debarredstatus eq '0'));
 			my $update=CheckAccountLineLevelInfo($borrower->{'borrowernumber'},$data->[$i]->{'itemnumber'},3);
 			if ($update eq '0'){
 					UpdateAccountLines(undef,3,$borrower->{'borrowernumber'},$data->[$i]->{'itemnumber'}); 





More information about the Koha-cvs mailing list