[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] CVS: koha/reports issues_by_borrower_category.plugin,NONE,1.1
From: |
Paul POULAIN |
Subject: |
[Koha-cvs] CVS: koha/reports issues_by_borrower_category.plugin,NONE,1.1 itemtypes.plugin,NONE,1.1 manager.pl,NONE,1.1 |
Date: |
Tue, 30 Mar 2004 08:09:06 -0800 |
Update of /cvsroot/koha/koha/reports
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26999/reports
Added Files:
issues_by_borrower_category.plugin itemtypes.plugin manager.pl
Log Message:
NEW :
template for report writing.
with 2 nice reports.
pls test.
documentation of the template syntax coming soon
--- NEW FILE ---
#!/usr/bin/perl
# $Id: issues_by_borrower_category.plugin,v 1.1 2004/03/30 16:09:04 tipaul Exp $
# 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 C4::Auth;
use CGI;
use C4::Context;
use HTML::Template;
use C4::Search;
use C4::Output;
use C4::Koha;
=head1 NAME
plugin that shows a table with issues for categories and borrower
=head1 DESCRIPTION
this result is quite complex to build...
the 2D array contains :
* item types on lines
* borrowers types on rows
If no issues are done, the array must be filled by 0 anyway.
So, the script works as this :
1- parse the itemtype table to get itemtype descriptions and set itemtype total
to 0
2- for each borrower category :
** create an array with total = 0 for each itemtype defined in 1
** calculate the total for each itemtype (SQL request)
The big hash has the following structure :
$itemtypes{itemtype}
->{results}
->{borrowercategorycode} => the total of issues for each cell
of the table.
->{total} => the total for the itemtype
->{description} => the itemtype description
the borrowertype hash contains description and total for each borrowercategory.
the hashes are then translated to hash / arrays to be returned to manager.pl &
send to the template
=over2
=cut
sub set_parameters {
my ($template) = @_;
my $dbh = C4::Context->dbh;
my $branches=getbranches();
my @branches;
my @select_branch;
my %select_branches;
push @select_branch,"";
$select_branches{""} = "";
foreach my $branch (keys %$branches) {
push @select_branch, $branch;
$select_branches{$branch} =
$branches->{$branch}->{'branchname'};
}
my $CGIbranch=CGI::scrolling_list( -name => 'value',
-id => 'value',
-values => address@hidden,
-labels => \%select_branches,
-size => 1,
-multiple => 0 );
$template->param(CGIbranch => $CGIbranch);
return $template;
}
sub calculate {
my ($parameters) = @_;
my @results =();
# extract parameters
my $borrower_category = @$parameters[0];
my $branch = @$parameters[1];
my $dbh = C4::Context->dbh;
# build the SQL query & execute it
# 1st, loop every itemtypes.
my $sth = $dbh->prepare("select itemtype,description from itemtypes");
$sth->execute;
my %itemtypes;
while (my ($itemtype,$description) = $sth->fetchrow) {
$itemtypes{$itemtype}->{description} = $description;
$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( * )
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;
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 @mainloop;
my @itemtypeloop;
my @loopborrowertype;
my %globalline;
my $hilighted=-1;
foreach my $itemtype (keys %itemtypes) {
my @loopitemtype;
foreach my $categorycode (keys
%{$itemtypes{$itemtype}->{results}}) {
my %cell;
$cell{issues} =
$itemtypes{$itemtype}->{results}->{$categorycode};
push @loopitemtype,\%cell;
}
my %line;
$line{loopitemtype} = address@hidden;
$line{itemtype} = $itemtypes{$itemtype}->{description};
$line{hilighted} = 1 if $hilighted eq 1;
$line{totalitemtype} = $itemtypes{$itemtype}->{total};
$hilighted = -$hilighted;
push @loopborrowertype, \%line;
}
# the header of the table
$globalline{loopborrowertype} = address@hidden;
# the core of the table
$globalline{categorycodeloop} = address@hidden;
# 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} = address@hidden;
# $globalline{total} = $grantotal;
# $globalline{borrower_category} = $borrower_category;
push @mainloop,\%globalline;
return address@hidden;
}
1;
--- NEW FILE ---
#!/usr/bin/perl
# $Id: itemtypes.plugin,v 1.1 2004/03/30 16:09:04 tipaul Exp $
# 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 C4::Auth;
use CGI;
use C4::Context;
use HTML::Template;
use C4::Search;
use C4::Output;
use C4::Koha;
=head1
=cut
sub set_parameters {
my ($template) = @_;
my $dbh = C4::Context->dbh;
my $branches=getbranches();
my @branches;
my @select_branch;
my %select_branches;
push @select_branch,"";
$select_branches{""} = "";
foreach my $branch (keys %$branches) {
push @select_branch, $branch;
$select_branches{$branch} =
$branches->{$branch}->{'branchname'};
}
my $CGIbranch=CGI::scrolling_list( -name => 'value',
-id => 'value',
-values => address@hidden,
-labels => \%select_branches,
-size => 1,
-multiple => 0 );
$template->param(CGIbranch => $CGIbranch);
return $template;
}
sub calculate {
my ($parameters) = @_;
my @results =();
my $branch = @$parameters[0];
my $dbh = C4::Context->dbh;
my $sth;
if ($branch) {
$sth = $dbh->prepare("select description, biblioitems.itemtype,
count(*) as total from itemtypes, biblioitems, items
where
biblioitems.itemtype=itemtypes.itemtype
and
items.biblionumber=biblioitems.biblionumber
and
items.holdingbranch=?
group by biblioitems.itemtype");
$sth->execute($branch);
} else {
$sth = $dbh->prepare("select description, biblioitems.itemtype,
count(*) as total from itemtypes, biblioitems where
biblioitems.itemtype=itemtypes.itemtype group by biblioitems.itemtype");
$sth->execute;
}
my ($description,$biblioitems,$total);
my $grantotal = 0;
while (($description,$biblioitems,$total) = $sth->fetchrow) {
my %line;
$line{itemtype} = $description;
$line{count} = $total;
$grantotal += $total;
push @results,\%line;
}
my @mainloop;
my %globalline;
$globalline{loopitemtype} = address@hidden;
$globalline{total} = $grantotal;
$globalline{branch} = $branch;
push @mainloop,\%globalline;
return address@hidden;
}
1;
--- NEW FILE ---
#!/usr/bin/perl
# 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 CGI;
use C4::Auth;
use C4::Context;
use C4::Output;
use C4::Interface::CGI::Output;
use C4::Circulation::Circ2;
use HTML::Template;
my $input = new CGI;
my $report_name=$input->param("report_name");
my $do_it=$input->param('do_it');
my $fullreportname = "reports/".$report_name.".tmpl";
my @values = $input->param("value");
my ($template, $borrowernumber, $cookie)
= get_template_and_user({template_name => $fullreportname,
query => $input,
type => "intranet",
authnotrequired => 0,
flagsrequired => {editcatalogue => 1},
debug => 1,
});
$template->param(do_it => $do_it,
report_name => $report_name);
my $plugin = "./".$report_name.".plugin";
require $plugin;
if ($do_it) {
my $results = calculate(address@hidden);
$template->param(mainloop => $results);
} else {
$template = set_parameters($template);
}
output_html_with_http_headers $input, $cookie, $template->output;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Koha-cvs] CVS: koha/reports issues_by_borrower_category.plugin,NONE,1.1 itemtypes.plugin,NONE,1.1 manager.pl,NONE,1.1,
Paul POULAIN <=
- Prev by Date:
[Koha-cvs] CVS: koha/koha-tmpl/intranet-tmpl/default/en/reports issues_by_borrower_category.tmpl,NONE,1.1 itemtypes.tmpl,NONE,1.1 reports-home.tmpl,1.7,1.8
- Next by Date:
[Koha-cvs] CVS: koha/koha-tmpl/intranet-tmpl/default/en/includes common-style.css,1.11,1.12 reports-top.inc,1.16,1.17
- Previous by thread:
[Koha-cvs] CVS: koha/koha-tmpl/intranet-tmpl/default/en/reports issues_by_borrower_category.tmpl,NONE,1.1 itemtypes.tmpl,NONE,1.1 reports-home.tmpl,1.7,1.8
- Next by thread:
[Koha-cvs] CVS: koha/koha-tmpl/intranet-tmpl/default/en/includes common-style.css,1.11,1.12 reports-top.inc,1.16,1.17
- Index(es):