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

(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/scheduler.tt (-1 / +1 lines)
Lines 58-64 Link Here
58
<li><label for="format">Output Format:</label>
58
<li><label for="format">Output Format:</label>
59
<select name="format" id="format">
59
<select name="format" id="format">
60
<option value="text">Text</option>
60
<option value="text">Text</option>
61
<option value="url">url</option>
61
<option value="csv">CSV</option>
62
</select>
62
</select>
63
</li>
63
</li>
64
<li><label for="email">Email:</label>
64
<li><label for="email">Email:</label>
(-)a/misc/cronjobs/runreport.pl (-16 / +44 lines)
Lines 25-31 use C4::Context; Link Here
25
25
26
use Getopt::Long qw(:config auto_help auto_version);
26
use Getopt::Long qw(:config auto_help auto_version);
27
use Pod::Usage;
27
use Pod::Usage;
28
use Mail::Sendmail;
28
use MIME::Lite;
29
use Text::CSV_XS;
29
use Text::CSV_XS;
30
use CGI;
30
use CGI;
31
use Carp;
31
use Carp;
Lines 148-153 my $from = ""; Link Here
148
my $subject = 'Koha Saved Report';
148
my $subject = 'Koha Saved Report';
149
my $separator = ',';
149
my $separator = ',';
150
my $quote = '"';
150
my $quote = '"';
151
my $message = "";
152
my $mail;
153
my $outfile;
151
154
152
GetOptions(
155
GetOptions(
153
    'help|?'     => \$help,
156
    'help|?'     => \$help,
Lines 168-178 unless ($format) { Link Here
168
    $format = 'text';
171
    $format = 'text';
169
}
172
}
170
173
171
if ($format eq 'tsv' || $format eq 'text') {
172
    $format = 'csv';
173
    $separator = "\t";
174
}
175
176
if ($to or $from or $email) {
174
if ($to or $from or $email) {
177
    $email = 1;
175
    $email = 1;
178
    $from or $from = C4::Context->preference('KohaAdminEmailAddress');
176
    $from or $from = C4::Context->preference('KohaAdminEmailAddress');
Lines 187-198 unless (scalar(@ARGV)) { Link Here
187
185
188
186
189
foreach my $report (@ARGV) {
187
foreach my $report (@ARGV) {
190
    my ($sql, $type) = get_saved_report($report);
188
    my ($sql, $type, $report_name) = get_saved_report($report);
191
    unless ($sql) {
189
    unless ($sql) {
192
        carp "ERROR: No saved report $report found";
190
        carp "ERROR: No saved report $report found";
193
        next;
191
        next;
194
    }
192
    }
195
    $verbose and print "SQL: $sql\n\n";
193
    $verbose and print "SQL: $sql\n\n";
194
    if (defined($report_name) and $report_name ne "")
195
    {
196
        $subject = $report_name ;
197
    }
198
    else
199
    {
200
        $subject = 'Koha Saved Report';
201
    }
196
    # my $results = execute_query($sql, undef, 0, 99999, $format, $report); 
202
    # my $results = execute_query($sql, undef, 0, 99999, $format, $report); 
197
    my ($sth) = execute_query($sql);
203
    my ($sth) = execute_query($sql);
198
    # execute_query(sql, , 0, 20, , )
204
    # execute_query(sql, , 0, 20, , )
Lines 203-210 foreach my $report (@ARGV) { Link Here
203
    }
209
    }
204
    $verbose and print "$count results from execute_query\n";
210
    $verbose and print "$count results from execute_query\n";
205
211
206
    my $message;
212
    if ($format eq 'text') {
207
    if ($format eq 'html') {
208
        my $cgi = CGI->new();
213
        my $cgi = CGI->new();
209
        my @rows = ();
214
        my @rows = ();
210
        while (my $line = $sth->fetchrow_arrayref) {
215
        while (my $line = $sth->fetchrow_arrayref) {
Lines 212-217 foreach my $report (@ARGV) { Link Here
212
            push @rows, $cgi->TR( join('', $cgi->td($line)) ) . "\n";
217
            push @rows, $cgi->TR( join('', $cgi->td($line)) ) . "\n";
213
        }
218
        }
214
        $message = $cgi->table(join "", @rows);
219
        $message = $cgi->table(join "", @rows);
220
        if ( $email ) {
221
            $mail = MIME::Lite->new (
222
                To      => $to,
223
                From    => $from,
224
                Subject => $subject,
225
                Data    => $message,
226
                Type    => 'text/html'
227
            );
228
        }
215
    } elsif ($format eq 'csv') {
229
    } elsif ($format eq 'csv') {
216
        my $csv = Text::CSV_XS->new({
230
        my $csv = Text::CSV_XS->new({
217
            quote_char  => $quote,
231
            quote_char  => $quote,
Lines 227-245 foreach my $report (@ARGV) { Link Here
227
#            $message .= join ($separator, @$line) . "\n";
241
#            $message .= join ($separator, @$line) . "\n";
228
            $message .= $csv->string() . "\n";
242
            $message .= $csv->string() . "\n";
229
        }
243
        }
244
        if ($email) {
245
            $outfile = "/tmp/report$report.csv";
246
            open( my $fh, ">:encoding(UTF-8)", $outfile )  or die "unable to open $outfile: $!";
247
            print $fh $message;
248
            close $fh;
249
250
            $mail = MIME::Lite->new (
251
                From	=> $from,
252
        		To	    => $to,
253
	        	Subject => $subject,
254
		        Type	=> 'multipart/mixed',
255
	        );
256
	        $mail->attach (
257
                Type    => 'application/csv',
258
                Path    => $outfile,
259
                Filename    => "report$report.csv",
260
            );
261
        }
230
    }
262
    }
231
263
232
    if ($email){
264
    if ($email){
233
        my %mail = (
265
        $mail->send or carp 'mail not sent:';
234
            To      => $to,
266
        unlink $outfile if ($outfile);
235
            From    => $from,
236
            Subject => $subject,
237
            Message => $message 
238
        );
239
        sendmail(%mail) or carp 'mail not sent:' . $Mail::Sendmail::error;
240
    } else {
267
    } else {
241
        print $message;
268
        print $message;
242
    }
269
    }
270
243
    # my @xmlarray = ... ;
271
    # my @xmlarray = ... ;
244
    # my $url = "/cgi-bin/koha/reports/guided_reports.pl?phase=retrieve%20results&id=$id";
272
    # my $url = "/cgi-bin/koha/reports/guided_reports.pl?phase=retrieve%20results&id=$id";
245
    # my $xml = XML::Dumper->new()->pl2xml( \@xmlarray );
273
    # my $xml = XML::Dumper->new()->pl2xml( \@xmlarray );
(-)a/tools/scheduler.pl (-4 / +6 lines)
Lines 67-75 if ( $mode eq 'job_add' ) { Link Here
67
    my $report = $input->param('report');
67
    my $report = $input->param('report');
68
    my $format = $input->param('format');
68
    my $format = $input->param('format');
69
    my $email  = $input->param('email');
69
    my $email  = $input->param('email');
70
    my $command =
70
    my $command = "export KOHA_CONF=\"$CONFIG_NAME\"; ";
71
        "EXPORT KOHA_CONF=\"$CONFIG_NAME\"; " . $base
71
    $command .= $base . "/misc/cronjobs/runreport.pl";
72
      . "/tools/runreport.pl $report $format $email";
72
    $command .= " --format $format" if ( $format );
73
    $command .= " --to $email" if ( $email );
74
    $command .= " $report";
75
73
76
74
    if ($recurring) {
77
    if ($recurring) {
75
        my $frequency = $input->param('frequency');
78
        my $frequency = $input->param('frequency');
76
- 

Return to bug 1993