X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=sidebyside;f=reports%2Fissues_stats.pl;h=b0fc72cbc89ed0df575ae07267def6ca4b4275e0;hb=0e936ce22062910f1a52f6452d2a1b06e46ff001;hp=4b2acfff9e740787b5057a520b39bf050bfe8b2e;hpb=98bc024609b97f870a710ddca9e77d6dee66a4e2;p=koha.git diff --git a/reports/issues_stats.pl b/reports/issues_stats.pl index 4b2acfff9e..b0fc72cbc8 100755 --- a/reports/issues_stats.pl +++ b/reports/issues_stats.pl @@ -1,6 +1,5 @@ #!/usr/bin/perl - # Copyright 2000-2002 Katipo Communications # # This file is part of Koha. @@ -14,556 +13,513 @@ # 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 warnings; FIXME - Bug 2505 + use CGI; +use Date::Manip; + +use C4::Auth; +use C4::Debug; use C4::Context; use C4::Branch; # GetBranches use C4::Koha; use C4::Output; use C4::Circulation; +use C4::Reports; use C4::Dates qw/format_date format_date_in_iso/; -use Date::Manip; +use C4::Members; =head1 NAME -plugin that shows a stats on borrowers +reports/issues_stats.pl =head1 DESCRIPTION -=over 2 +Plugin that shows circulation stats =cut -my $debug = 1; +# my $debug = 1; # override for now. my $input = new CGI; -my $do_it=$input->param('do_it'); -my $fullreportname = "reports/issues_stats.tmpl"; -my $line = $input->param("Line"); -my $column = $input->param("Column"); -my @filters = $input->param("Filter"); +my $fullreportname = "reports/issues_stats.tt"; +my $do_it = $input->param('do_it'); +my $line = $input->param("Line"); +my $column = $input->param("Column"); +my @filters = $input->param("Filter"); $filters[0]=format_date_in_iso($filters[0]); $filters[1]=format_date_in_iso($filters[1]); -my $podsp = $input->param("DisplayBy"); -my $type = $input->param("PeriodTypeSel"); -my $daysel = $input->param("PeriodDaySel"); +my $podsp = $input->param("DisplayBy"); +my $type = $input->param("PeriodTypeSel"); +my $daysel = $input->param("PeriodDaySel"); my $monthsel = $input->param("PeriodMonthSel"); -my $calc = $input->param("Cellvalue"); -my $output = $input->param("output"); +my $calc = $input->param("Cellvalue"); +my $output = $input->param("output"); my $basename = $input->param("basename"); -my $mime = $input->param("MIME"); -my $del = $input->param("sep"); -#warn "calcul : ".$calc; -my ($template, $borrowernumber, $cookie) - = get_template_and_user({template_name => $fullreportname, - query => $input, - type => "intranet", - authnotrequired => 0, - flagsrequired => {reports => 1}, - debug => 0, - }); +my ($template, $borrowernumber, $cookie) = get_template_and_user({ + template_name => $fullreportname, + query => $input, + type => "intranet", + authnotrequired => 0, + flagsrequired => {reports => '*'}, + debug => 0, +}); +our $sep = $input->param("sep"); +$sep = "\t" if ($sep eq 'tabulation'); $template->param(do_it => $do_it, - DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(), - ); +); + +my $itemtypes = GetItemTypes(); +my $categoryloop = GetBorrowercategoryList; + +my $ccodes = GetKohaAuthorisedValues("items.ccode"); +my $locations = GetKohaAuthorisedValues("items.location"); + +my $Bsort1 = GetAuthorisedValues("Bsort1"); +my $Bsort2 = GetAuthorisedValues("Bsort2"); +my ($hassort1,$hassort2); +$hassort1=1 if $Bsort1; +$hassort2=1 if $Bsort2; + + if ($do_it) { # Displaying results - my $results = calculate($line, $column, $podsp, $type, $daysel, $monthsel, $calc, \@filters); - if ($output eq "screen"){ + my $results = calculate($line, $column, $podsp, $type, $daysel, $monthsel, $calc, \@filters); + if ($output eq "screen"){ # Printing results to screen - $template->param(mainloop => $results); - output_html_with_http_headers $input, $cookie, $template->output; - exit(1); - } else { + $template->param(mainloop => $results); + output_html_with_http_headers $input, $cookie, $template->output; + } else { # Printing to a csv file print $input->header(-type => 'application/vnd.sun.xml.calc', -encoding => 'utf-8', -attachment=>"$basename.csv", -filename=>"$basename.csv" ); - my $cols = @$results[0]->{loopcol}; - my $lines = @$results[0]->{looprow}; - my $sep; - $sep =C4::Context->preference("delimiter"); + my $cols = @$results[0]->{loopcol}; + my $lines = @$results[0]->{looprow}; # header top-right - print @$results[0]->{line} ."/". @$results[0]->{column} .$sep; + print @$results[0]->{line} ."/". @$results[0]->{column} .$sep; # Other header - foreach my $col ( @$cols ) { - print $col->{coltitle}.$sep; - } - print "Total\n"; + foreach my $col ( @$cols ) { + print $col->{coltitle}.$sep; + } + print "Total\n"; # Table - foreach my $line ( @$lines ) { - my $x = $line->{loopcell}; - print $line->{rowtitle}.$sep; - foreach my $cell (@$x) { - print $cell->{value}.$sep; - } - print $line->{totalrow}; - print "\n"; - } + foreach my $line ( @$lines ) { + my $x = $line->{loopcell}; + print $line->{rowtitle}.$sep; + print map {$_->{value}.$sep} @$x; + print $line->{totalrow}, "\n"; + } # footer print "TOTAL"; $cols = @$results[0]->{loopfooter}; - foreach my $col ( @$cols ) { - print $sep.$col->{totalcol}; - } + print map {$sep.$_->{totalcol}} @$cols; print $sep.@$results[0]->{total}; - exit(1); - } -# Displaying choices -} else { - my $dbh = C4::Context->dbh; - my @values; - my %labels; - my %select; - my $req; - $req = $dbh->prepare("select distinctrow categorycode,description from categories order by description"); - $req->execute; - my @select; - push @select,""; - $select{""}=""; - while (my ($value, $desc) =$req->fetchrow) { - push @select, $value; - $select{$value}=$desc; - } - my $CGIBorCat=CGI::scrolling_list( -name => 'Filter', - -id => 'borcat', - -values => \@select, - -labels => \%select, - -size => 1, - -multiple => 0 ); - - $req = $dbh->prepare( "select distinctrow itemtype,description from itemtypes order by description"); - $req->execute; - undef @select; - undef %select; - push @select,""; - $select{""}=""; - while (my ($value,$desc) =$req->fetchrow) { - push @select, $value; - $select{$value}=$desc; - } - my $CGIItemTypes=CGI::scrolling_list( -name => 'Filter', - -id => 'itemtype', - -values => \@select, - -labels => \%select, - -size => 1, - -multiple => 0 ); - - my $branches=GetBranches(); - my @branchloop; - foreach (keys %$branches) { - my $thisbranch = ''; - my %row = (branchcode => $_, - selected => ($thisbranch eq $_ ? 1 : 0), - code => $branches->{$_}->{'branchcode'}, - description => $branches->{$_}->{'branchname'}, - ); - push @branchloop, \%row; - } + } + exit; # exit either way after $do_it +} + +my $dbh = C4::Context->dbh; +my @values; +my %labels; +my %select; + +# create itemtype arrayref for