#!/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 $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";
- if ($payments[$i]{'accounttype'} ne 'W'){
- $payments[$i]{'amount'}*=-1;
- $total+=$payments[$i]{'amount'};
- }
+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'};
+ }
- 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 ($payments[$i]{'accounttype'} ne 'W'){
-# print $payments[$i]{'accounttype'};
- 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'};
- }
- }
- }
- }
- if ($payments[$i]{'accounttype'} eq 'W'){
- $totalw+=$payments[$i]{'amount'};
- }
- my $time2="$payments[$i]{'date'} $time";
- my $branch=Getpaidbranch($time2);
- $branch=~ s/Levi/C/;
- 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'};
+ %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;
-#$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);
-print mktablerow(9,'white',"<b>Levin</b>","Fines $levin{'totalf'}","Rental Charges $levin{'totalr'}",
-"Reserve Charges $levin{'totalres'}","Renewal Charges $levin{'totalren'}","<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'}","<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'}","<b>Total $shannon{'total'}</b>",
-"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;