[Koha-patches] [PATCH] Fix calls to CalcFine, and make fines obey CircControl syspref (get homebranch withssue data).

Ryan Higgins rch at balrog.liblime.com
Tue Apr 8 00:47:48 CEST 2008


---
 C4/Overdues.pm            |   10 +++++-----
 misc/cronjobs/fines-ll.pl |   13 +++++--------
 2 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/C4/Overdues.pm b/C4/Overdues.pm
index 1e4fd69..7a9572c 100644
--- a/C4/Overdues.pm
+++ b/C4/Overdues.pm
@@ -119,13 +119,13 @@ sub Getoverdues {
     my $dbh = C4::Context->dbh;
     my $sth =  (C4::Context->preference('item-level_itypes')) ? 
 				$dbh->prepare(
-        			"SELECT issues.*,items.itype as itemtype FROM issues 
+        			"SELECT issues.*,items.itype as itemtype, items.homebranch FROM issues 
                 	 LEFT JOIN items USING (itemnumber)
                 	 WHERE date_due < now() 
                 	 ORDER BY borrowernumber " )
 				:
  				$dbh->prepare(
-                    "SELECT issues.*,biblioitems.itemtype,items.itype FROM issues 
+                    "SELECT issues.*,biblioitems.itemtype,items.itype, items.homebranch  FROM issues 
                      LEFT JOIN items USING (itemnumber)
                      LEFT JOIN biblioitems USING (biblioitemnumber)
                      WHERE date_due < now() 
@@ -225,7 +225,7 @@ sub CalcFine {
     my $countalldayclosed = $countspecialday + $countrepeatableday;
     my $daycount = $difference - $countalldayclosed;
     # get issuingrules (fines part will be used)
-    my $data = C4::Circulation::GetIssuingRule($item->{'itemtype'},$bortype,$branchcode);
+    my $data = C4::Circulation::GetIssuingRule($bortype, $item->{'itemtype'},$branchcode);
     my $daycounttotal = $daycount - $data->{'firstremind'};
     if ($data->{'chargeperiod'} >0) { # if there is a rule for this bortype
         if ($data->{'firstremind'} < $daycount)
@@ -237,7 +237,7 @@ sub CalcFine {
 		#  
     }
     
-#    warn "Calc Fine: " . join(", ", ($item->{'itemnumber'}, $bortype, $difference , $data->{'fine'} . " * " . $daycount . " days = \$ " . $amount , "desc: $dues")) ;
+  #  warn "Calc Fine: " . join(", ", ($item->{'itemnumber'}, $bortype, $difference , $data->{'fine'} . " * " . $daycount . " days = \$ " . $amount , "desc: $dues")) ;
  return ( $amount, $data->{'chargename'}, $printout ,$daycounttotal ,$daycount );
 }
 
@@ -801,7 +801,7 @@ C<$level> contains the file level
  sub CreateItemAccountLine {
   my ($borrowernumber,$itemnumber,$date,$amount,$description,$accounttype,$amountoutstanding,$timestamp,$notify_id,$level)=@_;
   my $dbh = C4::Context->dbh;
-  my $nextaccntno = getnextacctno($borrowernumber);
+  my $nextaccntno = C4::Accounts::getnextacctno($borrowernumber);
    my $query= "INSERT into accountlines  
          (borrowernumber,accountno,itemnumber,date,amount,description,accounttype,amountoutstanding,timestamp,notify_id,notify_level)
           VALUES
diff --git a/misc/cronjobs/fines-ll.pl b/misc/cronjobs/fines-ll.pl
index ff964ad..a8d1fc4 100755
--- a/misc/cronjobs/fines-ll.pl
+++ b/misc/cronjobs/fines-ll.pl
@@ -38,7 +38,8 @@ use C4::Circulation;
 use C4::Overdues;
 use Date::Manip qw/Date_DaysSince1BC/;
 use C4::Biblio;
-
+#use Data::Dumper;
+#
 my $fldir = "/tmp";
 
 my $libname=C4::Context->preference('LibraryName');
@@ -78,7 +79,7 @@ for (my $i=0;$i<scalar(@$data);$i++){
   	$branchcode = $data->[$i]->{'homebranch'};
   } elsif ( C4::Context->preference('CircControl') eq 'PatronLibrary' ) {
   	$branchcode = $borrower->{'branchcode'};
-  } else {
+} else {
   	# CircControl must be PickupLibrary. (branchcode comes from issues table here).
 	$branchcode =  $data->[$i]->{'branchcode'};
   }
@@ -91,13 +92,9 @@ for (my $i=0;$i<scalar(@$data);$i++){
     my ($amount,$type,$printout,$daycounttotal,$daycount)=
   		CalcFine($data->[$i], $borrower->{'categorycode'}, $branchcode,
         		$difference, $datedue);
-
-
     my ($delays1,$delays2,$delays3)=GetOverdueDelays($borrower->{'categorycode'});
-    my $issuingrules=GetIssuingRule($data->[$i]->{'itemnumber'},$borrower->{'categorycode'},$branchcode);
-
-	UpdateFine($data->[$i]->{'itemnumber'},$data->[$i]->{'borrowernumber'},$amount,$type,$due);
- 
+    my $issuingrules=GetIssuingRule($borrower->{'categorycode'}, $data->[$i]->{'itemnumber'},$branchcode);
+	UpdateFine($data->[$i]->{'itemnumber'},$data->[$i]->{'borrowernumber'},$amount,$type,$due) if( $amount > 0 ) ;
  	if($delays1  and $delays2  and $delays3)  {
     
     	my $debarredstatus=CheckBorrowerDebarred($borrower->{'borrowernumber'});
-- 
1.5.4.2




More information about the Koha-patches mailing list