[Koha-cvs] CVS: koha/reports acquisitions_stats.pl,1.7,1.8 borrowers_stats.pl,1.8,1.9 catalogue_stats.pl,1.14,1.15 issues_by_borrower_category.plugin,1.3,1.4 issues_stats.pl,1.9,1.10

Paul POULAIN tipaul at users.sourceforge.net
Wed Oct 26 11:13:39 CEST 2005


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

Modified Files:
	acquisitions_stats.pl borrowers_stats.pl catalogue_stats.pl 
	issues_by_borrower_category.plugin issues_stats.pl 
Log Message:
big commit, still breaking things...

* synch with rel_2_2. Probably the last non manual synch, as rel_2_2 should not be modified deeply.
* code cleaning (cleaning warnings from perl -w) continued

Index: acquisitions_stats.pl
===================================================================
RCS file: /cvsroot/koha/koha/reports/acquisitions_stats.pl,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** acquisitions_stats.pl	26 Aug 2005 04:43:18 -0000	1.7
--- acquisitions_stats.pl	26 Oct 2005 09:13:37 -0000	1.8
***************
*** 308,311 ****
--- 308,384 ----
          $colfilter[0] = @$filters[10] if ($column =~ /sort2/ )     ;
  #warn "filtre col ".$colfilter[0]." ".$colfilter[1];
+                                               
+ # 1st, loop rows.                             
+ 	my $linefield;
+ 	my $lineorder;                               
+ 	if (($line =~/closedate/) and ($podsp == 1)) {
+ 		#Display by day
+ 		$linefield .="dayname($line)";  
+ 		$lineorder .="weekday($line)";  
+ 	} elsif (($line=~/closedate/) and ($podsp == 2)) {
+ 		#Display by Month
+ 		$linefield .="monthname($line)";  
+ 		$lineorder .="month($line)";  
+ 	} elsif (($line=~/closedate/) and ($podsp == 3)) {
+ 		#Display by Year
+ 		$linefield .="Year($line)";
+ 		$lineorder .=$linefield;  
+ 	} elsif (($line =~/received/) and ($rodsp == 1)) {
+ 		#Display by day
+ 		$linefield .="dayname($line)";  
+ 		$lineorder .="weekday($line)";  
+ 	} elsif (($line=~/received/) and ($rodsp == 2)) {
+ 		#Display by Month
+ 		$linefield .="monthname($line)";  
+ 		$lineorder .="month($line)";  
+ 	} elsif (($line=~/received/) and ($rodsp == 3)) {
+ 		#Display by Year
+ 		$linefield .="Year($line)";
+ 		$lineorder .=$linefield;  
+ 	} else {
+ 		$linefield .= $line;
+ 		$lineorder .=$linefield;  
+ 	}  
+ 	
+  	my $strsth;
+  	$strsth .= "select distinctrow $linefield from aqorders, aqbasket,aqorderbreakdown left join aqorderdelivery on (aqorders.ordernumber =aqorderdelivery.ordernumber ) left join aqbooksellers on (aqbasket.booksellerid=aqbooksellers.id) where (aqorders.basketno=aqbasket.basketno) and (aqorderbreakdown.ordernumber=aqorders.ordernumber) and $line is not null ";
+ 	
+ 	if ( @linefilter ) {
+ 		if ($linefilter[1]){
+ 			if ($linefilter[0]){
+ 				$strsth .= " and $line between ? and ? " ;
+ 			} else {
+ 				$strsth .= " and $line < ? " ;
+ 			}
+ 		} elsif (($linefilter[0]) and (($line=~/closedate/) or ($line=~/received/))){
+  			$strsth .= " and $line > ? " ;
+ 		} elsif ($linefilter[0]) {
+ 			$linefilter[0] =~ s/\*/%/g;
+  			$strsth .= " and $line LIKE ? " ;
+  		}
+  	}
+ 	$strsth .=" group by $linefield";
+ 	$strsth .=" order by $lineorder";
+ 	warn "". $strsth;
+ 	
+ 	my $sth = $dbh->prepare( $strsth );
+ 	if (( @linefilter ) and ($linefilter[1])){
+ 		$sth->execute("'".$linefilter[0]."'","'".$linefilter[1]."'");
+ 	} elsif ($linefilter[0]) {
+ 		$sth->execute($linefilter[0]);
+ 	} else {
+ 		$sth->execute;
+ 	}
+ 	
+  	while ( my ($celvalue) = $sth->fetchrow) {
+  		my %cell;
+ 		if ($celvalue) {
+ 			$cell{rowtitle} = $celvalue;
+ #		} else {
+ #			$cell{rowtitle} = "";
+ 		}
+  		$cell{totalrow} = 0;
+ 		push @loopline, \%cell;
+  	}
  
  warn "line=$line, podsp=$podsp, rodsp=$rodsp, aodsp=$aodsp\n";
***************
*** 396,590 ****
  warn "column=$column, podsp=$podsp, rodsp=$rodsp, aodsp=$aodsp\n";
  # 2nd, loop cols.
!         my $colfield;
!         if (($column =~/closedate/) and ($podsp == 1)) {
!                 #Display by day
!                 $colfield .="dayname($column)";
!         } elsif (($column=~/closedate/) and ($podsp == 2)) {
!                 #Display by Month
!                 $colfield .="monthname($column)";
!         } elsif (($column=~/closedate/) and ($podsp == 3)) {
!                 #Display by Year
!                 $colfield .="Year($column)";
! 
!         } elsif (($column =~/deliverydate/) and ($rodsp == 1)) {
!                 #Display by day
!                 $colfield .="dayname($column)";
!         } elsif (($column=~/deliverydate/) and ($rodsp == 2)) {
!                 #Display by Month
!                 $colfield .="monthname($column)";
!         } elsif (($column=~/deliverydate/) and ($rodsp == 3)) {
!                 #Display by Year
!                 $colfield .="Year($column)";
! 
!         } elsif (($column =~/dateaccessioned/) and ($aodsp == 1)) {
!                 #Display by day
!                 $colfield .="dayname($column)";
!         } elsif (($column=~/dateaccessioned/) and ($aodsp == 2)) {
!                 #Display by Month
!                 $colfield .="monthname($column)";
!         } elsif (($column=~/dateaccessioned/) and ($aodsp == 3)) {
!                 #Display by Year
!                 $colfield .="Year($column)";
! 
!         } else {
!                 $colfield .= $column;
!         }
! 
!         my $strsth2;
!         $strsth2 .= "SELECT distinctrow $colfield FROM aqorders, aqbasket,aqorderbreakdown
!                  LEFT JOIN items ON (aqorders.biblioitemnumber= items.biblioitemnumber)
!                  LEFT JOIN biblioitems ON (aqorders.biblioitemnumber= biblioitems.biblioitemnumber)
!                  LEFT JOIN aqorderdelivery ON (aqorders.ordernumber =aqorderdelivery.ordernumber )
!                  LEFT JOIN aqbooksellers ON (aqbasket.booksellerid=aqbooksellers.id)
!                  WHERE (aqorders.basketno=aqbasket.basketno) AND (aqorderbreakdown.ordernumber=aqorders.ordernumber)
!                  AND $column IS NOT NULL";
! 
!         if ( @colfilter ) {
!                 if ($colfilter[1]){
!                         if ($colfilter[0]){
!                                 $strsth2 .= " AND $column BETWEEN  ? AND ? " ;
!                         } else {
!                                 $strsth2 .= " AND $column < ? " ;
!                         }
!                 } elsif (($colfilter[0]) and (($column=~/closedate/) or ($line=~/received/) or ($line=~/acquired/))){
!                         $strsth2 .= " AND $column > ? " ;
!                 } elsif ($colfilter[0]) {
!                         $colfilter[0] =~ s/\*/%/g;
!                         $strsth2 .= " AND $column LIKE ? " ;
!                 }
!         }
!         $strsth2 .=" GROUP BY $colfield";
!         $strsth2 .=" ORDER BY $colfield";
! #        warn "MASON:. $strsth2";
! 
!         my $sth2 = $dbh->prepare( $strsth2 );
!         if (( @colfilter ) and ($colfilter[1])){
! #                warn "from : ".$colfilter[0]." To  :".$colfilter[1];
!                 $sth2->execute("'".$colfilter[0]."'","'".$colfilter[1]."'");
!         } elsif ($colfilter[0]) {
!                 $sth2->execute($colfilter[0]);
!         } else {
!                 $sth2->execute;
!         }
! 
!         while (my ($celvalue) = $sth2->fetchrow) {
!                 my %cell;
!                 if ($celvalue){
! #               warn "coltitle :".$celvalue;
!                         $cell{coltitle} = $celvalue;
!                 }
!                 push @loopcol, \%cell;
!         }
! #       warn "fin des titres colonnes";
! 
!         my $i=0;
!         my @totalcol;
!         my $hilighted=-1;
! 
!         #Initialization of cell values.....
!         my %table;
! #       warn "init table";
!         foreach my $row ( @loopline ) {
!                 foreach my $col ( @loopcol ) {
! #                       warn " init table : $row->{rowtitle} / $col->{coltitle} ";
!                         $table{$row->{rowtitle}}->{$col->{coltitle}}=0;
!                 }
!                 $table{$row->{rowtitle}}->{totalrow}=0;
!         }
  
  # preparing calculation
!         my $strcalc ;
!         $strcalc .= "SELECT $linefield, $colfield, ";
!         $strcalc .= "COUNT( aqorders.ordernumber ) " if ($process ==1);
!         $strcalc .= "SUM( aqorders.quantity * aqorders.listprice ) " if ($process ==2);
!         $strcalc .= "FROM aqorders, aqbasket,aqorderbreakdown
!                  LEFT JOIN items ON (aqorders.biblioitemnumber= items.biblioitemnumber)
!                  LEFT JOIN biblioitems ON (aqorders.biblioitemnumber= biblioitems.biblioitemnumber)
!                  LEFT JOIN aqorderdelivery ON (aqorders.ordernumber =aqorderdelivery.ordernumber )
!                  LEFT JOIN aqbooksellers ON (aqbasket.booksellerid=aqbooksellers.id) WHERE (aqorders.basketno=aqbasket.basketno)
!                       AND (aqorderbreakdown.ordernumber=aqorders.ordernumber) ";
! 
!         @$filters[0]=~ s/\*/%/g if (@$filters[0]);
!         $strcalc .= " AND aqbasket.closedate > '" . @$filters[0] ."'" if ( @$filters[0] );
!         @$filters[1]=~ s/\*/%/g if (@$filters[1]);
!         $strcalc .= " AND aqbasket.closedate < '" . @$filters[1] ."'" if ( @$filters[1] );
!         @$filters[2]=~ s/\*/%/g if (@$filters[2]);
!         $strcalc .= " AND aqorderdelivery.deliverydate > '" . @$filters[2] ."'" if ( @$filters[2] );
!         @$filters[3]=~ s/\*/%/g if (@$filters[3]);
!         $strcalc .= " AND aqorderdelivery.deliverydate < '" . @$filters[3] ."'" if ( @$filters[3] );
!         @$filters[4]=~ s/\*/%/g if (@$filters[4]);
!         $strcalc .= " AND aqbasket.closedate > '" . @$filters[4] ."'" if ( @$filters[4] );
!         @$filters[5]=~ s/\*/%/g if (@$filters[5]);
!         $strcalc .= " AND aqbasket.closedate < '" . @$filters[5] ."'" if ( @$filters[5] );
!         @$filters[6]=~ s/\*/%/g if (@$filters[6]);
!         $strcalc .= " AND aqbooksellers.name LIKE '" . @$filters[6] ."'" if ( @$filters[6] );
!         @$filters[7]=~ s/\*/%/g if (@$filters[7]);
!         $strcalc .= " AND biblioitems.itemtype LIKE '" . @$filters[7] ."'" if ( @$filters[7] );
!         @$filters[8]=~ s/\*/%/g if (@$filters[8]);
!         $strcalc .= " AND aqbookfund.bookfundid LIKE '" . @$filters[8] ."'" if ( @$filters[8] );
!         @$filters[9]=~ s/\*/%/g if (@$filters[9]);
!         $strcalc .= " AND aqorders.sort1 LIKE '" . @$filters[9] ."'" if ( @$filters[9] );
!         @$filters[10]=~ s/\*/%/g if (@$filters[10]);
!         $strcalc .= " AND aqorders.sort2 LIKE '" . @$filters[10] ."'" if ( @$filters[10] );
!         $strcalc .= " GROUP BY $linefield, $colfield ORDER BY $linefield,$colfield";
! #        warn "/n/n". $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;
!                 #@loopcol 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' => \@loopcell,
!                                                 '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};
!         }
! 
! 
!         # the header of the table
! #        $globalline{loopfilter}=\@loopfilter;
!         # the core of the table
!         $globalline{looprow} = \@looprow;
!         $globalline{loopcol} = \@loopcol;
! #       # the foot (totals by borrower type)
!         $globalline{loopfooter} = \@loopfooter;
!         $globalline{total}= $grantotal;
!         $globalline{line} = $line;
!         $globalline{column} = $column;
!         push @mainloop,\%globalline;
!         return \@mainloop;
  }
  
--- 469,642 ----
  warn "column=$column, podsp=$podsp, rodsp=$rodsp, aodsp=$aodsp\n";
  # 2nd, loop cols.
! 	my $colfield;
! 	my $colorder;
! 	if (($column =~/closedate/) and ($podsp == 1)) {
! 		#Display by day
! 		$colfield .="dayname($column)";
! 		$colorder .="weekday($column)";
! 	} elsif (($column=~/closedate/) and ($podsp == 2)) {
! 		#Display by Month
! 		$colfield .="monthname($column)";  
! 		$colorder .="month($column)";
! 	} elsif (($column=~/closedate/) and ($podsp == 3)) {
! 		#Display by Year
! 		$colfield .="Year($column)";
! 		$colorder .= $colfield;
! 	} elsif (($column =~/received/) and ($rodsp == 1)) {
! 		#Display by day
! 		$colfield .="dayname($column)";  
! 		$colorder .="weekday($column)";
! 	} elsif (($column=~/received/) and ($rodsp == 2)) {
! 		#Display by Month
! 		$colfield .="monthname($column)";  
! 		$colorder .="month($column)";
! 	} elsif (($column=~/received/) and ($rodsp == 3)) {
! 		#Display by Year
! 		$colfield .="Year($column)";
! 		$colorder .= $colfield;
! 	} else {
! 		$colfield .= $column;
! 		$colorder .= $colfield;
! 	}  
! 	
!  	my $strsth2;
!  	$strsth2 .= "select distinctrow $colfield from aqorders, aqbasket,aqorderbreakdown left join aqorderdelivery on (aqorders.ordernumber =aqorderdelivery.ordernumber ) left join aqbooksellers on (aqbasket.booksellerid=aqbooksellers.id) where (aqorders.basketno=aqbasket.basketno) and (aqorderbreakdown.ordernumber=aqorders.ordernumber) and $column is not null ";
! 	
! 	if ( @colfilter ) {
! 		if ($colfilter[1]){
! 			if ($colfilter[0]){
! 				$strsth2 .= " and $column between ? and ? " ;
! 			} else {
! 				$strsth2 .= " and $column < ? " ;
! 			}
! 		} elsif (($colfilter[0]) and (($column=~/closedate/) or ($column=~/received/))){
!  			$strsth2 .= " and $column > ? " ;
! 		} elsif ($colfilter[0]) {
! 			$colfilter[0] =~ s/\*/%/g;
!  			$strsth2 .= " and $column LIKE ? " ;
!  		}
!  	}
! 	$strsth2 .=" group by $colfield";
! 	$strsth2 .=" order by $colorder";
!  	warn "". $strsth2;
! 	
! 	my $sth2 = $dbh->prepare( $strsth2 );
! 	if (( @colfilter ) and ($colfilter[1])){
! 		warn "from : ".$colfilter[0]." To  :".$colfilter[1];
! 		$sth2->execute("'".$colfilter[0]."'","'".$colfilter[1]."'");
! 	} elsif ($colfilter[0]) {
! 		$sth2->execute($colfilter[0]);
! 	} else {
! 		$sth2->execute;
! 	}
! 
!  	while (my ($celvalue) = $sth2->fetchrow) {
!  		my %cell;
! 		if ($celvalue){
! #		warn "coltitle :".$celvalue;
! 			$cell{coltitle} = $celvalue;
! 		}
! 		push @loopcol, \%cell;
!  	}
! #	warn "fin des titres colonnes";
! 
! 	my $i=0;
! 	my @totalcol;
! 	my $hilighted=-1;
! 	
! 	#Initialization of cell values.....
! 	my %table;
! #	warn "init table";
! 	foreach my $row ( @loopline ) {
! 		foreach my $col ( @loopcol ) {
! #			warn " init table : $row->{rowtitle} / $col->{coltitle} ";
! 			$table{$row->{rowtitle}}->{$col->{coltitle}}=0;
! 		}
! 		$table{$row->{rowtitle}}->{totalrow}=0;
! 	}
  
  # preparing calculation
! 	my $strcalc ;
! 	$strcalc .= "SELECT $linefield, $colfield, ";
! 	$strcalc .= "COUNT( aqorders.ordernumber ) " if ($process ==1);
! 	$strcalc .= "SUM( aqorders.quantity * aqorders.listprice ) " if ($process ==2);
! 	$strcalc .= "FROM aqorders, aqbasket,aqorderbreakdown left join aqorderdelivery on (aqorders.ordernumber =aqorderdelivery.ordernumber ) left join aqbooksellers on (aqbasket.booksellerid=aqbooksellers.id) where (aqorders.basketno=aqbasket.basketno) and (aqorderbreakdown.ordernumber=aqorders.ordernumber) ";
! 
! 	@$filters[0]=~ s/\*/%/g if (@$filters[0]);
! 	$strcalc .= " AND aqbasket.closedate > '" . @$filters[0] ."'" if ( @$filters[0] );
! 	@$filters[1]=~ s/\*/%/g if (@$filters[1]);
! 	$strcalc .= " AND aqbasket.closedate < '" . @$filters[1] ."'" if ( @$filters[1] );
! 	@$filters[2]=~ s/\*/%/g if (@$filters[2]);
! 	$strcalc .= " AND aqorderdelivery.deliverydate > '" . @$filters[2] ."'" if ( @$filters[2] );
! 	@$filters[3]=~ s/\*/%/g if (@$filters[3]);
! 	$strcalc .= " AND aqorderdelivery.deliverydate < '" . @$filters[3] ."'" if ( @$filters[3] );
! 	@$filters[4]=~ s/\*/%/g if (@$filters[4]);
! 	$strcalc .= " AND aqbooksellers.name like '" . @$filters[4] ."'" if ( @$filters[4] );
! 	@$filters[5]=~ s/\*/%/g if (@$filters[5]);
! 	$strcalc .= " AND aqbookfund.bookfundid like '" . @$filters[5] ."'" if ( @$filters[5] );
! 	@$filters[6]=~ s/\*/%/g if (@$filters[6]);
! 	$strcalc .= " AND aqorders.sort1 like '" . @$filters[6] ."'" if ( @$filters[6] );
! 	@$filters[7]=~ s/\*/%/g if (@$filters[7]);
! 	$strcalc .= " AND aqorders.sort2 like '" . @$filters[7] ."'" if ( @$filters[7] );
! 	$strcalc .= " group by $linefield, $colfield order by $lineorder,$colorder";
! 	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;
! 		#@loopcol 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' => \@loopcell,
! 						'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};
! 	}
! 			
! 
! 	# the header of the table
! 	$globalline{loopfilter}=\@loopfilter;
! 	# the core of the table
! 	$globalline{looprow} = \@looprow;
! 	$globalline{loopcol} = \@loopcol;
! # 	# the foot (totals by borrower type)
! 	$globalline{loopfooter} = \@loopfooter;
! 	$globalline{total}= $grantotal;
! 	$globalline{line} = $line;
! 	$globalline{column} = $column;
! 	push @mainloop,\%globalline;
! 	return \@mainloop;
  }
  

Index: borrowers_stats.pl
===================================================================
RCS file: /cvsroot/koha/koha/reports/borrowers_stats.pl,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** borrowers_stats.pl	4 May 2005 09:02:38 -0000	1.8
--- borrowers_stats.pl	26 Oct 2005 09:13:37 -0000	1.9
***************
*** 28,31 ****
--- 28,32 ----
  use C4::Output;
  use C4::Koha;
+ use C4::Acquisition;
  use C4::Interface::CGI::Output;
  use C4::Circulation::Circ2;
***************
*** 122,125 ****
--- 123,142 ----
  				-multiple => 0 );
  	
+ 	my @branches;
+ 	my @select_branch;
+ 	my %select_branches;
+ 	my ($count2, at branches)=branches();
+ 	push @select_branch,"";
+ 	$select_branches{''}='';
+ 	for (my $i=0;$i<$count2;$i++){
+ 			push @select_branch, $branches[$i]->{'branchcode'};#
+ 			$select_branches{$branches[$i]->{'branchcode'}} = $branches[$i]->{'branchname'};
+ 	}
+ 	my $CGIbranch=CGI::scrolling_list( -name     => 'pickup',
+ 							-values   => \@select_branch,
+ 							-labels   => \%select_branches,
+ 							-size     => 1,
+ 							-multiple => 0 );
+ 	
  	$req = $dbh->prepare( "select distinctrow sort1 from borrowers order by sort1");
  	$req->execute;
***************
*** 181,185 ****
  					hassort2 => $hassort2,
  					CGIextChoice => $CGIextChoice,
! 					CGIsepChoice => $CGIsepChoice
  					);
  
--- 198,203 ----
  					hassort2 => $hassort2,
  					CGIextChoice => $CGIextChoice,
! 					CGIsepChoice => $CGIsepChoice,
! 					CGIBranch => $CGIbranch
  					);
  
***************
*** 210,221 ****
   	$linefilter = @$filters[0] if ($line =~ /categorycode/ )  ;
   	$linefilter = @$filters[1] if ($line =~ /zipcode/ )  ;
!  	$linefilter = @$filters[2] if ($line =~ /sort1/ ) ;
!  	$linefilter = @$filters[3] if ($line =~ /sort2/ ) ;
  # 
   	my $colfilter = "";
   	$colfilter = @$filters[0] if ($column =~ /categorycode/);
   	$colfilter = @$filters[1] if ($column =~ /zipcode/);
!  	$colfilter = @$filters[2] if ($column =~ /sort1/);
!  	$colfilter = @$filters[3] if ($column =~ /sort2/);
  
  	my @loopfilter;
--- 228,241 ----
   	$linefilter = @$filters[0] if ($line =~ /categorycode/ )  ;
   	$linefilter = @$filters[1] if ($line =~ /zipcode/ )  ;
!  	$linefilter = @$filters[2] if ($line =~ /branccode/ ) ;
!  	$linefilter = @$filters[3] if ($line =~ /sort1/ ) ;
!  	$linefilter = @$filters[4] if ($line =~ /sort2/ ) ;
  # 
   	my $colfilter = "";
   	$colfilter = @$filters[0] if ($column =~ /categorycode/);
   	$colfilter = @$filters[1] if ($column =~ /zipcode/);
!  	$colfilter = @$filters[2] if ($column =~ /branchcode/);
!  	$colfilter = @$filters[3] if ($column =~ /sort1/);
!  	$colfilter = @$filters[4] if ($column =~ /sort2/);
  
  	my @loopfilter;
***************
*** 226,231 ****
  			$cell{crit} .="Cat Code " if ($i==0);
  			$cell{crit} .="Zip Code" if ($i==1);
! 			$cell{crit} .="Sort1" if ($i==2);
! 			$cell{crit} .="Sort2" if ($i==3);
  			push @loopfilter, \%cell;
  		}
--- 246,252 ----
  			$cell{crit} .="Cat Code " if ($i==0);
  			$cell{crit} .="Zip Code" if ($i==1);
! 			$cell{crit} .="Branchcode" if ($i==2);
! 			$cell{crit} .="Sort1" if ($i==3);
! 			$cell{crit} .="Sort2" if ($i==4);
  			push @loopfilter, \%cell;
  		}

Index: catalogue_stats.pl
===================================================================
RCS file: /cvsroot/koha/koha/reports/catalogue_stats.pl,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -r1.14 -r1.15
*** catalogue_stats.pl	9 Aug 2005 12:06:46 -0000	1.14
--- catalogue_stats.pl	26 Oct 2005 09:13:37 -0000	1.15
***************
*** 221,225 ****
  	undef @select;
  	push @select,"";
! 	my $CGIholdingbranch=CGI::scrolling_list( -name     => 'Filter',
  				-id => 'holdingbranch',
  				-values   => \@select,
--- 221,225 ----
  	undef @select;
  	push @select,"";
! 	my $CGIlocation=CGI::scrolling_list( -name     => 'Filter',
  				-id => 'holdingbranch',
  				-values   => \@select,
***************
*** 333,338 ****
   	$linefilter[0] = @$filters[8] if ($line =~ /publicationyear/ ) ;
   	$linefilter[1] = @$filters[9] if ($line =~ /publicationyear/ ) ;
!  	$linefilter[0] = @$filters[10] if ($line =~ /items.homebranch/ ) ;
!  	$linefilter[0] = @$filters[11] if ($line =~ /items.holdingbranch/ ) ;
  # 
   	my @colfilter ;
--- 333,338 ----
   	$linefilter[0] = @$filters[8] if ($line =~ /publicationyear/ ) ;
   	$linefilter[1] = @$filters[9] if ($line =~ /publicationyear/ ) ;
!  	@linefilter[0] = @$filters[10] if ($line =~ /items.homebranch/ ) ;
!  	@linefilter[0] = @$filters[11] if ($line =~ /items.holdingbranch/ ) ;
  # 
   	my @colfilter ;
***************
*** 347,352 ****
   	$colfilter[0] = @$filters[8] if ($column =~ /publicationyear/ ) ;
   	$colfilter[1] = @$filters[9] if ($column =~ /publicationyear/ ) ;
!  	$colfilter[0] = @$filters[10] if ($column =~ /items.homebranch/ ) ;
!  	$colfilter[0] = @$filters[11] if ($column =~ /items.holdingbranch/ ) ;
  
  # 1st, loop rows.
--- 347,352 ----
   	$colfilter[0] = @$filters[8] if ($column =~ /publicationyear/ ) ;
   	$colfilter[1] = @$filters[9] if ($column =~ /publicationyear/ ) ;
!  	@colfilter[0] = @$filters[10] if ($column =~ /items.homebranch/ ) ;
!  	@colfilter[0] = @$filters[11] if ($column =~ /items.holdingbranch/ ) ;
  
  # 1st, loop rows.
***************
*** 507,511 ****
  	if (@$filters[11]){
  		@$filters[11]=~ s/\*/%/g;
! 		$strcalc .= " AND items.holdingbranch like '" . @$filters[11] ."'" if ( @$filters[11] );
  	}
  	
--- 507,515 ----
  	if (@$filters[11]){
  		@$filters[11]=~ s/\*/%/g;
! 		if ($cond){
! 			$strcalc .= " AND items.holdingbranch like '" . @$filters[11] ."'" if ( @$filters[11] );
! 		} else {
! 			$strcalc .= " WHERE items.holdingbranch like '" . @$filters[11] ."'" if ( @$filters[11] );
! 		}
  	}
  	

Index: issues_by_borrower_category.plugin
===================================================================
RCS file: /cvsroot/koha/koha/reports/issues_by_borrower_category.plugin,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** issues_by_borrower_category.plugin	19 Feb 2005 17:31:42 -0000	1.3
--- issues_by_borrower_category.plugin	26 Oct 2005 09:13:37 -0000	1.4
***************
*** 101,111 ****
  	}
  # now, parse each category. Before filling the result array, fill it with 0 to have every itemtype column.
! 	my $sth = $dbh->prepare("SELECT itemtype, count( * )
  				FROM issues, borrowers, biblioitems, items
  				WHERE issues.borrowernumber = borrowers.borrowernumber 
  					AND items.itemnumber = issues.itemnumber 
  					AND biblioitems.biblionumber = items.biblionumber 
! 					AND borrowers.categorycode = ?
! 				GROUP BY biblioitems.itemtype");
  	my $sthcategories = $dbh->prepare("select categorycode,description from categories");
  	$sthcategories->execute;
--- 101,113 ----
  	}
  # now, parse each category. Before filling the result array, fill it with 0 to have every itemtype column.
! 	my $strsth="SELECT itemtype, count( * )
  				FROM issues, borrowers, biblioitems, items
  				WHERE issues.borrowernumber = borrowers.borrowernumber 
  					AND items.itemnumber = issues.itemnumber 
  					AND biblioitems.biblionumber = items.biblionumber 
! 					AND borrowers.categorycode = ?";
! 	$strsth.= " AND borrowers.branchcode = ".$dbh->quote($branch) if ($branch);
! 	$strsth .= " GROUP BY biblioitems.itemtype";
! 	my $sth = $dbh->prepare($strsth);
  	my $sthcategories = $dbh->prepare("select categorycode,description from categories");
  	$sthcategories->execute;

Index: issues_stats.pl
===================================================================
RCS file: /cvsroot/koha/koha/reports/issues_stats.pl,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -r1.9 -r1.10
*** issues_stats.pl	20 Jul 2005 09:52:31 -0000	1.9
--- issues_stats.pl	26 Oct 2005 09:13:37 -0000	1.10
***************
*** 454,461 ****
  	}
  	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) ";
--- 454,464 ----
  	}
  	if ($process ==3){
+ 		$strcalc .= "(COUNT(DISTINCT itemnumber))" ;
+ 	}
+ 	if ($process ==4){
  		my $rqbookcount = $dbh->prepare("SELECT count(*) FROM items");
  		$rqbookcount->execute;
  		my ($bookcount) = $rqbookcount->fetchrow;
! 		$strcalc .= "100*(COUNT(DISTINCT itemnumber))/ $bookcount " ;
  	}
  	$strcalc .= "FROM statistics,borrowers where (statistics.borrowernumber=borrowers.borrowernumber) ";





More information about the Koha-cvs mailing list