Script to generate overdue fines.
[koha.git] / misc / fines2.pl
1 #!/usr/bin/perl
2
3 #script to keep total of number of issues;
4
5
6 use C4::Circulation::Fines;
7 use Date::Manip;
8
9 open (FILE,'>/tmp/fines') || die;
10 my ($count,$data)=Getoverdues();
11 #print $count;
12 my $count2=0;
13 #$count=1000;
14 my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time);
15 $mon++;
16 $year=$year+1900;
17 my $date=Date_DaysSince1BC($mon,$mday,$year);
18 #my $date=Date_DaysSince1BC(12,4,2000);
19 my $bornum;
20
21 my $total=0;
22 my $max=5;
23 #my $bornum2=$data->[0]->{'borrowernumber'};
24
25 my $i2=1;
26 for (my $i=0;$i<$count;$i++){
27   my @dates=split('-',$data->[$i]->{'date_due'});
28   my $date2=Date_DaysSince1BC($dates[1],$dates[2],$dates[0]);    
29   my $due="$dates[2]/$dates[1]/$dates[0]";
30   my $borrower=BorType($data->[$i]->{'borrowernumber'});
31   if ($date2 <= $date){
32     $count2++;
33     my $difference=$date-$date2;
34     my ($amount,$type,$printout)=CalcFine($data->[$i]->{'itemnumber'},$borrower->{'categorycode'},$difference);      
35     if ($amount > $max){
36       $amount=$max;
37     }
38     if ($amount > 0){
39       UpdateFine($data->[$i]->{'itemnumber'},$data->[$i]->{'borrowernumber'},$amount,$type,$due);
40       if ($amount ==5){
41 #             marklost();
42       }
43       print "$printout\t$borrower->{'cardnumber'}\t$borrower->{'categorycode'}\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'}\t$amount\n";
44     } else {
45 #      print "$borrower->{'cardnumber'}\t$borrower->{'categorycode'}\t0 fine\n";
46     }
47
48   }
49 }
50 close FILE;