diff --git a/C4/Circulation/Fines.pm b/C4/Circulation/Fines.pm index dcbfa41..d746ff4 100644 --- a/C4/Circulation/Fines.pm +++ b/C4/Circulation/Fines.pm @@ -84,9 +84,11 @@ categoryitem.categorycode='$bortype'"; $sth->finish; my $amount=0; if ($difference >= $data->{'startcharge'}){ - my $temp=$difference % $data->{'chargeperiod'}; - $difference=$difference - $temp; - $amount=($difference / $data->{'chargeperiod'}) * $data->{'fine'}; + if ($data->{'chargeperiod'} != 0){ + my $temp=$difference % $data->{'chargeperiod'}; + $difference=$difference - $temp; + $amount=($difference / $data->{'chargeperiod'}) * $data->{'fine'}; + } } $dbh->disconnect; return($amount); diff --git a/charges.pl b/charges.pl index 8ae4976..6cf06b2 100755 --- a/charges.pl +++ b/charges.pl @@ -13,18 +13,48 @@ print $input->header; my $type=$input->param('type'); print startpage(); print startmenu('issue'); - +print "Each box needs to be filled in with fine,time to start charging,charging cycle
+eg 1,7,7 = $1 fine, after 7 days, every 7 days"; my $dbh=C4Connect; -my $query="Select description from categories"; +my $query="Select description,categorycode from categories"; my $sth=$dbh->prepare($query); $sth->execute; -print ""; +print mktablehdr; +my @trow; +my @trow3; +my $i=0; +while (my $data=$sth->fetchrow_hashref){ + $trow[$i]=$data->{'description'}; + $trow3[$i]=$data->{'categorycode'}; + $i++; +} +$sth->finish; +print mktablerow(10,'white','',@trow); +print ""; +$query="Select description,itemtype from itemtypes"; +$sth=$dbh->prepare($query); +$sth->execute; +$i=0; while (my $data=$sth->fetchrow_hashref){ - print ""; + my @trow2; + for ($i=0;$i<9;$i++){ + $query="select * from categoryitem where categorycode='$trow3[$i]' and itemtype='$data->{'itemtype'}'"; + my $sth2=$dbh->prepare($query); + $sth2->execute; + my $dat=$sth2->fetchrow_hashref; + $sth2->finish; + my $fine=$dat->{'fine'}+0; + $trow2[$i]="{'itemtype'}\" value=\"$fine,$dat->{'startcharge'},$dat->{'chargeperiod'}\" size=6>"; + } + print mktablerow(11,'white',$data->{'description'},@trow2); } -print ""; + +$sth->finish; + + print "
 
$data->{'description'}
"; +print ""; print endmenu('issue'); print endpage(); diff --git a/fines.pl b/fines.pl index 0a4a125..44b2d8f 100755 --- a/fines.pl +++ b/fines.pl @@ -30,8 +30,12 @@ for (my $i=0;$i<$count;$i++){ if ($amount > $max){ $amount=25; } - UpdateFine($data->[$i]->{'itemnumber'},$bornum,$amount); - print "$amount\n"; + if ($amount > 0){ + UpdateFine($data->[$i]->{'itemnumber'},$bornum,$amount); + print "$amount\n"; + } else { + print "0 fine\n"; + } } } }