addMultiple button renamed with Biblio Basket
[srvgit] / stats.pl
index 8933c91..a11be08 100755 (executable)
--- a/stats.pl
+++ b/stats.pl
 #!/usr/bin/perl
 
+# $Id$
+
 #written 14/1/2000
 #script to display reports
 
-use C4::Stats;
+
+# Copyright 2000-2002 Katipo Communications
+#
+# This file is part of Koha.
+#
+# Koha is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+#
+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
+# Suite 330, Boston, MA  02111-1307 USA
+
 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 $totalc=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');
-for (my $i=0;$i<$count;$i++){
-  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";
-  $payments[$i]{'amount'}*=-1;
-  $total+=$payments[$i]{'amount'};
-  my @charges=getcharges($payments[$i]{'borrowernumber'},$payments[$i]{'timestamp'});
-  my $count=@charges;
-  my $temptotalf=0;
-  my $temptotalr=0;
-  my $temptotalres=0;
-  my $temptotalren=0;
-  for (my $i2=0;$i2<$count;$i2++){
-    if ($charges[$i2]->{'amountoutstanding'} != $oldtime){
-    print mktablerow(6,'red',$charges[$i2]->{'description'},$charges[$i2]->{'accounttype'},'',
-    $charges[$i2]->{'amount'},$charges[$i2]->{'amountoutstanding'});
-    if ($charges[$i2]->{'accounttype'} eq 'Rent'){
-      $temptotalr+=$charges[$i2]->{'amount'}-$charges[$i2]->{'amountoutstanding'};
-    }
-    if ($charges[$i2]->{'accounttype'} eq 'F' || $charges[$i2]->{'accounttype'} eq 'FU'){
-      $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 $time2="$payments[$i]{'date'} $time";
-  my $branch=Getpaidbranch($time2);
-  if ($branch eq 'C'){
-    $levin{'total'}+=$payments[$i]{'amount'};
-    $levin{'totalr'}+=$temptotalr;
-    $levin{'totalres'}+=$temptotalres;
-    $levin{'totalf'}+=$temptotalf;
-    $levin{'totalren'}+=$temptotalren;
-  }
-  if ($branch eq 'F'){
-    $foxton{'total'}+=$payments[$i]{'amount'};
-    $foxton{'totalr'}+=$temptotalr;
-    $foxton{'totalres'}+=$temptotalres;
-    $foxton{'totalf'}+=$temptotalf;
-    $foxton{'totalren'}+=$temptotalren;
-  }
-  if ($branch eq 'S'){
-    $shannon{'total'}+=$payments[$i]{'amount'};
-    $shannon{'totalr'}+=$temptotalr;
-    $shannon{'totalres'}+=$temptotalres;
-    $shannon{'totalf'}+=$temptotalf;
-    $shannon{'totalren'}+=$temptotalren;
-  }
-  print mktablerow(6,'white',"$payments[$i]{'firstname'} <b>$payments[$i]{'surname'}</b>"
-  ,$payments[$i]{'accounttype'},"$payments[$i]{'date'} $time",$payments[$i]{'amount'}
-  ,$branch);
-  $oldtime=$payments[$i]{'timestamp'};
+my $totalw=0;
+my @loop;
+my %row;
+my $i=0;
+while ($i<$count){
+       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 mktableft;
-print endcenter;
-print "<p><b>$total</b>";
-#print "<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);
-print mktablerow(9,'white',"<b>Levin</b>","Fines $levin{'totalf'}","Rental Charges $levin{'totalr'}",
-"Reserve Charges $levin{'totalres'}","Renewal Charges $levin{'totalren'}","Total $levin{'total'}",
-"Issues $levin{'issues'}","Renewals $levin{'renewals'}","Returns $levin{'returns'}");
-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'}",
-"Issues $foxton{'issues'}","Renewals $foxton{'renewals'}","Returns $foxton{'returns'}");
-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'}",
-"Issues $shannon{'issues'}","Renewals $shannon{'renewals'}","Returns $shannon{'returns'}");
-print mktableft;
+
+$template->param( loop1   => \@loop,
+                 totalw => $totalw,
+                 total  => $total );
+
+output_html_with_http_headers $input, $cookie, $template->output;
 
 
-print endmenu('report');
-print endpage;