X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=reports%2Fbor_issues_top.pl;h=84a46a36a2b148e5d4d2ffa415dc197314c127c5;hb=2ecb68346c21bf5fbfb45e502b091aa13e78718a;hp=6ad34955cf33c5258e9ee0acca0b254f907f9f54;hpb=6eb021ab0e113e2b6b897c89475f1eadc7a2c15b;p=koha.git diff --git a/reports/bor_issues_top.pl b/reports/bor_issues_top.pl index 6ad34955cf..84a46a36a2 100755 --- a/reports/bor_issues_top.pl +++ b/reports/bor_issues_top.pl @@ -4,32 +4,34 @@ # # 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 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 3 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. +# 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., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . -use strict; -#use warnings; FIXME - Bug 2505 -use CGI; +use Modern::Perl; + +use CGI qw ( -utf8 ); use C4::Auth; use C4::Output; use C4::Context; -use C4::Branch; # GetBranches use C4::Koha; use C4::Circulation; use C4::Members; use C4::Reports; use C4::Debug; -use C4::Dates qw(format_date format_date_in_iso); + +use Koha::DateUtils; +use Koha::ItemTypes; +use Koha::Patron::Categories; =head1 NAME @@ -37,21 +39,18 @@ plugin that shows a stats on borrowers =head1 DESCRIPTION -=over 2 - =cut -$debug = 1; $debug and open DEBUG, ">/tmp/bor_issues_top.debug.log"; my $input = new CGI; -my $fullreportname = "reports/bor_issues_top.tmpl"; +my $fullreportname = "reports/bor_issues_top.tt"; my $do_it = $input->param('do_it'); my $limit = $input->param("Limit"); my $column = $input->param("Criteria"); -my @filters = $input->param("Filter"); +my @filters = $input->multi_param("Filter"); foreach ( @filters[0..3] ) { - $_ and $_ = format_date_in_iso($_); + $_ and $_ = eval { output_pref( { dt => dt_from_string ( $_ ), dateonly => 1, dateformat => 'iso' }); }; } my $output = $input->param("output"); my $basename = $input->param("basename"); @@ -63,10 +62,9 @@ my ($template, $borrowernumber, $cookie) flagsrequired => {reports => '*'}, debug => 1, }); -our $sep = $input->param("sep"); +our $sep = $input->param("sep") || C4::Context->preference('delimiter') || ','; $sep = "\t" if ($sep eq 'tabulation'); $template->param(do_it => $do_it, - DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(), ); if ($do_it) { # Displaying results @@ -111,41 +109,14 @@ my @values; # here each element returned by map is a hashref, get it? my @mime = ( map { {type =>$_} } (split /[;:]/, 'CSV') ); # FIXME translation my $delims = GetDelimiterChoices; -my $branches = GetBranches; -my @branchloop; -foreach (sort keys %$branches) { -# my $selected = 1 if $thisbranch eq $branch; - my %row = ( value => $_, -# selected => $selected, - branchname => $branches->{$_}->{branchname}, - ); - push @branchloop, \%row; -} -my $itemtypes = GetItemTypes; -my @itemtypeloop; -foreach (sort {$itemtypes->{$a}->{description} cmp $itemtypes->{$b}->{description}} keys %$itemtypes) { - my %row = (value => $_, - description => $itemtypes->{$_}->{description}, - ); - push @itemtypeloop, \%row; -} - -my ($codes,$labels) = GetborCatFromCatType(undef,undef); -my @borcatloop; -foreach (sort keys %$labels) { - my %row =(value => $_, - description => $labels->{$_}, - ); - push @borcatloop, \%row; -} - +my $patron_categories = Koha::Patron::Categories->search_limited({}, {order_by => ['categorycode']}); +my $itemtypes = Koha::ItemTypes->search_with_localization; $template->param( mimeloop => \@mime, CGIseplist => $delims, - branchloop => \@branchloop, - itemtypeloop => \@itemtypeloop, - borcatloop => \@borcatloop, + itemtypes => $itemtypes, +patron_categories => $patron_categories, ); output_html_with_http_headers $input, $cookie, $template->output; @@ -161,6 +132,7 @@ sub calculate { my $grantotal =0; my $dbh = C4::Context->dbh; + # Checking filters my @loopfilter; my @cellmap = ( @@ -182,7 +154,7 @@ sub calculate { $cell{err} = 1 if (@$filters[$i]<@$filters[$i-1]) ; } # format the dates filters, otherwise just fill as is - $cell{filter} .= ($i>=4) ? @$filters[$i] : format_date(@$filters[$i]); + $cell{filter} .= @$filters[$i]; defined ($cellmap[$i]) and $cell{crit} .= $cellmap[$i]; push @loopfilter, \%cell; @@ -280,7 +252,7 @@ sub calculate { my $strcalc ; # Processing average loanperiods - $strcalc .= "SELECT CONCAT(borrowers.surname , \",\\t\",borrowers.firstname), COUNT(*) AS RANK, borrowers.borrowernumber AS ID"; + $strcalc .= "SELECT CONCAT_WS('', borrowers.surname , \",\\t\", borrowers.firstname), COUNT(*) AS RANK, borrowers.borrowernumber AS ID"; $strcalc .= " , $colfield " if ($colfield); $strcalc .= " FROM `old_issues` LEFT JOIN borrowers USING(borrowernumber) @@ -363,6 +335,7 @@ sub calculate { } keys %patrons; foreach my $id (@ranked_ids) { my @loopcell; + foreach my $key (@cols_in_order) { if($column){ push @loopcell, { @@ -382,8 +355,10 @@ sub calculate { 'loopcell' => \@loopcell, 'hilighted' => ($i%2), }; + # use a limit, if a limit is defined + last if $i > $limit and $limit } - + # the header of the table $globalline{loopfilter}=\@loopfilter; # the core of the table