Bug 5549 : Koha::Calendar::addDate should not loop on -1
[koha.git] / reports / guided_reports.pl
index 5abdf17..cb85f39 100755 (executable)
@@ -21,6 +21,7 @@ use strict;
 #use warnings; FIXME - Bug 2505
 use CGI;
 use Text::CSV;
+use URI::Escape;
 use C4::Reports::Guided;
 use C4::Auth qw/:DEFAULT get_session/;
 use C4::Output;
@@ -68,6 +69,7 @@ if ( $input->param("filter_set") ) {
     $filter = {};
     $filter->{$_} = $input->param("filter_$_") foreach qw/date author keyword/;
     $session->param('report_filter', $filter) if $session;
+    $template->param( 'filter_set' => 1 );
 }
 elsif ($session) {
     $filter = $session->param('report_filter');
@@ -110,9 +112,12 @@ elsif ( $phase eq 'Delete Saved') {
 elsif ( $phase eq 'Show SQL'){
        
        my $id = $input->param('reports');
-       my $sql = get_sql($id);
+    my ($sql,$type,$reportname,$notes) = get_saved_report($id);
        $template->param(
-               'sql' => $sql,
+        'id'      => $id,
+        'reportname' => $reportname,
+        'notes'      => $notes,
+               'sql'     => $sql,
                'showsql' => 1,
     );
 }
@@ -152,6 +157,7 @@ elsif ( $phase eq 'Update SQL'){
         update_sql( $id, $sql, $reportname, $notes );
         $template->param(
             'save_successful'       => 1,
+            'reportname'            => $reportname,
             'id'                    => $id,
         );
     }
@@ -390,6 +396,7 @@ elsif ( $phase eq 'Save Report' ) {
         my $id = save_report( $borrowernumber, $sql, $name, $type, $notes );
         $template->param(
             'save_successful'       => 1,
+            'reportname'            => $name,
             'id'                    => $id,
         );
     }
@@ -418,7 +425,10 @@ elsif ($phase eq 'Run this report'){
         for(my $i=0;$i<($#split/2);$i++) {
             my ($text,$authorised_value) = split /\|/,$split[$i*2+1];
             my $input;
-            if ($authorised_value) {
+            if ($authorised_value eq "date") {
+               $input = 'date';
+            }
+            elsif ($authorised_value) {
                 my $dbh=C4::Context->dbh;
                 my @authorised_values;
                 my %authorised_lib;
@@ -520,9 +530,13 @@ elsif ($phase eq 'Run this report'){
 
         my $totpages = int($total/$limit) + (($total % $limit) > 0 ? 1 : 0);
         my $url = "/cgi-bin/koha/reports/guided_reports.pl?reports=$report&amp;phase=Run%20this%20report";
+        if (@sql_params) {
+            $url = join('&amp;sql_params=', $url, map { URI::Escape::uri_escape($_) } @sql_params);
+        }
         $template->param(
             'results' => \@rows,
             'sql'     => $sql,
+            'id'      => $report,
             'execute' => 1,
             'name'    => $name,
             'notes'   => $notes,
@@ -534,7 +548,7 @@ elsif ($phase eq 'Run this report'){
 }
 
 elsif ($phase eq 'Export'){
-    binmode STDOUT, ':utf8';
+    binmode STDOUT, ':encoding(UTF-8)';
 
        # export results to tab separated text or CSV
        my $sql    = $input->param('sql');  # FIXME: use sql from saved report ID#, not new user-supplied SQL!
@@ -620,7 +634,7 @@ sub header_cell_loop {
 }
 
 foreach (1..6) {
-    $template->param('build' . $_) and $template->param(buildx => $_) and last;
+     $template->{VARS}->{'build' . $_} and $template->{VARS}->{'buildx' . $_} and last;
 }
 $template->param(   'referer' => $input->referer(),
                     'DHTMLcalendar_dateformat' => C4::Dates->DHTMLcalendar(),