Browse Source

Fix calls to CalcFine, and make fines obey CircControl syspref (get homebranch withssue data).

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
3.0.x
Ryan Higgins 16 years ago
committed by Joshua Ferraro
parent
commit
2eed36a08e
  1. 10
      C4/Overdues.pm
  2. 13
      misc/cronjobs/fines-ll.pl

10
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

13
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'});

Loading…
Cancel
Save