);
}
+
+our $fields = get_fields();
+
+sub get_fields {
+ my $r = C4::Context->preference('StatisticsFields') || 'location|itype|ccode';
+ unless ( $r =~ m/^(\w|\d|\||-)+$/) {
+ warn "Members/Statistics : Bad value for syspref StatisticsFields" if $debug;
+ $r = 'location|itype|ccode';
+ }
+ return $r;
+}
+
=head2 construct_query
Build a sql query from a subquery
Adds statistics fields to the select and the group by clause
sub construct_query {
my $count = shift;
my $subquery = shift;
- my $fields = C4::Context->preference('StatisticsFields') || 'location|itype|ccode';
my @select_fields = split '\|', $fields;
- my $query = "SELECT COUNT(*) as count_$count";
- $query .= ", " . C4::Context->dbh->quote( $_ ) for @select_fields;
+ my $query = "SELECT COUNT(*) as count_$count,";
+ $query .= join ',', @select_fields;
$query .= " " . $subquery;
}
# 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 );
my $r = merge (
@$precedent_state, @$total_issues_today, @$total_issues_returned_today
);
+
add_actual_state( $r );
my ( $total, $datas ) = build_array( $r );
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;
}