#
# This file is part of Koha.
#
-# Koha is free software; you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
#
-# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR 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
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
-use strict;
+use Modern::Perl;
+use C4::Context;
use C4::Scheduler;
-use C4::Reports;
-use C4::Auth;
-use CGI;
-use C4::Output;
+use C4::Reports::Guided;
+use C4::Auth;
+use CGI qw ( -utf8 );
+use C4::Output;
+use Koha::DateUtils;;
+
+use vars qw($debug);
+
+BEGIN {
+ $debug = $ENV{DEBUG} || 0;
+}
my $input = new CGI;
+my $base;
+
+if ( C4::Context->config('supportdir') ) {
+ $base = C4::Context->config('supportdir');
+}
+else {
+ $base = "/usr/share/koha/bin";
+}
+
+my $CONFIG_NAME = $ENV{'KOHA_CONF'};
+
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
- {
- template_name => "tools/scheduler.tmpl",
- query => $input,
- type => "intranet",
- authnotrequired => 0,
- flagsrequired => { editcatalogue => 1 },
- debug => 1,
- }
- );
-
-my $mode=$input->param('mode');
-if ($mode eq 'job_add') {
- my $startday = $input->param('startday');
- my $startmonth = $input->param('startmonth');
- my $startyear = $input->param('startyear');
- my $starttime = $input->param('starttime');
- $starttime =~ s/\://g;
- my $start = $startyear . $startmonth . $startday . $starttime;
- my $report=$input->param('report');
- my $format=$input->param('format');
- my $email=$input->param('email');
- my $base = "/nzkoha/intranet"; # EDIT THIS
- my $command = "EXPORT KOHA_CONF=\"/nzkoha/etc/koha-kapiti.conf\"; ".$base."/tools/runreport.pl $report $format $email"; # EDIT THIS
- add_job($start,$command);
+ {
+ template_name => "tools/scheduler.tt",
+ query => $input,
+ type => "intranet",
+ authnotrequired => 0,
+ flagsrequired => { tools => 'schedule_tasks' },
+ debug => 1,
+ }
+);
+
+my $mode = $input->param('mode');
+my $id = $input->param('id');
+
+if ( $mode eq 'job_add' ) {
+
+ # Retrieving the date according to the dateformat syspref
+ my $c4date = output_pref({ dt => dt_from_string( scalar $input->param('startdate') ), dateformat => 'iso', dateonly => 1 });
+
+ # Formatting it for Schedule::At
+ my $startdate = join('', (split /-/, $c4date));
+
+ my $starttime = $input->param('starttime');
+ $starttime =~ s/\://g;
+ my $start = $startdate . $starttime;
+ my $report = $input->param('report');
+ my $format = $input->param('format');
+ my $email = $input->param('email');
+ my $command =
+ "export KOHA_CONF=\"$CONFIG_NAME\"; " .
+ "$base/cronjobs/runreport.pl $report --format=$format --to=$email";
+
+#FIXME commit ea899bc55933cd74e4665d70b1c48cab82cd1257 added recurring parameter (it is not in template) and call to add_cron_job (undefined)
+# my $recurring = $input->param('recurring');
+# if ($recurring) {
+# my $frequency = $input->param('frequency');
+# add_cron_job( $start, $command );
+# }
+# else {
+# #here was the the unless ( add_at_job
+# }
+
+ unless ( add_at_job( $start, $command ) ) {
+ $template->param( job_add_failed => 1 );
+ }
}
-if ($mode eq 'job_change'){
- my $jobid = $input->param('jobid');
- if ($input->param('delete')){
- remove_job($jobid);
- }
+if ( $mode eq 'job_change' ) {
+ my $jobid = $input->param('jobid');
+ if ( $input->param('delete') ) {
+ remove_at_job($jobid);
+ }
}
+
my $jobs = get_jobs();
my @jobloop;
- foreach my $job (values %$jobs) {
- push @jobloop,$job;
- }
-@jobloop = sort {$a->{TIME} cmp $b->{TIME}} @jobloop;
-my $reports = get_saved_reports();
-$template->param( 'savedreports' => $reports );
-$template->param(JOBS => \@jobloop);
+foreach my $job ( values %$jobs ) {
+ push @jobloop, $job;
+}
+
+@jobloop = sort { $a->{TIME} cmp $b->{TIME} } @jobloop;
+
+my $reports = get_saved_reports();
+if ( defined $id ) {
+ foreach my $report (@$reports) {
+ $report->{'selected'} = 1 if $report->{'id'} eq $id;
+ }
+}
+
+$template->param( 'savedreports' => $reports );
+$template->param( JOBS => \@jobloop );
my $time = localtime(time);
-$template->param('time' => $time);
+$template->param( 'time' => $time );
+$template->param(
+ debug => $debug,
+);
output_html_with_http_headers $input, $cookie, $template->output;