X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=members%2Fstatistics.pl;h=e875cef6ac123c52d14a85c1d19ca8f0063e1471;hb=55445457c9096f47913f241c261d378226b2e072;hp=8551ec8f9bb44c2ae0dde9800996ab403385e573;hpb=5432bd488f2cd842f4fece93c42423a3fc26143b;p=koha.git diff --git a/members/statistics.pl b/members/statistics.pl index 8551ec8f9b..e875cef6ac 100755 --- a/members/statistics.pl +++ b/members/statistics.pl @@ -13,28 +13,30 @@ # 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; 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, @@ -56,9 +58,12 @@ if ( not defined $borrower ) { 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::Context->preference('StatisticsFields') || 'location|itype|ccode'; +my $fields = C4::Members::Statistics::get_fields(); our @statistic_column_names = split '\|', $fields; our @value_column_names = ( 'count_precedent_state', 'count_total_issues_today', 'count_total_issues_returned_today' ); our @column_names = ( @statistic_column_names, @value_column_names ); @@ -70,6 +75,7 @@ my $total_issues_returned_today = GetTotalIssuesReturnedTodayByBorrower( $borrow my $r = merge ( @$precedent_state, @$total_issues_today, @$total_issues_returned_today ); + add_actual_state( $r ); my ( $total, $datas ) = build_array( $r ); @@ -79,15 +85,28 @@ 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 + ); +} + +my ($picture, $dberror) = GetPatronImage($borrower->{'borrowernumber'}); +$template->param( picture => 1 ) if $picture; + +$template->param(%$borrower); + $template->param( - statisticsview => 1, - datas => $datas, - column_names => \@statistic_column_names, - length_keys => scalar( @statistic_column_names), + 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; @@ -96,9 +115,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 ) { @@ -107,6 +129,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: @@ -135,6 +158,7 @@ sub add_actual_state { ]; =cut + sub build_array { my ( $array ) = @_; my ( @r, $total ); @@ -157,6 +181,7 @@ sub build_array { } =head2 merge + Merge hashes with the same statistic column names into one param: array, a arrayref of arrayrefs ex: @@ -186,6 +211,7 @@ sub build_array { ]; =cut + sub merge { my @array = @_; my @r; @@ -194,7 +220,7 @@ sub merge { for my $ch ( @r ) { $exists = 1; for my $cn ( @statistic_column_names ) { - if ( not $ch->{$cn} eq $h->{$cn} ) { + if ( $ch->{$cn} and not $ch->{$cn} eq $h->{$cn} ) { $exists = 0; last; }