Fix calls to CalcFine, and make fines obey CircControl syspref (get homebranch withss...
authorRyan Higgins <rch@balrog.liblime.com>
Mon, 7 Apr 2008 22:47:48 +0000 (17:47 -0500)
committerJoshua Ferraro <jmf@liblime.com>
Tue, 8 Apr 2008 13:37:01 +0000 (08:37 -0500)
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
C4/Overdues.pm
misc/cronjobs/fines-ll.pl

index 1e4fd69..7a9572c 100644 (file)
@@ -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
index ff964ad..a8d1fc4 100755 (executable)
@@ -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'});