# You should have received a copy of the GNU General Public License
# along with Koha; if not, see <http://www.gnu.org/licenses>.
-use strict;
-use warnings;
+use Modern::Perl;
use CGI qw ( -utf8 );
use Date::Manip;
use Koha::AuthorisedValues;
use Koha::DateUtils;
-use C4::Members::AttributeTypes;
+use Koha::ItemTypes;
+use Koha::Patron::Attribute::Types;
=head1 NAME
template_name => $fullreportname,
query => $input,
type => "intranet",
- authnotrequired => 0,
flagsrequired => {reports => '*'},
debug => 0,
});
$template->param(do_it => $do_it,
);
-our $itemtypes = GetItemTypes();
+our $itemtypes = Koha::ItemTypes->search_with_localization->unblessed;
+
our @patron_categories = Koha::Patron::Categories->search_limited({}, {order_by => ['description']});
-my $locations = { map { ( $_->authorised_value => $_->lib ) } Koha::AuthorisedValues->search_by_koha_field( { frameworkcode => '', kohafield => 'items.location' }, { order_by => ['description'] } ) };
-my $ccodes = { map { ( $_->authorised_value => $_->lib ) } Koha::AuthorisedValues->search_by_koha_field( { frameworkcode => '', kohafield => 'items.ccode' }, { order_by => ['description'] } ) };
+our $locations = { map { ( $_->{authorised_value} => $_->{lib} ) } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => '', kohafield => 'items.location' }, { order_by => ['description'] } ) };
+our $ccodes = { map { ( $_->{authorised_value} => $_->{lib} ) } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => '', kohafield => 'items.ccode' }, { order_by => ['description'] } ) };
our $Bsort1 = GetAuthorisedValues("Bsort1");
our $Bsort2 = GetAuthorisedValues("Bsort2");
print map { $_->{value} . $sep } @$x;
print $line->{totalrow}, "\n";
}
+
+ # footer
+ print "TOTAL";
+ $cols = @$results[0]->{loopfooter};
+ print map {$sep.$_->{totalcol}} @$cols;
+ print $sep.@$results[0]->{total};
}
exit;
}
my $dbh = C4::Context->dbh;
-my @values;
-my %labels;
-my %select;
-
-# create itemtype arrayref for <select>.
-my @itemtypeloop;
-for my $itype ( sort {$itemtypes->{$a}->{translated_description} cmp $itemtypes->{$b}->{translated_description}} keys(%$itemtypes)) {
- push @itemtypeloop, { code => $itype , description => $itemtypes->{$itype}->{translated_description} } ;
-}
# location list
my @locations;
my $CGIextChoice = ( 'CSV' ); # FIXME translation
my $CGIsepChoice=GetDelimiterChoices;
-my @attribute_types = C4::Members::AttributeTypes::GetAttributeTypes(1);
+my $library_id = C4::Context->userenv ? C4::Context->userenv->{'branch'} : undef;
+my $attribute_types = Koha::Patron::Attribute::Types->search_with_library_limits({}, {}, $library_id);
my %attribute_types_by_class;
-foreach my $attribute_type (@attribute_types) {
+while ( my ( $attribute_type ) = $attribute_types->next ) {
+ $attribute_type = $attribute_type->unblessed;
if ($attribute_type->{authorised_value_category}) {
my $authorised_values = C4::Koha::GetAuthorisedValues(
$attribute_type->{authorised_value_category});
$template->param(
categoryloop => \@patron_categories,
- itemtypeloop => \@itemtypeloop,
+ itemtypes => $itemtypes,
locationloop => \@locations,
ccodeloop => \@ccodes,
hassort1 => $hassort1,
$sth->execute;
}
+ my $itemtypes_map = { map { $_->{itemtype} => $_ } @{ $itemtypes } };
while ( my ($celvalue) = $sth->fetchrow ) {
my %cell = ( rowtitle => $celvalue, totalrow => 0 ); # we leave 'rowtitle' as hash key (used when filling the table), and add coltitle_display
$cell{rowtitle_display} =
( $line =~ /ccode/ ) ? $ccodes->{$celvalue}
: ( $line =~ /location/ ) ? $locations->{$celvalue}
- : ( $line =~ /itemtype/ ) ? $itemtypes->{$celvalue}->{description}
+ : ( $line =~ /itemtype/ ) ? $itemtypes_map->{$celvalue}->{translated_description}
: $celvalue; # default fallback
if ( $line =~ /sort1/ ) {
foreach (@$Bsort1) {
$cell{coltitle_display} =
( $column =~ /ccode/ ) ? $ccodes->{$celvalue}
: ( $column =~ /location/ ) ? $locations->{$celvalue}
- : ( $column =~ /itemtype/ ) ? $itemtypes->{$celvalue}->{description}
+ : ( $column =~ /itemtype/ ) ? $itemtypes_map->{$celvalue}->{translated_description}
: $celvalue; # default fallback
if ( $column =~ /sort1/ ) {
foreach (@$Bsort1) {
or ( $colsource eq 'items' ) || @$filters[5] || @$filters[6] || @$filters[7] || @$filters[8] || @$filters[9] || @$filters[10] || @$filters[11] || @$filters[12] || @$filters[13] );
$strcalc .= "WHERE 1=1 ";
- @$filters = map { defined($_) and s/\*/%/g; $_ } @$filters;
+ @$filters = map { my $f = $_; defined($f) and $f =~ s/\*/%/g; $f } @$filters;
$strcalc .= " AND statistics.datetime >= '" . @$filters[0] . "'" if ( @$filters[0] );
$strcalc .= " AND statistics.datetime <= '" . @$filters[1] . " 23:59:59'" if ( @$filters[1] );
$strcalc .= " AND borrowers.categorycode LIKE '" . @$filters[2] . "'" if ( @$filters[2] );