diff --git a/app/Console/Commands/ScheduleRunCommand.php b/app/Console/Commands/ScheduleRunCommand.php index 0d402ad1a..c0d2a0354 100755 --- a/app/Console/Commands/ScheduleRunCommand.php +++ b/app/Console/Commands/ScheduleRunCommand.php @@ -54,6 +54,23 @@ class ScheduleRunCommand extends BaseCommand if (!$win) { $body = str_replace(" -c"," " . $user . " -c", $p->body); } + + //for init date and finish date parameters + if (strpos($body, "report_by_user") !== false || strpos($body, "report_by_process") !== false) { + //remove if the command is old and contains an incorrect definition of the date + $body = preg_replace("/\s\+init-date\"[0-9\-\s:]+\"/", "", $body); + $body = preg_replace("/\s\+finish-date\"[0-9\-\s:]+\"/", "", $body); + + //the start date must be one month back from the current date. + $currentDate = date("Y-m-d H:i:s"); + $oneMonthAgo = $currentDate . " -1 month"; + $timestamp = strtotime($oneMonthAgo); + $oneMonthAgo = date("Y-m-d H:i:s", $timestamp); + + $body = str_replace("report_by_user", "report_by_user +init-date'{$oneMonthAgo}' +finish-date'{$currentDate}'", $body); + $body = str_replace("report_by_process", "report_by_process +init-date'{$oneMonthAgo}' +finish-date'{$currentDate}'", $body); + } + $schedule = $that->schedule->exec($body)->cron($p->expression)->between($starting, $ending)->timezone($timezone)->when(function () use ($p) { $now = Carbon::now(); $result = false; diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/TaskSchedulerBM.php b/workflow/engine/src/ProcessMaker/BusinessModel/TaskSchedulerBM.php index d16939f99..e511107b7 100755 --- a/workflow/engine/src/ProcessMaker/BusinessModel/TaskSchedulerBM.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/TaskSchedulerBM.php @@ -172,9 +172,7 @@ class TaskSchedulerBM "everyOn" => "1", "interval" => "week", "expression" => "*/10 * * * 0,1,2,3,4,5,6", - "description" => "ID_TASK_SCHEDULER_REPORT_USERS_DESC", - "initDate" => "+init-date", - "finishDate" => "+finish-date" + "description" => "ID_TASK_SCHEDULER_REPORT_USERS_DESC" ], [ "title" => "ID_TASK_SCHEDULER_REPORT_PROCESS", @@ -191,9 +189,7 @@ class TaskSchedulerBM "everyOn" => "1", "interval" => "week", "expression" => "*/10 * * * 0,1,2,3,4,5,6", - "description" => "ID_TASK_SCHEDULER_CALCULATE_APP_DESC", - "initDate" => "+init-date", - "finishDate" => "+finish-date" + "description" => "ID_TASK_SCHEDULER_CALCULATE_APP_DESC" ], [ "title" => "ID_TASK_SCHEDULER_LDAP", @@ -283,25 +279,10 @@ class TaskSchedulerBM $task->description = $service["description"]; $task->startingTime = $service["startingTime"]; $task->endingTime = $service["endingTime"]; - $activity = $service["service"]; - - //for init date and finish date parameters - $currentDate = date("Y-m-d H:i:s"); - $setOfActivities = ["report_by_user", "report_by_process"]; - if (!empty($service["initDate"]) && in_array($activity, $setOfActivities)) { - $oneMonthAgo = $currentDate . " -1 month"; - $timestamp = strtotime($oneMonthAgo); - $oneMonthAgo = date("Y-m-d H:i:s", $timestamp); - $activity = $activity . ' ' . $service["initDate"] . '"' . $oneMonthAgo . '"'; - } - if (!empty($service["finishDate"]) && in_array($activity, $setOfActivities)) { - $activity = $activity . ' ' . $service["initDate"] . '"' . $currentDate . '"'; - } - if ($win) { - $task->body = 'php "' . PATH_TRUNK . $service["filew"] . '" ' . $activity . ' +w' . config("system.workspace") . ' +force +async'; + $task->body = 'php "' . PATH_TRUNK . $service["filew"] . '" ' . $service["service"] . ' +w' . config("system.workspace") . ' +force +async'; } else { - $task->body = 'su -s /bin/sh -c "php ' . PATH_TRUNK . $service["file"] . " " . $activity . ' +w' . config("system.workspace") . ' +force +async"'; + $task->body = 'su -s /bin/sh -c "php ' . PATH_TRUNK . $service["file"] . " " . $service["service"] . ' +w' . config("system.workspace") . ' +force +async"'; } $task->expression = $service["expression"]; $task->type = "shell";