koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] CVS: koha/reports issues_stats.pl,1.4,1.5


From: Henri-Damien LAURENT
Subject: [Koha-cvs] CVS: koha/reports issues_stats.pl,1.4,1.5
Date: Sat, 12 Mar 2005 08:42:43 -0800

Update of /cvsroot/koha/koha/reports
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4288/reports

Modified Files:
        issues_stats.pl 
Log Message:
Removing average loan period processing.
It shall be processed in another file.
This process is too diffferent from the others.

Index: issues_stats.pl
===================================================================
RCS file: /cvsroot/koha/koha/reports/issues_stats.pl,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** issues_stats.pl     9 Mar 2005 18:56:15 -0000       1.4
--- issues_stats.pl     12 Mar 2005 16:42:39 -0000      1.5
***************
*** 20,46 ****
  # Suite 330, Boston, MA  02111-1307 USA
  
- use strict;
- use C4::Auth;
- use CGI;
- use C4::Context;
- use HTML::Template;
- use C4::Search;
- use C4::Output;
- use C4::Koha;
- use C4::Interface::CGI::Output;
- use C4::Circulation::Circ2;
- use Date::Manip;
- 
- =head1 NAME
- 
- plugin that shows a stats on borrowers
- 
- =head1 DESCRIPTION
- 
- 
- =over2
- 
- =cut
- 
  my $input = new CGI;
  my $do_it=$input->param('do_it');
--- 20,23 ----
***************
*** 437,637 ****
  # preparing calculation
        my $strcalc ;
!       if ($process ==2) {
!               $linefield=~s/datetime/issues.returndate/;
!               $linefield=~s/itemtype/biblioitems.itemtype/;
!               $colfield=~s/datetime/issues.returndate/;
!               $colfield=~s/itemtype/biblioitems.itemtype/;
!               
!       # Processing average loanperiods
!               $strcalc .= "SELECT $linefield, $colfield, ";
!               $strcalc .= " DATE_SUB(date_due, INTERVAL 
CAST(issuingrules.issuelength AS SIGNED INTEGER) * (CAST(issues.renewals AS 
SIGNED INTEGER)+1) DAY) AS issuedate, returndate, COUNT(*), date_due, 
issues.renewals, issuelength FROM `issues`,borrowers,biblioitems LEFT JOIN 
items ON (biblioitems.biblioitemnumber=items.biblioitemnumber) LEFT JOIN 
issuingrules ON (issuingrules.branchcode=issues.branchcode AND  
issuingrules.itemtype=biblioitems.itemtype AND  
issuingrules.categorycode=borrowers.categorycode) WHERE 
issues.itemnumber=items.itemnumber AND 
issues.borrowernumber=borrowers.borrowernumber and returndate is not null";
! #     
!               @$filters[0]=~ s/\*/%/g if (@$filters[0]);
!               $strcalc .= " AND issues.returndate > '" . @$filters[0] ."'" if 
( @$filters[0] );
!               @$filters[1]=~ s/\*/%/g if (@$filters[1]);
!               $strcalc .= " AND issues.returndate < '" . @$filters[1] ."'" if 
( @$filters[1] );
!               @$filters[2]=~ s/\*/%/g if (@$filters[2]);
!               $strcalc .= " AND borrowers.categorycode like '" . @$filters[2] 
."'" if ( @$filters[2] );
!               @$filters[3]=~ s/\*/%/g if (@$filters[3]);
!               $strcalc .= " AND biblioitems.itemtype like '" . @$filters[3] 
."'" if ( @$filters[3] );
!               @$filters[4]=~ s/\*/%/g if (@$filters[4]);
!               $strcalc .= " AND issues.branchcode like '" . @$filters[4] ."'" 
if ( @$filters[4] );
!               @$filters[5]=~ s/\*/%/g if (@$filters[5]);
!               $strcalc .= " AND borrowers.sort1 like '" . @$filters[5] ."'" 
if ( @$filters[5] );
!               @$filters[6]=~ s/\*/%/g if (@$filters[6]);
!               $strcalc .= " AND borrowers.sort2 like '" . @$filters[6] ."'" 
if ( @$filters[6] );
!               $strcalc .= " AND dayname(timestamp) like '" . $daysel ."'" if 
( $daysel );
!               $strcalc .= " AND monthname(timestamp) like '" . $monthsel ."'" 
if ( $monthsel );
! #             
!               $strcalc .= " group by issuedate, returndate, $linefield, 
$colfield order by $linefield,$colfield";
!               warn "SQL :". $strcalc;
                
!               my $dbcalc = $dbh->prepare($strcalc);
!               $dbcalc->execute;
!       #       warn "filling table";
!               my $emptycol;
!               my $issues_count=0;
!               my $previous_row; 
!               my $previous_col;
!               my $loanlength; 
!               my $err;
!               my $weightrow;
!               while (my  @data = $dbcalc->fetchrow) {
!                       my ($row, $col, $issuedate, $returndate, 
$weight)address@hidden;
!                       warn "filling table $row / $col / $issuedate / 
$returndate /$weight";
!                       $emptycol = 1 if ($col eq undef);
!                       $col = "zzEMPTY" if ($col eq undef);
!                       $row = "zzEMPTY" if ($row eq undef);
!                       warn "row :".$row." column :".$col;
!                       if (($previous_row== $row) and ($previous_col==$col)){
!                               my @result =split 
/:/,DateCalc($returndate,$issuedate) ;
! #  DateCalc returns => 0:0:WK:DD:HH:MM:SS   the weeks, days, hours, minutes,
! #  and seconds between the two
!                               $loanlength = $result[2]*7+$result[3];
!                               warn "DateCalc returns :$loanlength with return 
". $returndate ."issue ". $issuedate ."weight : ". $weight;
!                               
!                               
$table{$row}->{$col}->{value}+=$weight*$loanlength;
!                               $issues_count+=$weight;
!                       
!                       } elsif ($previous_row==$row) {
!                               
$table{$row}->{$previous_col}->{value}=$table{$row}->{$previous_col}->{value}/$issues_count;
!                               $table{$row}->{$previous_col}->{weight}=1;
!                               
$table{$row}->{$previous_col}->{realweight}=$issues_count;
!                               
$weightrow+=$table{$row}->{$previous_col}->{weight};
!                               
$table{$row}->{totalrow}+=$table{$row}->{$previous_col}->{value};
!                               
!                               my @result =split 
/:/,DateCalc($returndate,$issuedate) ;
! #  DateCalc returns => 0:0:WK:DD:HH:MM:SS   the weeks, days, hours, minutes,
! #  and seconds between the two
!                               $loanlength = $result[2]*7+$result[3];
!                               
$table{$row}->{$col}->{value}+=$weight*$loanlength;
!                               $issues_count=$weight;
!                               $previous_col=$col;
!                       } else {
!                               unless (($previous_row) or ($previous_col)){
!                                       
$table{$previous_row}->{$previous_col}->{value}=$table{$previous_row}->{$previous_col}->{value}/$issues_count;
!                                       
$table{$previous_row}->{$previous_col}->{weight}=1;
!                                       
$table{$previous_row}->{$previous_col}->{realweight}=$issues_count;
!                                       
$table{$previous_row}->{totalrow}+=$table{$previous_row}->{$previous_col}->{value};
!                                       
$weightrow+=$table{$row}->{$previous_col}->{weight};
!                                       
$table{$previous_row}->{totalrow}=$table{$previous_row}->{totalrow}/$weightrow;
!                               }
!                               my @result =split 
/:/,DateCalc($returndate,$issuedate) ;
! #  DateCalc returns => 0:0:WK:DD:HH:MM:SS   the weeks, days, hours, minutes,
! #  and seconds between the two
!                               $loanlength = $result[2]*7+$result[3];
!                               warn "DateCalc returns :$loanlength with return 
". $returndate ."issue ". $issuedate ."weight : ". $weight;
!                               
!                               
$table{$row}->{$col}->{value}=$weight*$loanlength;
!                               $issues_count=$weight;
!                               $previous_row=$row;
!                               $previous_col=$col;
!                               $weightrow=0;
!                       }
!               }
!               push @loopcol,{coltitle => "NULL"} if ($emptycol);
!               foreach my $row ( sort keys %table ) {
!                       my @loopcell;
! #             address@hidden ensures the order for columns is common with 
column titles
! #             # and the number matches the number of columns
!                       foreach my $col ( @loopcol ) {
!                               my $value =$table{$row}->{($col->{coltitle} eq 
"NULL")?"zzEMPTY":$col->{coltitle}}->{value};
!                               push @loopcell, {value => $value  } ;
!                       }
!                       push @looprow,{ 'rowtitle' => ($row eq 
"zzEMPTY")?"NULL":$row,
!                                                       'loopcell' => 
address@hidden,
!                                                       'hilighted' => 
($hilighted >0),
!                                                       'totalrow' => 
$table{$row}->{totalrow}
!                                               };
!                       $hilighted = -$hilighted;
!               }
! #     
! # #   warn "footer processing";
                foreach my $col ( @loopcol ) {
!                       my $total=0;
!                       my $nbrow=0;
!                       foreach my $row ( @looprow ) {
!                               $total += $table{($row->{rowtitle} eq 
"NULL")?"zzEMPTY":$row->{rowtitle}}->{($col->{coltitle} eq 
"NULL")?"zzEMPTY":$col->{coltitle}}->{value};
!                               $nbrow++;
! #                     warn "value added 
".$table{$row->{rowtitle}}->{$col->{coltitle}}. "for line ".$row->{rowtitle};
!                       }
! #             warn "summ for column ".$col->{coltitle}."  = ".$total;
!                       $total = $total/$nbrow if ($nbrow);
!                       push @loopfooter, {'totalcol' => $total};
                }
!       
!       }else {
!               $strcalc .= "SELECT $linefield, $colfield, ";
!               $strcalc .= "COUNT( * ) " if ($process ==1);
!               if ($process ==3){
!                       my $rqbookcount = $dbh->prepare("SELECT count(*) FROM 
items");
!                       $rqbookcount->execute;
!                       my ($bookcount) = $rqbookcount->fetchrow;
!                       $strcalc .= "100*(COUNT(itemnumber))/ $bookcount " ;
!               }
!               $strcalc .= "FROM statistics,borrowers where 
(statistics.borrowernumber=borrowers.borrowernumber) ";
!       
!               @$filters[0]=~ s/\*/%/g if (@$filters[0]);
!               $strcalc .= " AND statistics.datetime > '" . @$filters[0] ."'" 
if ( @$filters[0] );
!               @$filters[1]=~ s/\*/%/g if (@$filters[1]);
!               $strcalc .= " AND statistics.datetime < '" . @$filters[1] ."'" 
if ( @$filters[1] );
!               @$filters[2]=~ s/\*/%/g if (@$filters[2]);
!               $strcalc .= " AND borrowers.categorycode like '" . @$filters[2] 
."'" if ( @$filters[2] );
!               @$filters[3]=~ s/\*/%/g if (@$filters[3]);
!               $strcalc .= " AND statistics.itemtype like '" . @$filters[3] 
."'" if ( @$filters[3] );
!               @$filters[4]=~ s/\*/%/g if (@$filters[4]);
!               $strcalc .= " AND statistics.branch like '" . @$filters[4] ."'" 
if ( @$filters[4] );
!               @$filters[5]=~ s/\*/%/g if (@$filters[5]);
!               $strcalc .= " AND borrowers.sort1 like '" . @$filters[5] ."'" 
if ( @$filters[5] );
!               @$filters[6]=~ s/\*/%/g if (@$filters[6]);
!               $strcalc .= " AND borrowers.sort2 like '" . @$filters[6] ."'" 
if ( @$filters[6] );
!               $strcalc .= " AND dayname(datetime) like '" . $daysel ."'" if ( 
$daysel );
!               $strcalc .= " AND monthname(datetime) like '" . $monthsel ."'" 
if ( $monthsel );
!               $strcalc .= " AND statistics.type like '" . $type ."'" if ( 
$type );
!               
!               $strcalc .= " group by $linefield, $colfield order by 
$linefield,$colfield";
!       #       warn "". $strcalc;
!               my $dbcalc = $dbh->prepare($strcalc);
!               $dbcalc->execute;
!       #       warn "filling table";
!               my $emptycol; 
!               while (my ($row, $col, $value) = $dbcalc->fetchrow) {
!       #               warn "filling table $row / $col / $value ";
!                       $emptycol = 1 if ($col eq undef);
!                       $col = "zzEMPTY" if ($col eq undef);
!                       $row = "zzEMPTY" if ($row eq undef);
!                       
!                       $table{$row}->{$col}+=$value;
!                       $table{$row}->{totalrow}+=$value;
!                       $grantotal += $value;
!               }
!               push @loopcol,{coltitle => "NULL"} if ($emptycol);
!               
!               foreach my $row ( sort keys %table ) {
!                       my @loopcell;
!                       address@hidden ensures the order for columns is common 
with column titles
!                       # and the number matches the number of columns
!                       foreach my $col ( @loopcol ) {
!                               my $value =$table{$row}->{($col->{coltitle} eq 
"NULL")?"zzEMPTY":$col->{coltitle}};
!                               push @loopcell, {value => $value  } ;
!                       }
!                       push @looprow,{ 'rowtitle' => ($row eq 
"zzEMPTY")?"NULL":$row,
                                                        'loopcell' => 
address@hidden,
                                                        'hilighted' => 
($hilighted >0),
                                                        'totalrow' => 
$table{$row}->{totalrow}
                                                };
!                       $hilighted = -$hilighted;
!               }
!               
!       #       warn "footer processing";
!               foreach my $col ( @loopcol ) {
!                       my $total=0;
!                       foreach my $row ( @looprow ) {
!                               $total += $table{($row->{rowtitle} eq 
"NULL")?"zzEMPTY":$row->{rowtitle}}->{($col->{coltitle} eq 
"NULL")?"zzEMPTY":$col->{coltitle}};
!       #                       warn "value added 
".$table{$row->{rowtitle}}->{$col->{coltitle}}. "for line ".$row->{rowtitle};
!                       }
!       #               warn "summ for column ".$col->{coltitle}."  = ".$total;
!                       push @loopfooter, {'totalcol' => $total};
                }
        }
                        
--- 414,489 ----
  # preparing calculation
        my $strcalc ;
! 
!       $strcalc .= "SELECT $linefield, $colfield, ";
!       $strcalc .= "COUNT( * ) " if ($process ==1);
!       if ($process ==3){
!               my $rqbookcount = $dbh->prepare("SELECT count(*) FROM items");
!               $rqbookcount->execute;
!               my ($bookcount) = $rqbookcount->fetchrow;
!               $strcalc .= "100*(COUNT(itemnumber))/ $bookcount " ;
!       }
!       $strcalc .= "FROM statistics,borrowers where 
(statistics.borrowernumber=borrowers.borrowernumber) ";
! 
!       @$filters[0]=~ s/\*/%/g if (@$filters[0]);
!       $strcalc .= " AND statistics.datetime > '" . @$filters[0] ."'" if ( 
@$filters[0] );
!       @$filters[1]=~ s/\*/%/g if (@$filters[1]);
!       $strcalc .= " AND statistics.datetime < '" . @$filters[1] ."'" if ( 
@$filters[1] );
!       @$filters[2]=~ s/\*/%/g if (@$filters[2]);
!       $strcalc .= " AND borrowers.categorycode like '" . @$filters[2] ."'" if 
( @$filters[2] );
!       @$filters[3]=~ s/\*/%/g if (@$filters[3]);
!       $strcalc .= " AND statistics.itemtype like '" . @$filters[3] ."'" if ( 
@$filters[3] );
!       @$filters[4]=~ s/\*/%/g if (@$filters[4]);
!       $strcalc .= " AND statistics.branch like '" . @$filters[4] ."'" if ( 
@$filters[4] );
!       @$filters[5]=~ s/\*/%/g if (@$filters[5]);
!       $strcalc .= " AND borrowers.sort1 like '" . @$filters[5] ."'" if ( 
@$filters[5] );
!       @$filters[6]=~ s/\*/%/g if (@$filters[6]);
!       $strcalc .= " AND borrowers.sort2 like '" . @$filters[6] ."'" if ( 
@$filters[6] );
!       $strcalc .= " AND dayname(datetime) like '" . $daysel ."'" if ( $daysel 
);
!       $strcalc .= " AND monthname(datetime) like '" . $monthsel ."'" if ( 
$monthsel );
!       $strcalc .= " AND statistics.type like '" . $type ."'" if ( $type );
!       
!       $strcalc .= " group by $linefield, $colfield order by 
$linefield,$colfield";
! #     warn "". $strcalc;
!       my $dbcalc = $dbh->prepare($strcalc);
!       $dbcalc->execute;
! #     warn "filling table";
!       my $emptycol; 
!       while (my ($row, $col, $value) = $dbcalc->fetchrow) {
! #             warn "filling table $row / $col / $value ";
!               $emptycol = 1 if ($col eq undef);
!               $col = "zzEMPTY" if ($col eq undef);
!               $row = "zzEMPTY" if ($row eq undef);
                
!               $table{$row}->{$col}+=$value;
!               $table{$row}->{totalrow}+=$value;
!               $grantotal += $value;
!       }
!       push @loopcol,{coltitle => "NULL"} if ($emptycol);
! 
!       foreach my $row ( sort keys %table ) {
!               my @loopcell;
!               address@hidden ensures the order for columns is common with 
column titles
!               # and the number matches the number of columns
                foreach my $col ( @loopcol ) {
!                       my $value =$table{$row}->{($col->{coltitle} eq 
"NULL")?"zzEMPTY":$col->{coltitle}};
!                       push @loopcell, {value => $value  } ;
                }
!               push @looprow,{ 'rowtitle' => ($row eq "zzEMPTY")?"NULL":$row,
                                                        'loopcell' => 
address@hidden,
                                                        'hilighted' => 
($hilighted >0),
                                                        'totalrow' => 
$table{$row}->{totalrow}
                                                };
!               $hilighted = -$hilighted;
!       }
!       
! #     warn "footer processing";
!       foreach my $col ( @loopcol ) {
!               my $total=0;
!               foreach my $row ( @looprow ) {
!                       $total += $table{($row->{rowtitle} eq 
"NULL")?"zzEMPTY":$row->{rowtitle}}->{($col->{coltitle} eq 
"NULL")?"zzEMPTY":$col->{coltitle}};
! #                     warn "value added 
".$table{$row->{rowtitle}}->{$col->{coltitle}}. "for line ".$row->{rowtitle};
                }
+ #             warn "summ for column ".$col->{coltitle}."  = ".$total;
+               push @loopfooter, {'totalcol' => $total};
        }
                        




reply via email to

[Prev in Thread] Current Thread [Next in Thread]