X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=members%2Fstatistics.pl;h=0b02e03c61744eecc6f7cca691d2611ee871c072;hb=94b2b6c4f946f4f43e6255cb582fc272c85d8872;hp=7125560f0ea0ae812e6522b162dd835241620237;hpb=98a207ef955effae8d6b26a1c74bddd9a3c9a801;p=koha.git diff --git a/members/statistics.pl b/members/statistics.pl index 7125560f0e..0b02e03c61 100755 --- a/members/statistics.pl +++ b/members/statistics.pl @@ -13,49 +13,46 @@ # 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 - +# Koha; if not, write to the Free Software Foundation, Inc., +# 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 } ); -foreach my $key ( keys %$borrower ) { - $template->param( $key => $borrower->{$key} ); -} +my $category = $patron->category; # Construct column names my $fields = C4::Members::Statistics::get_fields(); @@ -80,11 +77,25 @@ my $count_total_issues = $total->{count_total_issues_today} || 0; my $count_total_issues_returned = $total->{count_total_issues_returned_today} || 0; my $count_total_actual_state = ($count_total_precedent_state - $count_total_issues_returned + $count_total_issues); +if (C4::Context->preference('ExtendedPatronAttributes')) { + my $attributes = GetBorrowerAttributes($borrowernumber); + $template->param( + ExtendedPatronAttributes => 1, + extendedattributes => $attributes + ); +} + +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, @@ -97,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 ) { @@ -108,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: @@ -136,6 +151,7 @@ sub add_actual_state { ]; =cut + sub build_array { my ( $array ) = @_; my ( @r, $total ); @@ -158,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: @@ -187,6 +204,7 @@ sub build_array { ]; =cut + sub merge { my @array = @_; my @r;