X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=members%2Fstatistics.pl;h=0b02e03c61744eecc6f7cca691d2611ee871c072;hb=c95f5c17a6b1e41be28819f79ebb0e6fa8f015e8;hp=0667ee7dfac6c8cea1a8b392a1b912b175ce1661;hpb=c82facc01216f390a77de6268d75903c0eed7d42;p=koha.git diff --git a/members/statistics.pl b/members/statistics.pl index 0667ee7dfa..0b02e03c61 100755 --- a/members/statistics.pl +++ b/members/statistics.pl @@ -17,49 +17,43 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. =head1 members/statistics.pl + Generate statistic issues for a member + =cut use Modern::Perl; -use CGI; +use CGI qw ( -utf8 ); use C4::Auth; -use C4::Branch; use C4::Context; use C4::Members; use C4::Members::Statistics; use C4::Members::Attributes qw(GetBorrowerAttributes); use C4::Output; +use Koha::Patrons; +use Koha::Patron::Categories; my $input = new CGI; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( - { template_name => "members/statistics.tmpl", + { template_name => "members/statistics.tt", query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { borrowers => 1 }, + flagsrequired => { borrowers => 'edit_borrowers' }, debug => 1, } ); my $borrowernumber = $input->param('borrowernumber'); -# Set informations for the patron -my $borrower = GetMemberDetails( $borrowernumber, 0 ); -if ( not defined $borrower ) { - $template->param (unknowuser => 1); - output_html_with_http_headers $input, $cookie, $template->output; - exit; -} +my $logged_in_user = Koha::Patrons->find( $loggedinuser ) or die "Not logged in"; +my $patron = Koha::Patrons->find( $borrowernumber ); +output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } ); + +my $category = $patron->category; -foreach my $key ( keys %$borrower ) { - $template->param( $key => $borrower->{$key} ); -} -$template->param( - categoryname => $borrower->{'description'}, - branchname => GetBranchName($borrower->{'branchcode'}), -); # Construct column names my $fields = C4::Members::Statistics::get_fields(); our @statistic_column_names = split '\|', $fields; @@ -91,19 +85,21 @@ if (C4::Context->preference('ExtendedPatronAttributes')) { ); } -my ($picture, $dberror) = GetPatronImage($borrower->{'cardnumber'}); -$template->param( picture => 1 ) if $picture; +if ( $patron->is_child ) { + my $patron_categories = Koha::Patron::Categories->search_limited({ category_type => 'A' }, {order_by => ['categorycode']}); + $template->param( 'CATCODE_MULTI' => 1) if $patron_categories->count > 1; + $template->param( 'catcode' => $patron_categories->next->categorycode ) if $patron_categories->count == 1; +} $template->param( - statisticsview => 1, - datas => $datas, - column_names => \@statistic_column_names, - length_keys => scalar( @statistic_column_names), + patron => $patron, + statisticsview => 1, + datas => $datas, + column_names => \@statistic_column_names, count_total_issues => $count_total_issues, count_total_issues_returned => $count_total_issues_returned, count_total_precedent_state => $count_total_precedent_state, count_total_actual_state => $count_total_actual_state, - RoutingSerials => C4::Context->preference('RoutingSerials'), ); output_html_with_http_headers $input, $cookie, $template->output; @@ -112,9 +108,12 @@ output_html_with_http_headers $input, $cookie, $template->output; =head1 FUNCTIONS =head2 add_actual_state + Add a 'count_actual_state' key in all hashes count_actual_state = count_precedent_state - count_total_issues_returned_today + count_total_issues_today + =cut + sub add_actual_state { my ( $array ) = @_; for my $hash ( @$array ) { @@ -123,6 +122,7 @@ sub add_actual_state { } =head2 build_array + Build a new array containing values of hashes. It used by template whitch display silly values. ex: @@ -151,6 +151,7 @@ sub add_actual_state { ]; =cut + sub build_array { my ( $array ) = @_; my ( @r, $total ); @@ -173,6 +174,7 @@ sub build_array { } =head2 merge + Merge hashes with the same statistic column names into one param: array, a arrayref of arrayrefs ex: @@ -202,6 +204,7 @@ sub build_array { ]; =cut + sub merge { my @array = @_; my @r;