(added) Ancillary files for new installer.
[koha.git] / stats.pl
index d30d964..49c604d 100755 (executable)
--- a/stats.pl
+++ b/stats.pl
@@ -1,8 +1,28 @@
 #!/usr/bin/perl
 
+# $Id$
+
 #written 14/1/2000
 #script to display reports
 
+
+# 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 C4::Stats;
 use strict;
 use Date::Manip;
@@ -45,74 +65,113 @@ my %levin;
 my %foxton;
 my %shannon;
 my $oldtime;
-#my $totalc=0;
+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');
-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 $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++){
-    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);
-  $branch=~ s/Levi/C/;
+     $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{'total'}+=$payments[$i]{'amount'};
-    $levin{'totalr'}+=$temptotalr;
-    $levin{'totalres'}+=$temptotalres;
     $levin{'totalf'}+=$temptotalf;
+    $levin{'totalres'}+=$temptotalres;
     $levin{'totalren'}+=$temptotalren;
-  }
-  if ($branch eq 'F'){
-    $foxton{'total'}+=$payments[$i]{'amount'};
-    $foxton{'totalr'}+=$temptotalr;
-    $foxton{'totalres'}+=$temptotalres;
+    $levin{'totalr'}+=$temptotalr;
+  } elsif ($branch eq 'F'){
     $foxton{'totalf'}+=$temptotalf;
+    $foxton{'totalres'}+=$temptotalres;
     $foxton{'totalren'}+=$temptotalren;
-  }
-  if ($branch eq 'S'){
-    $shannon{'total'}+=$payments[$i]{'amount'};
-    $shannon{'totalr'}+=$temptotalr;
-    $shannon{'totalres'}+=$temptotalres;
+    $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";
+
+
+    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++;
+
   }
-  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'};
+  print mktablerow('6','white','','','','','','');
 }
 print mktableft;
 print endcenter;
-print "<p><b>$total</b>";
-#print "<b
+#$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);
@@ -120,12 +179,18 @@ $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'}",
+$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(9,'white',"<b>foxton</b>","Fines $foxton{'totalf'}","Rental Charges $foxton{'totalr'}","Reserve Charges $foxton{'totalres'}","Renewal Charges $foxton{'totalren'}","Total $foxton{'total'}",
+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(9,'white',"<b>shannon</b>","Fines $shannon{'totalf'}","Rental Charges $shannon{'totalr'}","Reserve Charges $shannon{'totalres'}","Renewal Charges $shannon{'totalren'}","Total $shannon{'total'}",
+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;