#!/usr/bin/perl
-# $Id$
# Copyright 2000-2002 Katipo Communications
#
# 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
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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::Members;
+
+use C4::Branch; # GetBranches
=head1 NAME
sub set_parameters {
my ($template) = @_;
my $dbh = C4::Context->dbh;
- my $branches=getbranches();
+ my $branches=GetBranches();
my @branches;
my @select_branch;
my %select_branches;
$select_branches{$branch} = $branches->{$branch}->{'branchname'};
}
my $CGIbranch=CGI::scrolling_list( -name => 'value',
- -id => 'value',
+ -id => 'branch',
-values => \@select_branch,
-labels => \%select_branches,
-size => 1,
-multiple => 0 );
$template->param(CGIbranch => $CGIbranch);
+
+ my ($codes,$labels)=GetborCatFromCatType(undef,undef);
+ my @borcatloop;
+ foreach my $thisborcat (sort keys %$labels) {
+ push @borcatloop, {value => $thisborcat,
+ description => $labels->{$thisborcat},
+ };
+ }
+ $template->param(loopcategories => \@borcatloop);
return $template;
}
sub calculate {
$itemtypes{$itemtype}->{total} = 0;
}
# 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( * )
+ 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 = ?
- GROUP BY biblioitems.itemtype");
+ 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;
my %borrowertype;
my @categorycodeloop;
- while (my ($categorycode,$description) = $sthcategories->fetchrow) {
- $borrowertype{$categorycode}->{description} = $description;
- $borrowertype{$categorycode}->{total} = 0;
- my %categorycode;
- $categorycode{categorycode} = $description;
- push @categorycodeloop,\%categorycode;
- foreach my $itemtype (keys %itemtypes) {
- $itemtypes{$itemtype}->{results}->{$categorycode} = 0;
- }
- $sth->execute($categorycode);
- while (my ($itemtype, $total) = $sth->fetchrow) {
- $itemtypes{$itemtype}->{results}->{$categorycode} = $total;
- $borrowertype{$categorycode}->{total} += $total;
- $itemtypes{$itemtype}->{total} += $total;
- }
- }
- my $grantotal = 0;
-# build the result
+ my $categorycode;
+ my $description;
+ my $borrower_categorycode =0;
my @mainloop;
my @itemtypeloop;
my @loopborrowertype;
+ my @loopborrowertotal;
my %globalline;
my $hilighted=-1;
- foreach my $itemtype (keys %itemtypes) {
- my @loopitemtype;
- foreach my $categorycode (keys %{$itemtypes{$itemtype}->{results}}) {
+ my $grantotal =0;
+ #If no Borrower-category selected....
+ # Print all
+ if (!$borrower_category) {
+ while ( ($categorycode,$description) = $sthcategories->fetchrow) {
+ $borrowertype{$categorycode}->{description} = $description;
+ $borrowertype{$categorycode}->{total} = 0;
+ my %categorycode;
+ $categorycode{categorycode} = $description;
+ push @categorycodeloop,\%categorycode;
+ foreach my $itemtype (keys %itemtypes) {
+ $itemtypes{$itemtype}->{results}->{$categorycode} = 0;
+ }
+ $sth->execute($categorycode);
+ while (my ($itemtype, $total) = $sth->fetchrow) {
+ $itemtypes{$itemtype}->{results}->{$categorycode} = $total;
+ $borrowertype{$categorycode}->{total} += $total;
+ $itemtypes{$itemtype}->{total} += $total;
+ $grantotal += $total;
+ }
+ }
+ # build the result
+ foreach my $itemtype (keys %itemtypes) {
+ my @loopitemtype;
+ $sthcategories->execute;
+ while (($categorycode,$description) = $sthcategories->fetchrow ) {
+ my %cell;
+ $cell{issues} = $itemtypes{$itemtype}->{results}->{$categorycode};
+ #printf stderr "%s ",$categorycode;
+ push @loopitemtype,\%cell;
+ }
+ #printf stderr "\n";
+ my %line;
+ $line{loopitemtype} = \@loopitemtype;
+ if ($itemtypes{$itemtype}->{description}) {
+ $line{itemtype} = $itemtypes{$itemtype}->{description};
+ } else {
+ $line{itemtype} = "$itemtype (no entry in itemtype table)";
+ }
+ $line{hilighted} = 1 if $hilighted eq 1;
+ $line{totalitemtype} = $itemtypes{$itemtype}->{total};
+ $hilighted = -$hilighted;
+ push @loopborrowertype, \%line;
+ }
+ $sthcategories->execute;
+ while (($categorycode,$description) = $sthcategories->fetchrow ) {
+ my %line;
+ $line{issues} = $borrowertype{$categorycode}->{total};
+ push @loopborrowertotal, \%line;
+ }
+ } else {
+ # A Borrower_category has been selected
+ # extracting corresponding data
+ $borrowertype{$categorycode}->{description} = $borrower_category;
+ $borrowertype{$categorycode}->{total} = 0;
+ while (($categorycode,$description) = $sthcategories->fetchrow) {
+ if ($description =~ /$borrower_category/ ) {
+ $borrower_categorycode = $categorycode;
+ my %cc;
+ $cc{categorycode} = $description;
+ push @categorycodeloop,\%cc;
+ foreach my $itemtype (keys %itemtypes) {
+ $itemtypes{$itemtype}->{results}->{$categorycode} = 0;
+ }
+ $sth->execute($categorycode);
+ while (my ($itemtype, $total) = $sth->fetchrow) {
+ $itemtypes{$itemtype}->{results}->{$categorycode} = $total;
+ $borrowertype{$categorycode}->{total} += $total;
+ $itemtypes{$itemtype}->{total} += $total;
+ $grantotal +=$total;
+ }
+ }
+ }
+ # build the result
+ foreach my $itemtype (keys %itemtypes) {
+ my @loopitemtype;
my %cell;
- $cell{issues} = $itemtypes{$itemtype}->{results}->{$categorycode};
- push @loopitemtype,\%cell;
+ $cell{issues}=$itemtypes{$itemtype}->{results}->{$borrower_categorycode};
+ push @loopitemtype, \%cell;
+ my %line;
+ $line{loopitemtype} = \@loopitemtype;
+ if ($itemtypes{$itemtype}->{description}) {
+ $line{itemtype} = $itemtypes{$itemtype}->{description};
+ } else {
+ $line{itemtype} = "$itemtype (no entry in itemtype table)";
+ }
+ $line{hilighted} = 1 if $hilighted eq 1;
+ $line{totalitemtype} = $itemtypes{$itemtype}->{total};
+ $hilighted = -$hilighted;
+ push @loopborrowertype, \%line;
}
- my %line;
- $line{loopitemtype} = \@loopitemtype;
- $line{itemtype} = $itemtypes{$itemtype}->{description};
- $line{hilighted} = 1 if $hilighted eq 1;
- $line{totalitemtype} = $itemtypes{$itemtype}->{total};
- $hilighted = -$hilighted;
- push @loopborrowertype, \%line;
+ my %cell;
+ $cell{issues} = $borrowertype{$borrower_categorycode}->{total};
+ push @loopborrowertotal, \%cell;
}
# the header of the table
$globalline{loopborrowertype} = \@loopborrowertype;
# the core of the table
$globalline{categorycodeloop} = \@categorycodeloop;
# the foot (totals by borrower type)
- my @loopborrowertotal;
- foreach my $categorycode (keys %borrowertype) {
- my %line;
- $line{issues} = $borrowertype{$categorycode}->{total};
- push @loopborrowertotal, \%line;
- }
$globalline{loopborrowertotal} = \@loopborrowertotal;
-# $globalline{total} = $grantotal;
-# $globalline{borrower_category} = $borrower_category;
+ $globalline{grantotal}= $grantotal;
push @mainloop,\%globalline;
return \@mainloop;
}
-1;
\ No newline at end of file
+1;