Added code to allow searches to be used by catalogue maintenance
[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 $totalw=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   if ($payments[$i]{'accounttype'} ne 'W'){
58     $payments[$i]{'amount'}*=-1;
59       $total+=$payments[$i]{'amount'};
60   }
61
62   my @charges=getcharges($payments[$i]{'borrowernumber'},$payments[$i]{'timestamp'});
63   my $count=@charges;
64   my $temptotalf=0;
65   my $temptotalr=0;
66   my $temptotalres=0;
67   my $temptotalren=0;
68   my $temptotalw=0;
69
70    
71    for (my $i2=0;$i2<$count;$i2++){
72     if ($charges[$i2]->{'amountoutstanding'} != $oldtime){
73       print mktablerow(6,'red',$charges[$i2]->{'description'},$charges[$i2]->{'accounttype'},'',
74       $charges[$i2]->{'amount'},$charges[$i2]->{'amountoutstanding'});
75       if ($payments[$i]{'accounttype'} ne 'W'){
76 #        print $payments[$i]{'accounttype'};
77         if ($charges[$i2]->{'accounttype'} eq 'Rent'){
78           $temptotalr+=$charges[$i2]->{'amount'}-$charges[$i2]->{'amountoutstanding'};
79         }
80         if ($charges[$i2]->{'accounttype'} eq 'F' || $charges[$i2]->{'accounttype'} eq 'FU'){
81           $temptotalf+=$charges[$i2]->{'amount'}-$charges[$i2]->{'amountoutstanding'};
82         }
83         if ($charges[$i2]->{'accounttype'} eq 'Res'){
84           $temptotalres+=$charges[$i2]->{'amount'}-$charges[$i2]->{'amountoutstanding'};
85         }
86         if ($charges[$i2]->{'accounttype'} eq 'R'){
87          $temptotalren+=$charges[$i2]->{'amount'}-$charges[$i2]->{'amountoutstanding'};
88         }
89       }
90     }
91    }
92   if ($payments[$i]{'accounttype'} eq 'W'){
93     $totalw+=$payments[$i]{'amount'};
94   }
95   my $time2="$payments[$i]{'date'} $time";
96   my $branch=Getpaidbranch($time2);
97   $branch=~ s/Levi/C/;
98   if ($branch eq 'C'){
99     $levin{'total'}+=$payments[$i]{'amount'};
100     $levin{'totalr'}+=$temptotalr;
101     $levin{'totalres'}+=$temptotalres;
102     $levin{'totalf'}+=$temptotalf;
103     $levin{'totalren'}+=$temptotalren;
104   }
105   if ($branch eq 'F'){
106     $foxton{'total'}+=$payments[$i]{'amount'};
107     $foxton{'totalr'}+=$temptotalr;
108     $foxton{'totalres'}+=$temptotalres;
109     $foxton{'totalf'}+=$temptotalf;
110     $foxton{'totalren'}+=$temptotalren;
111   }
112   if ($branch eq 'S'){
113     $shannon{'total'}+=$payments[$i]{'amount'};
114     $shannon{'totalr'}+=$temptotalr;
115     $shannon{'totalres'}+=$temptotalres;
116     $shannon{'totalf'}+=$temptotalf;
117     $shannon{'totalren'}+=$temptotalren;
118   }
119   print mktablerow(6,'white',"$payments[$i]{'firstname'} <b>$payments[$i]{'surname'}</b>"
120   ,$payments[$i]{'accounttype'},"$payments[$i]{'date'} $time",$payments[$i]{'amount'}
121   ,$branch);
122   $oldtime=$payments[$i]{'timestamp'};
123 }
124 print mktableft;
125 print endcenter;
126 #$totalw=$totalw * -1;
127 print "<p><b>Total Paid $total</b>";
128 print "<br><b>total written off $totalw</b>";
129 print mktablehdr;
130 $levin{'issues'}=Count('issue','C',$date,$date2);
131 $foxton{'issues'}=Count('issue','F',$date,$date2);
132 $shannon{'issues'}=Count('issue','S',$date,$date2);
133 $levin{'returns'}=Count('return','C',$date,$date2);
134 $foxton{'returns'}=Count('return','F',$date,$date2);
135 $shannon{'returns'}=Count('return','S',$date,$date2);
136 $levin{'renewals'}=Count('renew','C',$date,$date2);
137 $foxton{'renewals'}=Count('renew','F',$date,$date2);
138 $shannon{'renewals'}=Count('renew','S',$date,$date2);
139
140 print mktablerow(9,'white',"<b>Levin</b>","Fines $levin{'totalf'}","Rental Charges $levin{'totalr'}",
141 "Reserve Charges $levin{'totalres'}","Renewal Charges $levin{'totalren'}","<b>Total $levin{'total'}</b>",
142 "Issues $levin{'issues'}","Renewals $levin{'renewals'}","Returns $levin{'returns'}");
143 print mktablerow(9,'white',"<b>foxton</b>","Fines $foxton{'totalf'}","Rental Charges $foxton{'totalr'}","Reserve Charges $foxton{'totalres'}","Renewal Charges $foxton{'totalren'}","<b>Total $foxton{'total'}</b>",
144 "Issues $foxton{'issues'}","Renewals $foxton{'renewals'}","Returns $foxton{'returns'}");
145 print mktablerow(9,'white',"<b>shannon</b>","Fines $shannon{'totalf'}","Rental Charges $shannon{'totalr'}","Reserve Charges $shannon{'totalres'}","Renewal Charges $shannon{'totalren'}","<b>Total $shannon{'total'}</b>",
146 "Issues $shannon{'issues'}","Renewals $shannon{'renewals'}","Returns $shannon{'returns'}");
147 print mktableft;
148
149
150 print endmenu('report');
151 print endpage;