Bug Fixes

This commit is contained in:
chris 2000-01-24 20:47:49 +00:00
parent ea7bcf8891
commit 4b4afda024
4 changed files with 54 additions and 28 deletions

View file

@ -83,19 +83,26 @@ sub CalcFine {
my $data=$sth->fetchrow_hashref; my $data=$sth->fetchrow_hashref;
$sth->finish; $sth->finish;
my $amount=0; my $amount=0;
if ($difference >= $data->{'firstremind'}){ my $printout;
if ($data->{'chargeperiod'} != 0){ if ($difference == $data->{'firstremind'}){
my $temp=$difference % $data->{'chargeperiod'}; $amount=$data->{'fine'};
$difference=$difference - $temp; $printout="First Notice";
$amount=($difference / $data->{'chargeperiod'}) * $data->{'fine'}; }
} 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; $dbh->disconnect;
return($amount,$data->{'chargename'}); return($amount,$data->{'chargename'},$printout);
} }
sub UpdateFine { sub UpdateFine {
my ($itemnum,$bornum,$amount,$type)=@_; my ($itemnum,$bornum,$amount,$type,$due)=@_;
my $dbh=C4Connect; my $dbh=C4Connect;
my $query="Select * from accountlines where itemnumber=$itemnum and my $query="Select * from accountlines where itemnumber=$itemnum and
borrowernumber=$bornum and (accounttype='FU' or accounttype='O' or borrowernumber=$bornum and (accounttype='FU' or accounttype='O' or
@ -105,10 +112,10 @@ sub UpdateFine {
$sth->execute; $sth->execute;
if (my $data=$sth->fetchrow_hashref){ if (my $data=$sth->fetchrow_hashref){
print "in accounts ..."; # print "in accounts ...";
if ($data->{'amount'} != $amount){ if ($data->{'amount'} != $amount){
print "updating"; # print "updating";
my $diff=$amount - $data->{'amount'}; my $diff=$amount - $data->{'amount'};
my $out=$data->{'amountoutstanding'}+$diff; my $out=$data->{'amountoutstanding'}+$diff;
my $query2="update accountlines set date=now(), amount=$amount, my $query2="update accountlines set date=now(), amount=$amount,
@ -119,7 +126,7 @@ sub UpdateFine {
$sth2->execute; $sth2->execute;
$sth2->finish; $sth2->finish;
} else { } else {
print "no update needed $data->{'amount'}" # print "no update needed $data->{'amount'}"
} }
} else { } else {
my $query2="select title from biblio,items where items.itemnumber=$itemnum my $query2="select title from biblio,items where items.itemnumber=$itemnum
@ -128,7 +135,7 @@ sub UpdateFine {
$sth4->execute; $sth4->execute;
my $title=$sth4->fetchrow_hashref; my $title=$sth4->fetchrow_hashref;
$sth4->finish; $sth4->finish;
print "not in account"; # print "not in account";
my $query2="Select max(accountno) from accountlines"; my $query2="Select max(accountno) from accountlines";
my $sth3=$dbh->prepare($query2); my $sth3=$dbh->prepare($query2);
$sth3->execute; $sth3->execute;
@ -139,7 +146,7 @@ sub UpdateFine {
$query2="Insert into accountlines $query2="Insert into accountlines
(borrowernumber,itemnumber,date,amount, (borrowernumber,itemnumber,date,amount,
description,accounttype,amountoutstanding,accountno) values 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])"; $amount,$accountno[0])";
my $sth2=$dbh->prepare($query2); my $sth2=$dbh->prepare($query2);
$sth2->execute; $sth2->execute;

View file

@ -169,15 +169,19 @@ sub TotalPaid {
sub getcharges{ sub getcharges{
my($borrowerno,$timestamp)=@_; my($borrowerno,$timestamp)=@_;
my $dbh=C4Connect; my $dbh=C4Connect;
my $timestamp2=$timestamp-1;
my $query="Select * from accountlines where borrowernumber=$borrowerno 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); my $sth=$dbh->prepare($query);
# print $query,"<br>";
$sth->execute; $sth->execute;
my $i=0; my $i=0;
my @results; my @results;
while (my $data=$sth->fetchrow_hashref){ while (my $data=$sth->fetchrow_hashref){
$results[$i]=$data; if ($data->{'timestamp'} == $timestamp){
$i++; $results[$i]=$data;
$i++;
}
} }
$dbh->disconnect; $dbh->disconnect;
return(@results); return(@results);

View file

@ -13,14 +13,15 @@ my $count2=0;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time); my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time);
$mon++; $mon++;
$year=$year+1900; $year=$year+1900;
#my $date=Date_DaysSince999($mon,$mday,$year); my $date=Date_DaysSince999($mon,$mday,$year);
my $date=Date_DaysSince999(1,19,2000); #my $date=Date_DaysSince999(1,23,2000);
my $bornum; my $bornum;
my $borrower; my $borrower;
my $max=5; my $max=5;
for (my $i=0;$i<$count;$i++){ for (my $i=0;$i<$count;$i++){
my @dates=split('-',$data->[$i]->{'date_due'}); my @dates=split('-',$data->[$i]->{'date_due'});
my $date2=Date_DaysSince999($dates[1],$dates[2],$dates[0]); my $date2=Date_DaysSince999($dates[1],$dates[2],$dates[0]);
my $due="$dates[2]/$dates[1]/$dates[0]";
if ($date2 <= $date){ if ($date2 <= $date){
$count2++; $count2++;
my $difference=$date-$date2; 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){ if ($amount > $max){
$amount=$max; $amount=$max;
} }
if ($amount > 0){ if ($amount > 0){
UpdateFine($data->[$i]->{'itemnumber'},$bornum,$amount,$type); UpdateFine($data->[$i]->{'itemnumber'},$bornum,$amount,$type,$due);
print "$borrower->{'firstname'} $borrower->{'surname'} $data->[$i]->{'date_due'} $type $difference\n"; 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 { } else {
# print "0 fine\n"; # print "0 fine\n";
} }

View file

@ -22,14 +22,17 @@ if ($time eq 'today'){
$date=ParseDate('today'); $date=ParseDate('today');
$date2=ParseDate('tomorrow'); $date2=ParseDate('tomorrow');
} }
if ($time eq 'daybefore'){
$date=ParseDate('2 days ago');
$date2=ParseDate('yesterday');
}
$date=UnixDate($date,'%Y-%m-%d'); $date=UnixDate($date,'%Y-%m-%d');
$date2=UnixDate($date2,'%Y-%m-%d'); $date2=UnixDate($date2,'%Y-%m-%d');
my @payments=TotalPaid($date); my @payments=TotalPaid($date);
my $count=@payments; my $count=@payments;
my $total=0; my $total=0;
print mktablehdr; 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++){ for (my $i=0;$i<$count;$i++){
my $hour=substr($payments[$i]{'timestamp'},8,2); my $hour=substr($payments[$i]{'timestamp'},8,2);
my $min=substr($payments[$i]{'timestamp'},10,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"; my $time="$hour:$min:$sec";
$payments[$i]{'amount'}*=-1; $payments[$i]{'amount'}*=-1;
$total+=$payments[$i]{'amount'}; $total+=$payments[$i]{'amount'};
print mktablerow(5,'white',"$payments[$i]{'firstname'} <b>$payments[$i]{'surname'}</b>"
,$payments[$i]{'accounttype'},"$payments[$i]{'date'} $time",$payments[$i]{'amount'},
$payments[$i]{'itemnumber'});
my @charges=getcharges($payments[$i]{'borrowernumber'},$payments[$i]{'timestamp'}); 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'} <b>$payments[$i]{'surname'}</b>"
,$payments[$i]{'accounttype'},"$payments[$i]{'date'} $time",$payments[$i]{'amount'}
,$payments[$i]{'branchcode'});
} }
print mktableft; print mktableft;
@ -55,6 +65,6 @@ print "<br>Issues Shannon: $issues";
my $returns=Count('return','C',$date,$date2); my $returns=Count('return','C',$date,$date2);
print "<p>Returns Levin: $returns"; print "<p>Returns Levin: $returns";
$returns=Count('return','F',$date,$date2); $returns=Count('return','F',$date,$date2);
print "<p>Returns Foxton: $returns"; print "<br>Returns Foxton: $returns";
$returns=Count('return','S',$date,$date2); $returns=Count('return','S',$date,$date2);
print "<p>Returns Shannon: $returns"; print "<br>Returns Shannon: $returns";