Initial revision
[koha.git] / stats.pl
1 #!/usr/bin/perl
2
3 #written 14/1/2000
4 #script to display reports
5
6 use C4::Stats;
7 use strict;
8 use Date::Manip;
9 use CGI;
10 use C4::Output;
11
12 my $input=new CGI;
13 my $time=$input->param('time');
14 print $input->header;
15
16 print startpage;
17 print startmenu('report');
18 print center;
19
20 my $date;
21 my $date2;
22 if ($time eq 'yesterday'){
23   $date=ParseDate('yesterday');
24   $date2=ParseDate('today');
25 }
26 if ($time eq 'today'){
27   $date=ParseDate('today');
28   $date2=ParseDate('tomorrow');
29 }
30 if ($time eq 'daybefore'){
31   $date=ParseDate('2 days ago');
32   $date2=ParseDate('yesterday');
33 }
34 if ($time=~ /\//){
35   $date=ParseDate($time);
36   $date2=ParseDateDelta('+ 1 day');
37   $date2=DateCalc($date,$date2);
38 }
39 $date=UnixDate($date,'%Y-%m-%d');
40 $date2=UnixDate($date2,'%Y-%m-%d');
41 my @payments=TotalPaid($date);
42 my $count=@payments;
43 my $total=0;
44 my %levin;
45 my %foxton;
46 my %shannon;
47 my $oldtime;
48 #my $totalc=0;
49 #my $totalcf=0;
50 print mktablehdr;
51 print mktablerow(5,'#99cc33',bold('Name'),bold('Type'),bold('Date/time'),bold('Amount'), bold('Branch'),'/images/background-mem.gif');
52 for (my $i=0;$i<$count;$i++){
53   my $hour=substr($payments[$i]{'timestamp'},8,2);
54   my  $min=substr($payments[$i]{'timestamp'},10,2);
55   my $sec=substr($payments[$i]{'timestamp'},12,2);
56   my $time="$hour:$min:$sec";
57   $payments[$i]{'amount'}*=-1;
58   $total+=$payments[$i]{'amount'};
59   my @charges=getcharges($payments[$i]{'borrowernumber'},$payments[$i]{'timestamp'});
60   my $count=@charges;
61   my $temptotalf=0;
62   my $temptotalr=0;
63   my $temptotalres=0;
64   my $temptotalren=0;
65   for (my $i2=0;$i2<$count;$i2++){
66     if ($charges[$i2]->{'amountoutstanding'} != $oldtime){
67     print mktablerow(6,'red',$charges[$i2]->{'description'},$charges[$i2]->{'accounttype'},'',
68     $charges[$i2]->{'amount'},$charges[$i2]->{'amountoutstanding'});
69     if ($charges[$i2]->{'accounttype'} eq 'Rent'){
70       $temptotalr+=$charges[$i2]->{'amount'}-$charges[$i2]->{'amountoutstanding'};
71     }
72     if ($charges[$i2]->{'accounttype'} eq 'F' || $charges[$i2]->{'accounttype'} eq 'FU'){
73       $temptotalf+=$charges[$i2]->{'amount'}-$charges[$i2]->{'amountoutstanding'};
74     }
75     if ($charges[$i2]->{'accounttype'} eq 'Res'){
76       $temptotalres+=$charges[$i2]->{'amount'}-$charges[$i2]->{'amountoutstanding'};
77     }
78     if ($charges[$i2]->{'accounttype'} eq 'R'){
79       $temptotalren+=$charges[$i2]->{'amount'}-$charges[$i2]->{'amountoutstanding'};
80     }
81     }
82   }                 
83   my $time2="$payments[$i]{'date'} $time";
84   my $branch=Getpaidbranch($time2);
85   if ($branch eq 'C'){
86     $levin{'total'}+=$payments[$i]{'amount'};
87     $levin{'totalr'}+=$temptotalr;
88     $levin{'totalres'}+=$temptotalres;
89     $levin{'totalf'}+=$temptotalf;
90     $levin{'totalren'}+=$temptotalren;
91   }
92   if ($branch eq 'F'){
93     $foxton{'total'}+=$payments[$i]{'amount'};
94     $foxton{'totalr'}+=$temptotalr;
95     $foxton{'totalres'}+=$temptotalres;
96     $foxton{'totalf'}+=$temptotalf;
97     $foxton{'totalren'}+=$temptotalren;
98   }
99   if ($branch eq 'S'){
100     $shannon{'total'}+=$payments[$i]{'amount'};
101     $shannon{'totalr'}+=$temptotalr;
102     $shannon{'totalres'}+=$temptotalres;
103     $shannon{'totalf'}+=$temptotalf;
104     $shannon{'totalren'}+=$temptotalren;
105   }
106   print mktablerow(6,'white',"$payments[$i]{'firstname'} <b>$payments[$i]{'surname'}</b>"
107   ,$payments[$i]{'accounttype'},"$payments[$i]{'date'} $time",$payments[$i]{'amount'}
108   ,$branch);
109   $oldtime=$payments[$i]{'timestamp'};
110 }
111 print mktableft;
112 print endcenter;
113 print "<p><b>$total</b>";
114 #print "<b
115 print mktablehdr;
116 $levin{'issues'}=Count('issue','C',$date,$date2);
117 $foxton{'issues'}=Count('issue','F',$date,$date2);
118 $shannon{'issues'}=Count('issue','S',$date,$date2);
119 $levin{'returns'}=Count('return','C',$date,$date2);
120 $foxton{'returns'}=Count('return','F',$date,$date2);
121 $shannon{'returns'}=Count('return','S',$date,$date2);
122 print mktablerow(9,'white',"<b>Levin</b>","Fines $levin{'totalf'}","Rental Charges $levin{'totalr'}",
123 "Reserve Charges $levin{'totalres'}","Renewal Charges $levin{'totalren'}","Total $levin{'total'}",
124 "Issues $levin{'issues'}","Renewals $levin{'renewals'}","Returns $levin{'returns'}");
125 print mktablerow(9,'white',"<b>foxton</b>","Fines $foxton{'totalf'}","Rental Charges $foxton{'totalr'}","Reserve Charges $foxton{'totalres'}","Renewal Charges $foxton{'totalren'}","Total $foxton{'total'}",
126 "Issues $foxton{'issues'}","Renewals $foxton{'renewals'}","Returns $foxton{'returns'}");
127 print mktablerow(9,'white',"<b>shannon</b>","Fines $shannon{'totalf'}","Rental Charges $shannon{'totalr'}","Reserve Charges $shannon{'totalres'}","Renewal Charges $shannon{'totalren'}","Total $shannon{'total'}",
128 "Issues $shannon{'issues'}","Renewals $shannon{'renewals'}","Returns $shannon{'returns'}");
129 print mktableft;
130
131
132 print endmenu('report');
133 print endpage;