Synching with rel_2_2.
[koha.git] / stats.pl
index 49c604d..a11be08 100755 (executable)
--- a/stats.pl
+++ b/stats.pl
 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
 # Suite 330, Boston, MA  02111-1307 USA
 
-use C4::Stats;
 use strict;
-use Date::Manip;
 use CGI;
 use C4::Output;
+use HTML::Template;
+use C4::Auth;
+use C4::Interface::CGI::Output;
+use C4::Context;
+use Date::Manip;
+use C4::Stats;
 
 my $input=new CGI;
 my $time=$input->param('time');
-print $input->header;
 
-print startpage;
-print startmenu('report');
-print center;
+my ($template, $loggedinuser, $cookie)
+    = get_template_and_user({template_name => "stats.tmpl",
+                            query => $input,
+                            type => "intranet",
+                            authnotrequired => 0,
+                            flagsrequired => {borrowers => 1},
+                            debug => 1,
+                            });
 
 my $date;
 my $date2;
 if ($time eq 'yesterday'){
-  $date=ParseDate('yesterday');
-  $date2=ParseDate('today');
+       $date=ParseDate('yesterday');
+       $date2=ParseDate('today');
 }
 if ($time eq 'today'){
-  $date=ParseDate('today');
-  $date2=ParseDate('tomorrow');
+       $date=ParseDate('today');
+       $date2=ParseDate('tomorrow');
 }
 if ($time eq 'daybefore'){
-  $date=ParseDate('2 days ago');
-  $date2=ParseDate('yesterday');
+       $date=ParseDate('2 days ago');
+       $date2=ParseDate('yesterday');
+}
+if ($time eq 'month') {
+       $date = ParseDate('1 month ago');
+       $date2 = ParseDate('today');
+       warn "d : $date // d2 : $date2";
 }
 if ($time=~ /\//){
-  $date=ParseDate($time);
-  $date2=ParseDateDelta('+ 1 day');
-  $date2=DateCalc($date,$date2);
+       $date=ParseDate($time);
+       $date2=ParseDateDelta('+ 1 day');
+       $date2=DateCalc($date,$date2);
 }
 $date=UnixDate($date,'%Y-%m-%d');
 $date2=UnixDate($date2,'%Y-%m-%d');
-my @payments=TotalPaid($date);
+       warn "d : $date // d2 : $date2";
+my @payments=TotalPaid($date,$date2);
 my $count=@payments;
 my $total=0;
-my %levin;
-my %foxton;
-my %shannon;
 my $oldtime;
 my $totalw=0;
-#my $totalcf=0;
-print mktablehdr;
-print mktablerow(5,'#99cc33',bold('Name'),bold('Type'),bold('Date/time'),bold('Amount'), bold('Branch'),'/images/background-mem.gif');
+my @loop;
+my %row;
 my $i=0;
 while ($i<$count){
-  my $time=$payments[$i]{'datetime'};
-  my $payments=$payments[$i]{'value'};
-  my $charge=0;
-  my @temp=split(/ /,$payments[$i]{'datetime'});
-  my $date=$temp[0];
-  my @charges=getcharges($payments[$i]{'borrowernumber'},$payments[$i]{'timestamp'});
-  my $count=@charges;
-  my $temptotalf=0;
-  my $temptotalr=0;
-  my $temptotalres=0;
-  my $temptotalren=0;
-  my $temptotalw=0;
-  for (my $i2=0;$i2<$count;$i2++){
-     $charge+=$charges[$i2]->{'amount'};
-      print mktablerow(6,'red',$charges[$i2]->{'description'},$charges[$i2]->{'accounttype'},$charges[$i2]->{'timestamp'},
-      $charges[$i2]->{'amount'},$charges[$i2]->{'amountoutstanding'});
-      if ($payments[$i]{'accountytpe'} ne 'W'){
-        if ($charges[$i2]->{'accounttype'} eq 'Rent'){
-          $temptotalr+=$charges[$i2]->{'amount'}-$charges[$i2]->{'amountoutstanding'};
-        }
-        if ($charges[$i2]->{'accounttype'} eq 'F' || $charges[$i2]->{'accounttype'} eq 'FU' || $charges[$i2]->{'accounttype'} eq 'FN' ){
-          $temptotalf+=$charges[$i2]->{'amount'}-$charges[$i2]->{'amountoutstanding'};
-        }
-        if ($charges[$i2]->{'accounttype'} eq 'Res'){
-          $temptotalres+=$charges[$i2]->{'amount'}-$charges[$i2]->{'amountoutstanding'};
-        }
-        if ($charges[$i2]->{'accounttype'} eq 'R'){
-         $temptotalren+=$charges[$i2]->{'amount'}-$charges[$i2]->{'amountoutstanding'};
-        }
-     }
-  }
-
-#  my $branch=
-  my $hour=substr($payments[$i]{'timestamp'},8,2);
-  my  $min=substr($payments[$i]{'timestamp'},10,2);
-  my $sec=substr($payments[$i]{'timestamp'},12,2);
-  my $time="$hour:$min:$sec";
-  my $time2="$payments[$i]{'date'}";
-  my $branch=Getpaidbranch($time2,$payments[$i]{'borrowernumber'});
-  if ($branch eq 'C'){
-    $levin{'totalf'}+=$temptotalf;
-    $levin{'totalres'}+=$temptotalres;
-    $levin{'totalren'}+=$temptotalren;
-    $levin{'totalr'}+=$temptotalr;
-  } elsif ($branch eq 'F'){
-    $foxton{'totalf'}+=$temptotalf;
-    $foxton{'totalres'}+=$temptotalres;
-    $foxton{'totalren'}+=$temptotalren;
-    $foxton{'totalr'}+=$temptotalr;
-  } elsif ($branch eq 'S'){
-    $shannon{'totalf'}+=$temptotalf;
-    $shannon{'totalres'}+=$temptotalres;
-    $shannon{'totalren'}+=$temptotalren;
-    $shannon{'totalr'}+=$temptotalr;
-  }
-  my $bornum=$payments[$i]{'borrowernumber'};
-  my $oldtime=$payments[$i]{'timestamp'};
-  my $oldtype=$payments[$i]{'accounttype'};
-  while ($bornum eq $payments[$i]{'borrowernumber'} && $oldtype == $payments[$i]{'accounttype'}  && $oldtime eq $payments[$i]{'timestamp'}){
-     my $hour=substr($payments[$i]{'timestamp'},8,2);
-     my  $min=substr($payments[$i]{'timestamp'},10,2);
-     my $sec=substr($payments[$i]{'timestamp'},12,2);
-     my $time="$hour:$min:$sec";
-         my $time2="$payments[$i]{'date'}";
-     my $branch=Getpaidbranch($time2,$payments[$i]{'borrowernumber'});
-
-    if ($payments[$i]{'accounttype'} eq 'W'){
-      $totalw+=$payments[$i]{'amount'};
-    } else {
-      $payments[$i]{'amount'}=$payments[$i]{'amount'}*-1;
-      $total+=$payments[$i]{'amount'};
-      if ($branch eq 'C'){
-        $levin{'total'}+=$payments[$i]{'amount'};
-      }
-      if ($branch eq 'F'){
-        $foxton{'total'}+=$payments[$i]{'amount'};
-      }
-      if ($branch eq 'S'){
-        $shannon{'total'}+=$payments[$i]{'amount'};
-      }
-
-    }
-#    my $time2="$payments[$i]{'date'} $time";
-
+       warn " pay : ".$payments[$i]{'timestamp'};
+       my $time=$payments[$i]{'datetime'};
+       my $payments=$payments[$i]{'value'};
+       my $charge=0;
+       my @temp=split(/ /,$payments[$i]{'datetime'});
+       my $date=$temp[0];
+       my @charges=getcharges($payments[$i]{'borrowernumber'},$payments[$i]{'timestamp'});
+       my $count=@charges;
+       my $temptotalf=0;
+       my $temptotalr=0;
+       my $temptotalres=0;
+       my $temptotalren=0;
+       my $temptotalw=0;
+       for (my $i2=0;$i2<$count;$i2++){
+               $charge+=$charges[$i2]->{'amount'};
+               %row = ( name   => $charges[$i2]->{'description'},
+                                       type   => $charges[$i2]->{'accounttype'},
+                                       time   => $charges[$i2]->{'timestamp'},
+                                       amount => $charges[$i2]->{'amount'},
+                                       branch => $charges[$i2]->{'amountoutstanding'} );
+               push(@loop, \%row);
+               if ($payments[$i]{'accountytpe'} ne 'W'){
+                       if ($charges[$i2]->{'accounttype'} eq 'Rent'){
+                               $temptotalr+=$charges[$i2]->{'amount'}-$charges[$i2]->{'amountoutstanding'};
+                       }
+                       if ($charges[$i2]->{'accounttype'} eq 'F' || $charges[$i2]->{'accounttype'} eq 'FU' || $charges[$i2]->{'accounttype'} eq 'FN' ){
+                               $temptotalf+=$charges[$i2]->{'amount'}-$charges[$i2]->{'amountoutstanding'};
+                       }
+                       if ($charges[$i2]->{'accounttype'} eq 'Res'){
+                               $temptotalres+=$charges[$i2]->{'amount'}-$charges[$i2]->{'amountoutstanding'};
+                       }
+                       if ($charges[$i2]->{'accounttype'} eq 'R'){
+                       $temptotalren+=$charges[$i2]->{'amount'}-$charges[$i2]->{'amountoutstanding'};
+                       }
+               }
+       }
+       my $hour=substr($payments[$i]{'timestamp'},8,2);
+       my  $min=substr($payments[$i]{'timestamp'},10,2);
+       my $sec=substr($payments[$i]{'timestamp'},12,2);
+       my $time="$hour:$min:$sec";
+       my $time2="$payments[$i]{'date'}";
+       my $branch=Getpaidbranch($time2,$payments[$i]{'borrowernumber'});
+       my $bornum=$payments[$i]{'borrowernumber'};
+       my $oldtime=$payments[$i]{'timestamp'};
+       my $oldtype=$payments[$i]{'accounttype'};
+       while ($bornum eq $payments[$i]{'borrowernumber'} && $oldtype == $payments[$i]{'accounttype'}  && $oldtime eq $payments[$i]{'timestamp'}){
+               my $hour=substr($payments[$i]{'timestamp'},8,2);
+               my  $min=substr($payments[$i]{'timestamp'},10,2);
+               my $sec=substr($payments[$i]{'timestamp'},12,2);
+               my $time="$hour:$min:$sec";
+               my $time2="$payments[$i]{'date'}";
+               my $branch=Getpaidbranch($time2,$payments[$i]{'borrowernumber'});
+               if ($payments[$i]{'accounttype'} eq 'W'){
+                       $totalw+=$payments[$i]{'amount'};
+               } else {
+                       $payments[$i]{'amount'}=$payments[$i]{'amount'}*-1;
+                       $total+=$payments[$i]{'amount'};
+               }
+
+               %row = ( name   => "<b>".$payments[$i]{'firstname'}.$payments[$i]{'surname'} . "</b>",
+                                       type   => $payments[$i]{'accounttype'}, time   => $payments[$i]{'date'},
+                                       amount => $payments[$i]{'amount'}, branch => $branch );
+               push(@loop, \%row);
+               $oldtype=$payments[$i]{'accounttype'};
+               $oldtime=$payments[$i]{'timestamp'};
+               $bornum=$payments[$i]{'borrowernumber'};
+               $i++;
+       }
+}
 
-    print mktablerow(6,'white',"$payments[$i]{'firstname'} <b>$payments[$i]{'surname'}</b>",
-    ,$payments[$i]{'accounttype'},"$payments[$i]{'date'} $time",$payments[$i]{'amount'}
-    ,$branch);
-    $oldtype=$payments[$i]{'accounttype'};
-    $oldtime=$payments[$i]{'timestamp'};
-    $bornum=$payments[$i]{'borrowernumber'};
-    $i++;
+$template->param( loop1   => \@loop,
+                 totalw => $totalw,
+                 total  => $total );
 
-  }
-  print mktablerow('6','white','','','','','','');
-}
-print mktableft;
-print endcenter;
-#$totalw=$totalw * -1;
-print "<p><b>Total Paid $total</b>";
-print "<br><b>total written off $totalw</b>";
-print mktablehdr;
-$levin{'issues'}=Count('issue','C',$date,$date2);
-$foxton{'issues'}=Count('issue','F',$date,$date2);
-$shannon{'issues'}=Count('issue','S',$date,$date2);
-$levin{'returns'}=Count('return','C',$date,$date2);
-$foxton{'returns'}=Count('return','F',$date,$date2);
-$shannon{'returns'}=Count('return','S',$date,$date2);
-$levin{'renewals'}=Count('renew','C',$date,$date2);
-$foxton{'renewals'}=Count('renew','F',$date,$date2);
-$shannon{'renewals'}=Count('renew','S',$date,$date2);
-$levin{'unknown'}=$levin{'total'}-($levin{'totalf'}+$levin{'totalr'}+$levin{'totalres'}+$levin{'totalren'});
-$foxton{'unknown'}=$foxton{'total'}-($foxton{'totalf'}+$foxton{'totalr'}+$foxton{'totalres'}+$foxton{'totalren'});
-$foxton{'unknown'}=$foxton{'total'}-($foxton{'totalf'}+$foxton{'totalr'}+$foxton{'totalres'}+$foxton{'totalren'});
-print mktablerow(10,'white',"<b>Levin</b>","Fines $levin{'totalf'}","Rental Charges $levin{'totalr'}",
-"Reserve Charges $levin{'totalres'}","Renewal Charges $levin{'totalren'}","Unknown $levin{'unknown'}","<b>Total $levin{'total'}</b>",
-"Issues $levin{'issues'}","Renewals $levin{'renewals'}","Returns $levin{'returns'}");
-print mktablerow(10,'white',"<b>foxton</b>","Fines $foxton{'totalf'}","Rental Charges $foxton{'totalr'}","Reserve Charges $foxton{'totalres'}","Renewal Charges $foxton{'totalren'}","Unknown $foxton{'unknown'}","<b>Total $foxton{'total'}</b>",
-"Issues $foxton{'issues'}","Renewals $foxton{'renewals'}","Returns $foxton{'returns'}");
-print mktablerow(10,'white',"<b>shannon</b>","Fines $shannon{'totalf'}","Rental Charges $shannon{'totalr'}","Reserve Charges $shannon{'totalres'}","Renewal Charges $shannon{'totalren'}","Unknown $shannon{'unknown'}","<b>Total $shannon{'total'}</b>",
-"Issues $shannon{'issues'}","Renewals $shannon{'renewals'}","Returns $shannon{'returns'}");
-print mktableft;
+output_html_with_http_headers $input, $cookie, $template->output;
 
 
-print endmenu('report');
-print endpage;