diff --git a/C4/Circulation/Fines.pm b/C4/Circulation/Fines.pm
index 39f83cb..16ea1a7 100644
--- a/C4/Circulation/Fines.pm
+++ b/C4/Circulation/Fines.pm
@@ -83,19 +83,26 @@ sub CalcFine {
my $data=$sth->fetchrow_hashref;
$sth->finish;
my $amount=0;
- if ($difference >= $data->{'firstremind'}){
- if ($data->{'chargeperiod'} != 0){
- my $temp=$difference % $data->{'chargeperiod'};
- $difference=$difference - $temp;
- $amount=($difference / $data->{'chargeperiod'}) * $data->{'fine'};
- }
+ my $printout;
+ if ($difference == $data->{'firstremind'}){
+ $amount=$data->{'fine'};
+ $printout="First Notice";
+ }
+ my $second=$data->{'firstremind'}+$data->{'chargeperiod'};
+ if ($difference == $second){
+ $amount=$data->{'fine'}*2;
+ $printout="Second Notice";
+ }
+ if ($difference == $data->{'accountsent'}){
+ $amount=5;
+ $printout="Final Notice";
}
$dbh->disconnect;
- return($amount,$data->{'chargename'});
+ return($amount,$data->{'chargename'},$printout);
}
sub UpdateFine {
- my ($itemnum,$bornum,$amount,$type)=@_;
+ my ($itemnum,$bornum,$amount,$type,$due)=@_;
my $dbh=C4Connect;
my $query="Select * from accountlines where itemnumber=$itemnum and
borrowernumber=$bornum and (accounttype='FU' or accounttype='O' or
@@ -105,10 +112,10 @@ sub UpdateFine {
$sth->execute;
if (my $data=$sth->fetchrow_hashref){
- print "in accounts ...";
+# print "in accounts ...";
if ($data->{'amount'} != $amount){
- print "updating";
+# print "updating";
my $diff=$amount - $data->{'amount'};
my $out=$data->{'amountoutstanding'}+$diff;
my $query2="update accountlines set date=now(), amount=$amount,
@@ -119,7 +126,7 @@ sub UpdateFine {
$sth2->execute;
$sth2->finish;
} else {
- print "no update needed $data->{'amount'}"
+# print "no update needed $data->{'amount'}"
}
} else {
my $query2="select title from biblio,items where items.itemnumber=$itemnum
@@ -128,7 +135,7 @@ sub UpdateFine {
$sth4->execute;
my $title=$sth4->fetchrow_hashref;
$sth4->finish;
- print "not in account";
+ # print "not in account";
my $query2="Select max(accountno) from accountlines";
my $sth3=$dbh->prepare($query2);
$sth3->execute;
@@ -139,7 +146,7 @@ sub UpdateFine {
$query2="Insert into accountlines
(borrowernumber,itemnumber,date,amount,
description,accounttype,amountoutstanding,accountno) values
- ($bornum,$itemnum,now(),$amount,'$type $title->{'title'}','FU',
+ ($bornum,$itemnum,now(),$amount,'$type $title->{'title'} $due','FU',
$amount,$accountno[0])";
my $sth2=$dbh->prepare($query2);
$sth2->execute;
diff --git a/C4/Stats.pm b/C4/Stats.pm
index 6191444..a7e11be 100644
--- a/C4/Stats.pm
+++ b/C4/Stats.pm
@@ -169,15 +169,19 @@ sub TotalPaid {
sub getcharges{
my($borrowerno,$timestamp)=@_;
my $dbh=C4Connect;
+ my $timestamp2=$timestamp-1;
my $query="Select * from accountlines where borrowernumber=$borrowerno
- and timestamp => $timestamp and accounttype <> 'Pay'";
+ and timestamp < '$timestamp' and accounttype <> 'Pay'";
my $sth=$dbh->prepare($query);
+# print $query,"
";
$sth->execute;
my $i=0;
my @results;
while (my $data=$sth->fetchrow_hashref){
- $results[$i]=$data;
- $i++;
+ if ($data->{'timestamp'} == $timestamp){
+ $results[$i]=$data;
+ $i++;
+ }
}
$dbh->disconnect;
return(@results);
diff --git a/fines.pl b/fines.pl
index 1da25e7..5c678ee 100755
--- a/fines.pl
+++ b/fines.pl
@@ -13,14 +13,15 @@ my $count2=0;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time);
$mon++;
$year=$year+1900;
-#my $date=Date_DaysSince999($mon,$mday,$year);
-my $date=Date_DaysSince999(1,19,2000);
+my $date=Date_DaysSince999($mon,$mday,$year);
+#my $date=Date_DaysSince999(1,23,2000);
my $bornum;
my $borrower;
my $max=5;
for (my $i=0;$i<$count;$i++){
my @dates=split('-',$data->[$i]->{'date_due'});
my $date2=Date_DaysSince999($dates[1],$dates[2],$dates[0]);
+ my $due="$dates[2]/$dates[1]/$dates[0]";
if ($date2 <= $date){
$count2++;
my $difference=$date-$date2;
@@ -30,13 +31,17 @@ for (my $i=0;$i<$count;$i++){
}
- my ($amount,$type)=CalcFine($data->[$i]->{'itemnumber'},$borrower->{'categorycode'},$difference);
+ my ($amount,$type,$printout)=CalcFine($data->[$i]->{'itemnumber'},$borrower->{'categorycode'},$difference);
if ($amount > $max){
$amount=$max;
}
if ($amount > 0){
- UpdateFine($data->[$i]->{'itemnumber'},$bornum,$amount,$type);
- print "$borrower->{'firstname'} $borrower->{'surname'} $data->[$i]->{'date_due'} $type $difference\n";
+ UpdateFine($data->[$i]->{'itemnumber'},$bornum,$amount,$type,$due);
+ if ($amount ==5){
+# marklost();
+ }
+
+ print "$printout\t$bornum\t$borrower->{'firstname'}\t$borrower->{'surname'}\t$data->[$i]->{'date_due'}\t$type\t$difference\t$borrower->{'emailaddress'}\t$borrower->{'phone'}\t$borrower->{'streetaddress'}\t$borrower->{'city'}\n";
} else {
# print "0 fine\n";
}
diff --git a/stats.pl b/stats.pl
index 03798f6..485edbf 100755
--- a/stats.pl
+++ b/stats.pl
@@ -22,14 +22,17 @@ if ($time eq 'today'){
$date=ParseDate('today');
$date2=ParseDate('tomorrow');
}
-
+if ($time eq 'daybefore'){
+ $date=ParseDate('2 days ago');
+ $date2=ParseDate('yesterday');
+}
$date=UnixDate($date,'%Y-%m-%d');
$date2=UnixDate($date2,'%Y-%m-%d');
my @payments=TotalPaid($date);
my $count=@payments;
my $total=0;
print mktablehdr;
-print mktablerow(5,'white','Name','Type','Date/time','Amount');
+print mktablerow(5,'white','Name','Type','Date/time','Amount', 'Branch');
for (my $i=0;$i<$count;$i++){
my $hour=substr($payments[$i]{'timestamp'},8,2);
my $min=substr($payments[$i]{'timestamp'},10,2);
@@ -37,10 +40,17 @@ for (my $i=0;$i<$count;$i++){
my $time="$hour:$min:$sec";
$payments[$i]{'amount'}*=-1;
$total+=$payments[$i]{'amount'};
- print mktablerow(5,'white',"$payments[$i]{'firstname'} $payments[$i]{'surname'}"
- ,$payments[$i]{'accounttype'},"$payments[$i]{'date'} $time",$payments[$i]{'amount'},
- $payments[$i]{'itemnumber'});
my @charges=getcharges($payments[$i]{'borrowernumber'},$payments[$i]{'timestamp'});
+ my $count=@charges;
+ for (my $i2=0;$i2<$count;$i2++){
+ print mktablerow(6,'red',$charges[$i2]->{'description'},$charges[$i2]->{'accounttype'},
+ '',
+ $charges[$i2]->{'amount'},$charges[$i2]->{'amountoutstanding'});
+ }
+
+ print mktablerow(6,'white',"$payments[$i]{'firstname'} $payments[$i]{'surname'}"
+ ,$payments[$i]{'accounttype'},"$payments[$i]{'date'} $time",$payments[$i]{'amount'}
+ ,$payments[$i]{'branchcode'});
}
print mktableft;
@@ -55,6 +65,6 @@ print "
Issues Shannon: $issues";
my $returns=Count('return','C',$date,$date2);
print "
Returns Levin: $returns"; $returns=Count('return','F',$date,$date2); -print "
Returns Foxton: $returns";
+print "
Returns Foxton: $returns";
$returns=Count('return','S',$date,$date2);
-print "
Returns Shannon: $returns";
+print "
Returns Shannon: $returns";