#
# 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 <http://www.gnu.org/licenses>.
use Modern::Perl;
-use CGI;
+use CGI qw ( -utf8 );
use List::MoreUtils qw/uniq/;
use C4::Auth;
use C4::Context;
use C4::Branch; # GetBranches
use C4::Koha;
-use C4::Dates;
+use Koha::DateUtils;
use C4::Acquisition;
use C4::Output;
use C4::Reports;
use C4::Circulation;
use C4::Members::AttributeTypes;
-use C4::Dates qw/format_date format_date_in_iso/;
use Date::Calc qw(
Today
Add_Delta_YM
=head1 DESCRIPTION
-=over 2
-
=cut
my $input = new CGI;
my $do_it=$input->param('do_it');
-my $fullreportname = "reports/borrowers_stats.tmpl";
+my $fullreportname = "reports/borrowers_stats.tt";
my $line = $input->param("Line");
my $column = $input->param("Column");
-my @filters = $input->param("Filter");
-$filters[3]=format_date_in_iso($filters[3]);
-$filters[4]=format_date_in_iso($filters[4]);
+my @filters = $input->multi_param("Filter");
+$filters[3] = eval { output_pref( { dt => dt_from_string( $filters[3]), dateonly => 1, dateformat => 'iso' } ); }
+ if ( $filters[3] );
+$filters[4] = eval { output_pref ({ dt => dt_from_string( $filters[4]), dateonly => 1, dateformat => 'iso' } ); }
+ if ( $filters[4] );
my $digits = $input->param("digits");
-my $period = $input->param("period");
+our $period = $input->param("period");
my $borstat = $input->param("status");
my $borstat1 = $input->param("activity");
my $output = $input->param("output");
$req->execute;
$template->param( SORT2_LOOP => $req->fetchall_arrayref({}));
- my $CGIextChoice=CGI::scrolling_list(
- -name => 'MIME',
- -id => 'MIME',
- -values => ['CSV'], # FIXME translation
- -size => 1,
- -multiple => 0 );
+ my $CGIextChoice = ( 'CSV' ); # FIXME translation
my $CGIsepChoice=GetDelimiterChoices;
$template->param(
CGIextChoice => $CGIextChoice,
}
output_html_with_http_headers $input, $cookie, $template->output;
-sub catcode_aref() {
+sub catcode_aref {
my $req = C4::Context->dbh->prepare("SELECT categorycode, description FROM categories ORDER BY description");
$req->execute;
return $req->fetchall_arrayref({});
}
-sub catcodes_hash() {
+sub catcodes_hash {
my %cathash;
my $catcodes = &catcode_aref;
foreach (@$catcodes) {
# Filters
my $linefilter;
- given ($line) {
- when (/categorycode/) { $linefilter = @$filters[0] }
- when (/zipcode/) { $linefilter = @$filters[1] }
- when (/branchcode/) { $linefilter = @$filters[2] }
- when (/sex/) { $linefilter = @$filters[5] }
- when (/sort1/) { $linefilter = @$filters[6] }
- when (/sort2/) { $linefilter = @$filters[7] }
- when (/^patron_attr\.(.*)$/) { $linefilter = $attr_filters->{$1} }
- default { $linefilter = '' }
- }
+ if ( $line =~ /categorycode/ ) { $linefilter = @$filters[0]; }
+ elsif ( $line =~ /zipcode/ ) { $linefilter = @$filters[1]; }
+ elsif ( $line =~ /branchcode/ ) { $linefilter = @$filters[2]; }
+ elsif ( $line =~ /sex/ ) { $linefilter = @$filters[5]; }
+ elsif ( $line =~ /sort1/ ) { $linefilter = @$filters[6]; }
+ elsif ( $line =~ /sort2/ ) { $linefilter = @$filters[7]; }
+ elsif ( $line =~ /^patron_attr\.(.*)$/ ) { $linefilter = $attr_filters->{$1}; }
+ else { $linefilter = ''; }
my $colfilter;
- given ($column) {
- when (/categorycode/) { $colfilter = @$filters[0] }
- when (/zipcode/) { $colfilter = @$filters[1] }
- when (/branchcode/) { $colfilter = @$filters[2] }
- when (/sex/) { $colfilter = @$filters[5] }
- when (/sort1/) { $colfilter = @$filters[6] }
- when (/sort2/) { $colfilter = @$filters[7] }
- when (/^patron_attr\.(.*)$/) { $colfilter = $attr_filters->{$1} }
- default { $colfilter = '' }
- }
+ if ( $column =~ /categorycode/ ) { $colfilter = @$filters[0]; }
+ elsif ( $column =~ /zipcode/ ) { $colfilter = @$filters[1]; }
+ elsif ( $column =~ /branchcode/) { $colfilter = @$filters[2]; }
+ elsif ( $column =~ /sex/) { $colfilter = @$filters[5]; }
+ elsif ( $column =~ /sort1/) { $colfilter = @$filters[6]; }
+ elsif ( $column =~ /sort2/) { $colfilter = @$filters[7]; }
+ elsif ( $column =~ /^patron_attr\.(.*)$/) { $colfilter = $attr_filters->{$1}; }
+ else { $colfilter = ''; }
my @loopfilter;
foreach my $i (0 .. scalar @$filters) {
my %cell;
if ( @$filters[$i] ) {
if ($i == 3 or $i == 4) {
- $cell{filter} = format_date(@$filters[$i]);
+ $cell{filter} = eval { output_pref( { dt => dt_from_string( @$filters[$i] ), dateonly => 1 }); }
+ if ( @$filters[$i] );
} else {
$cell{filter} = @$filters[$i];
}
- given ($i) {
- when (0) { $cell{crit} = "Cat code" }
- when (1) { $cell{crit} = "Zip code" }
- when (2) { $cell{crit} = "Branch code" }
- when ([3,4]) { $cell{crit} = "Date of birth" }
- when (5) { $cell{crit} = "Sex" }
- when (6) { $cell{crit} = "Sort1" }
- when (7) { $cell{crit} = "Sort2" }
- default { $cell{crit} = "Unknown" }
- }
+ if ( $i == 0) { $cell{crit} = "Cat code"; }
+ elsif ( $i == 1 ) { $cell{crit} = "ZIP/Postal code"; }
+ elsif ( $i == 2 ) { $cell{crit} = "Branch code"; }
+ elsif ( $i == 3 ||
+ $i == 4 ) { $cell{crit} = "Date of birth"; }
+ elsif ( $i == 5 ) { $cell{crit} = "Sex"; }
+ elsif ( $i == 6 ) { $cell{crit} = "Sort1"; }
+ elsif ( $i == 7 ) { $cell{crit} = "Sort2"; }
+ else { $cell{crit} = "Unknown"; }
+
push @loopfilter, \%cell;
}
}
my $coltitle = $row->{coltitle} // '';
$table{$rowtitle}->{$coltitle} = 0;
}
+ $row->{rowtitle} ||= '';
$table{$row->{rowtitle}}->{totalrow}=0;
$table{$row->{rowtitle}}->{rowtitle_display} = $row->{rowtitle_display};
}