View | Details | Raw Unified | Return to bug 5920
Collapse All | Expand All

(-)a/reports/guided_reports.pl (-6 / +10 lines)
Lines 40-45 use Koha::Util::OpenDocument qw( generate_ods ); Link Here
40
use Koha::Notice::Templates;
40
use Koha::Notice::Templates;
41
use Koha::TemplateUtils qw( process_tt );
41
use Koha::TemplateUtils qw( process_tt );
42
use C4::ClassSource qw( GetClassSources );
42
use C4::ClassSource qw( GetClassSources );
43
use HTML::Restrict;
43
44
44
=head1 NAME
45
=head1 NAME
45
46
Lines 929-934 elsif ($phase eq 'Export'){ Link Here
929
    my $format         = $input->param('format');
930
    my $format         = $input->param('format');
930
    my $reportname     = $input->param('reportname');
931
    my $reportname     = $input->param('reportname');
931
    my $reportfilename = $reportname ? "$reportname-reportresults.$format" : "reportresults.$format" ;
932
    my $reportfilename = $reportname ? "$reportname-reportresults.$format" : "reportresults.$format" ;
933
    my $hr             = HTML::Restrict->new();
932
934
933
    ($sql, undef) = $report->prep_report( \@param_names, \@sql_params );
935
    ($sql, undef) = $report->prep_report( \@param_names, \@sql_params );
934
    my ( $sth, $q_errors ) = execute_query( { sql => $sql, report_id => $report_id } );
936
    my ( $sth, $q_errors ) = execute_query( { sql => $sql, report_id => $report_id } );
Lines 937-945 elsif ($phase eq 'Export'){ Link Here
937
        if ($format eq 'tab') {
939
        if ($format eq 'tab') {
938
            $type = 'application/octet-stream';
940
            $type = 'application/octet-stream';
939
            $content .= join("\t", header_cell_values($sth)) . "\n";
941
            $content .= join("\t", header_cell_values($sth)) . "\n";
940
            $content = Encode::decode('UTF-8', $content);
942
            $content = $hr->process(Encode::decode('UTF-8', $content));
941
            while (my $row = $sth->fetchrow_arrayref()) {
943
            while (my $row = $sth->fetchrow_arrayref()) {
942
                $content .= join("\t", map { $_ // '' } @$row) . "\n";
944
                $content .= join("\t", $hr->process(@$row)) . "\n";
943
            }
945
            }
944
        } else {
946
        } else {
945
            if ( $format eq 'csv' ) {
947
            if ( $format eq 'csv' ) {
Lines 948-960 elsif ($phase eq 'Export'){ Link Here
948
                my $csv = Text::CSV::Encoded->new({ encoding_out => 'UTF-8', sep_char => $delimiter});
950
                my $csv = Text::CSV::Encoded->new({ encoding_out => 'UTF-8', sep_char => $delimiter});
949
                $csv or die "Text::CSV::Encoded->new({binary => 1}) FAILED: " . Text::CSV::Encoded->error_diag();
951
                $csv or die "Text::CSV::Encoded->new({binary => 1}) FAILED: " . Text::CSV::Encoded->error_diag();
950
                if ($csv->combine(header_cell_values($sth))) {
952
                if ($csv->combine(header_cell_values($sth))) {
951
                    $content .= Encode::decode('UTF-8', $csv->string()) . "\n";
953
                    $content .= $hr->process(Encode::decode('UTF-8', $csv->string())) . "\n";
954
952
                } else {
955
                } else {
953
                    push @$q_errors, { combine => 'HEADER ROW: ' . $csv->error_diag() } ;
956
                    push @$q_errors, { combine => 'HEADER ROW: ' . $csv->error_diag() } ;
954
                }
957
                }
955
                while (my $row = $sth->fetchrow_arrayref()) {
958
                while (my $row = $sth->fetchrow_arrayref()) {
956
                    if ($csv->combine(@$row)) {
959
                    if ($csv->combine(@$row)) {
957
                        $content .= $csv->string() . "\n";
960
                        $content .= $hr->process($csv->string()) . "\n";
961
958
                    } else {
962
                    } else {
959
                        push @$q_errors, { combine => $csv->error_diag() } ;
963
                        push @$q_errors, { combine => $csv->error_diag() } ;
960
                    }
964
                    }
Lines 975-981 elsif ($phase eq 'Export'){ Link Here
975
                foreach my $sql_row ( @$sql_rows ) {
979
                foreach my $sql_row ( @$sql_rows ) {
976
                    my @content_row;
980
                    my @content_row;
977
                    foreach my $sql_cell ( @$sql_row ) {
981
                    foreach my $sql_cell ( @$sql_row ) {
978
                        push @content_row, Encode::encode( 'UTF8', $sql_cell );
982
                        push @content_row, $hr->process(Encode::encode( 'UTF8', $sql_cell ));
983
979
                    }
984
                    }
980
                    push @$ods_content, \@content_row;
985
                    push @$ods_content, \@content_row;
981
                }
986
                }
982
- 

Return to bug 5920