diff --git a/features/backend/projects/case_scheduler/basic_sequence_case_scheduler.feature b/features/backend/projects/case_scheduler/basic_sequence_case_scheduler.feature index e3a48c3a4..c72ee983f 100644 --- a/features/backend/projects/case_scheduler/basic_sequence_case_scheduler.feature +++ b/features/backend/projects/case_scheduler/basic_sequence_case_scheduler.feature @@ -66,7 +66,8 @@ Feature: Case Scheduler Resources "sch_start_day_opt_2": "", "sch_months": "1|6|12", "sch_repeat_every": "", - "sch_repeat_until": "" + "sch_repeat_until": "", + "sch_state": "ACTIVE" } """ And that I want to update a resource with the key "sch_uid" stored in session array diff --git a/features/backend/projects/case_scheduler/main_tests_case_scheduler.feature b/features/backend/projects/case_scheduler/main_tests_case_scheduler.feature index b6d74f0a0..a0c3c7082 100644 --- a/features/backend/projects/case_scheduler/main_tests_case_scheduler.feature +++ b/features/backend/projects/case_scheduler/main_tests_case_scheduler.feature @@ -113,7 +113,8 @@ Feature: Case Scheduler Main Tests "sch_start_day_opt_1": "", "sch_months": "", "sch_start_day_opt_2": "", - "sch_repeat_every": "" + "sch_repeat_every": "", + "sch_state": "" } """ And that I want to update a resource with the key "sch_uid" stored in session array as variable "sch_uid_" @@ -124,12 +125,12 @@ Feature: Case Scheduler Main Tests Examples: - | test_description | sch_uid_number | sch_del_user_name | sch_del_user_pass | tas_uid | sch_name | sch_option | sch_start_date | sch_end_date | sch_start_time | sch_week_days | sch_start_day | sch_start_day_opt_1 | sch_months | sch_start_day_opt_2 | sch_repeat_every | - | Update Daily | 1 | admin | admin | 1352844695225ff5fe54de2005407079 | Update Case Scheduler-Daily 123@#$ | 1 | 2014-02-30 | 2014-03-20 | 12:30 | | | | | | | - | Update Weekly, sch_week_days=monday | 2 | admin | admin | 1352844695225ff5fe54de2005407079 | Update Case Scheduler-Weekly monday 345%$# | 2 | 2014-03-20 | 2014-04-20 | 08:30 | 2 | | | | | | - | Update Monthly and day of month, day of month=1, of the month(s)=3,4 | 4 | admin | admin | 1352844695225ff5fe54de2005407079 | Update Case Scheduler-Monthly 567&^% 1 | 3 | 2014-04-21 | 2014-05-18 | 18:30 | | 1 | 18 | 3\|4\|5 | | | - | Update One time only | 12 | admin | admin | 1352844695225ff5fe54de2005407079 | Update Case Scheduler-One Time only 678%$@ | 4 | | | 20:30 | | | | | | | - | Update Every | 13 | admin | admin | 1352844695225ff5fe54de2005407079 | Update Case Scheduler-Every 987&%@ | 5 | | | | | | | | | 18.30 | + | test_description | sch_uid_number | sch_del_user_name | sch_del_user_pass | tas_uid | sch_name | sch_option | sch_start_date | sch_end_date | sch_start_time | sch_week_days | sch_start_day | sch_start_day_opt_1 | sch_months | sch_start_day_opt_2 | sch_repeat_every |sch_state | + | Update Daily | 1 | admin | admin | 1352844695225ff5fe54de2005407079 | Update Case Scheduler-Daily 123@#$ | 1 | 2014-02-30 | 2014-03-20 | 12:30 | | | | | | |ACTIVE | + | Update Weekly, sch_week_days=monday | 2 | admin | admin | 1352844695225ff5fe54de2005407079 | Update Case Scheduler-Weekly monday 345%$# | 2 | 2014-03-20 | 2014-04-20 | 08:30 | 2 | | | | | |ACTIVE | + | Update Monthly and day of month, day of month=1, of the month(s)=3,4 | 4 | admin | admin | 1352844695225ff5fe54de2005407079 | Update Case Scheduler-Monthly 567&^% 1 | 3 | 2014-04-21 | 2014-05-18 | 18:30 | | 1 | 18 | 3\|4\|5 | | |ACTIVE | + | Update One time only | 12 | admin | admin | 1352844695225ff5fe54de2005407079 | Update Case Scheduler-One Time only 678%$@ | 4 | | | 20:30 | | | | | | |ACTIVE | + | Update Every | 13 | admin | admin | 1352844695225ff5fe54de2005407079 | Update Case Scheduler-Every 987&%@ | 5 | | | | | | | | | 18.30 |ACTIVE | Scenario Outline: Get a single case scheduler of a project and check some properties diff --git a/workflow/engine/src/BusinessModel/CaseScheduler.php b/workflow/engine/src/BusinessModel/CaseScheduler.php index 90d99e737..ecca9db2e 100644 --- a/workflow/engine/src/BusinessModel/CaseScheduler.php +++ b/workflow/engine/src/BusinessModel/CaseScheduler.php @@ -246,7 +246,7 @@ class CaseScheduler $oCriteria->add( \UsersPeer::USR_USERNAME, $sWS_USER ); $userIsAssigned = \GroupUserPeer::doCount( $oCriteria ); if (! ($userIsAssigned >= 1)) { - throw (new \Exception( "The User `" . $sWS_USER . "` doesn't have the activity `" . $sTASKS . "` assigned")); + throw (new \Exception( "The User \'" . $sWS_USER . "\' doesn't have the activity \'" . $sTASKS . "\' assigned")); } } $oDataset = \TaskUserPeer::doSelectRS($oCriteria); @@ -290,7 +290,7 @@ class CaseScheduler throw (new \Exception( 'Task not found for id: '. $aData['TAS_UID'])); } if ($aData['SCH_NAME']=='') { - throw (new \Exception( '`sch_name` can`t be empty')); + throw (new \Exception( '\'sch_name\' can\'t be empty')); } if ($this->existsName($sProcessUID, $aData['SCH_NAME'])) { throw (new \Exception( 'Duplicate Case Scheduler name')); @@ -304,23 +304,23 @@ class CaseScheduler if ($sOption != '5') { $pattern="/^([0-1][0-9]|[2][0-3])[\:]([0-5][0-9])$/"; if (!preg_match($pattern, $aData['SCH_START_TIME'])) { - throw (new \Exception( 'Invalid value specified for `sch_start_time`. Expecting time in HH:MM format (The time can not be increased to 23:59)')); + throw (new \Exception( 'Invalid value specified for \'sch_start_time\'. Expecting time in HH:MM format (The time can not be increased to 23:59)')); } } $patternDate="/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/"; if ($sOption == '1' || $sOption == '2' || $sOption == '3') { if (!preg_match($patternDate, $aData['SCH_START_DATE'])) { - throw (new \Exception( 'Invalid value specified for `sch_start_date`. Expecting date in `YYYY-MM-DD` format, such as `2014-01-01`')); + throw (new \Exception( 'Invalid value specified for \'sch_start_date\'. Expecting date in \'YYYY-MM-DD\' format, such as \'2014-01-01\'')); } } if ($sOption == '1' || $sOption == '2' || $sOption == '3') { if (!preg_match($patternDate, $aData['SCH_END_DATE'])) { - throw (new \Exception( 'Invalid value specified for `sch_end_date`. Expecting date in `YYYY-MM-DD` format, such as `2014-01-01`')); + throw (new \Exception( 'Invalid value specified for \'sch_end_date\'. Expecting date in \'YYYY-MM-DD\' format, such as \'2014-01-01\'')); } } if ($sOption == '1' || $sOption == '2' || $sOption == '3') { if ($aData['SCH_START_DATE'] == "") { - throw (new \Exception( '`sch_start_date` can`t be null')); + throw (new \Exception( '\'sch_start_date\' can\'t be null')); } } if ($sOption == '2') { @@ -368,7 +368,7 @@ class CaseScheduler break; case '2': // If the option is zero, set by default 1 if ($aData['SCH_WEEK_DAYS'] == "") { - throw (new \Exception( '`sch_week_days` can`t be null')); + throw (new \Exception( '\'sch_week_days\' can\'t be null')); } else { $weeks = $aData['SCH_WEEK_DAYS']; $weeks = explode("|", $weeks); @@ -376,7 +376,7 @@ class CaseScheduler if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7") { $aData['SCH_WEEK_DAYS'] = $aData['SCH_WEEK_DAYS']; } else { - throw (new \Exception( 'Invalid value specified for `sch_week_days`')); + throw (new \Exception( 'Invalid value specified for \'sch_week_days\'')); } } } @@ -397,50 +397,50 @@ class CaseScheduler case '3': $nStartDay = $aData['SCH_START_DAY']; if ($nStartDay == "") { - throw (new \Exception( '`sch_start_day` can`t be null')); + throw (new \Exception( '\'sch_start_day\' can\'t be null')); } if ($nStartDay == 1) { if ($aData['SCH_START_DAY_OPT_1'] == "") { - throw (new \Exception( '`sch_start_day_opt_1` can`t be null')); + throw (new \Exception( '\'sch_start_day_opt_1\' can\'t be null')); } $temp = $aData['SCH_START_DAY_OPT_1']; $temp = (int)$temp; if ($temp >= 1 && $temp <= 31) { $aData['SCH_START_DAY_OPT_1'] = $aData['SCH_START_DAY_OPT_1']; } else { - throw (new \Exception( 'Invalid value specified for `sch_start_day_opt_1`. Must be between 1 and 31')); + throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_1\'. Must be between 1 and 31')); } $aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_1']; } else { if ($aData['SCH_START_DAY_OPT_2'] == "") { - throw (new \Exception( '`sch_start_day_opt_2` can`t be null')); + throw (new \Exception( '\'sch_start_day_opt_2\' can\'t be null')); } $aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_2']; $optionTwo = $aData['SCH_START_DAY_OPT_2']{0}; if ($optionTwo == "1" || $optionTwo == "2" || $optionTwo == "3" || $optionTwo == "4" || $optionTwo == "5") { $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; } else { - throw (new \Exception( 'Invalid value specified for `sch_start_day_opt_2`')); + throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); } $pipelineTwo = $aData['SCH_START_DAY_OPT_2']{1}; if ($pipelineTwo == "|") { $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; } else { - throw (new \Exception( 'Invalid value specified for `sch_start_day_opt_2`')); + throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); } $dayTwo = $aData['SCH_START_DAY_OPT_2']{2}; if ($dayTwo == "1" || $dayTwo == "2" || $dayTwo == "3" || $dayTwo == "4" || $dayTwo == "5" || $dayTwo == "6" || $dayTwo == "7") { $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; } else { - throw (new \Exception( 'Invalid value specified for `sch_start_day_opt_2`')); + throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); } } if ($nStartDay == "") { - throw (new \Exception( '`sch_start_day` can`t be null')); + throw (new \Exception( '\'sch_start_day\' can\'t be null')); } $sMonths = ''; if ($aData['SCH_MONTHS'] == "") { - throw (new \Exception( '`sch_months` can`t be null')); + throw (new \Exception( '\'sch_months\' can\'t be null')); } if (! empty( $aData['SCH_MONTHS'] )) { $aMonths = $aData['SCH_MONTHS']; @@ -449,7 +449,7 @@ class CaseScheduler if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7"|| $row == "8" || $row == "9" || $row == "10"|| $row == "11" || $row == "12") { $aData['SCH_MONTHS'] = $aData['SCH_MONTHS']; } else { - throw (new \Exception( 'Invalid value specified for `sch_months`')); + throw (new \Exception( 'Invalid value specified for \'sch_months\'')); } } } @@ -508,11 +508,11 @@ class CaseScheduler $aData['SCH_START_TIME'] = time(); $aData['SCH_START_DATE'] = $aData['SCH_START_TIME']; if ($aData['SCH_REPEAT_EVERY'] == "") { - throw (new \Exception( '`sch_repeat_every` can`t be null')); + throw (new \Exception( '\'sch_repeat_every\' can\'t be null')); } $patternHour="/^([0-1][0-9]|[2][0-3])[\.]([0-5][0-9])$/"; if (!preg_match($patternHour, $aData['SCH_REPEAT_EVERY'])) { - throw (new \Exception( 'Invalid value specified for `sch_repeat_every`. Expecting time in HH.MM format')); + throw (new \Exception( 'Invalid value specified for \'sch_repeat_every\'. Expecting time in HH.MM format')); } $nextRun = $aData['SCH_REPEAT_EVERY'] * 60 * 60; $aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY']; @@ -581,7 +581,7 @@ class CaseScheduler throw (new \Exception( 'Task not found for id: '. $aData['TAS_UID'])); } if ($aData['SCH_NAME']=='') { - throw (new \Exception( '`sch_name` can`t be empty')); + throw (new \Exception( '\'sch_name\' can\'t be empty')); } if ($this->existsNameUpdate($sSchUID, $aData['SCH_NAME'])) { throw (new \Exception( 'Duplicate Case Scheduler name')); @@ -595,23 +595,23 @@ class CaseScheduler if ($sOption != '5') { $pattern="/^([0-1][0-9]|[2][0-3])[\:]([0-5][0-9])$/"; if (!preg_match($pattern, $aData['SCH_START_TIME'])) { - throw (new \Exception( 'Invalid value specified for `sch_start_time`. Expecting time in HH:MM format (The time can not be increased to 23:59)')); + throw (new \Exception( 'Invalid value specified for \'sch_start_time\'. Expecting time in HH:MM format (The time can not be increased to 23:59)')); } } $patternDate="/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/"; if ($sOption == '1' || $sOption == '2' || $sOption == '3') { if (!preg_match($patternDate, $aData['SCH_START_DATE'])) { - throw (new \Exception( 'Invalid value specified for `sch_start_date`. Expecting date in `YYYY-MM-DD` format, such as `2014-01-01`')); + throw (new \Exception( 'Invalid value specified for \'sch_start_date\'. Expecting date in \'YYYY-MM-DD\' format, such as \'2014-01-01\'')); } } if ($sOption == '1' || $sOption == '2' || $sOption == '3') { if (!preg_match($patternDate, $aData['SCH_END_DATE'])) { - throw (new \Exception( 'Invalid value specified for `sch_end_date`. Expecting date in `YYYY-MM-DD` format, such as `2014-01-01`')); + throw (new \Exception( 'Invalid value specified for \'sch_end_date\'. Expecting date in \'YYYY-MM-DD\' format, such as \'2014-01-01\'')); } } if ($sOption == '1' || $sOption == '2' || $sOption == '3') { if ($aData['SCH_START_DATE'] == "") { - throw (new \Exception( '`sch_start_date` can`t be null')); + throw (new \Exception( '\'sch_start_date\' can\'t be null')); } } if ($sOption == '2') { @@ -622,8 +622,15 @@ class CaseScheduler $oCaseScheduler = new \CaseScheduler(); $aData['SCH_UID'] = $sSchUID; $aData['PRO_UID'] = $sProcessUID; - $aData['SCH_STATE'] = 'ACTIVE'; - $aData['SCH_LAST_STATE'] = 'CREATED'; // 'ACTIVE'; + if ($aData['SCH_STATE'] == "" || $aData['SCH_STATE'] == null) { + throw (new \Exception( '\'sch_state\' can\'t be null')); + } else { + if ($aData['SCH_STATE'] == 'ACTIVE') { + $aData['SCH_LAST_STATE'] = 'CREATED'; + } else { + $aData['SCH_LAST_STATE'] = 'ACTIVE'; + } + } $aData['USR_UID'] = $userUID; $aData['SCH_DEL_USER_UID'] = $aData['USR_UID']; $sTimeTmp = $aData['SCH_START_TIME']; @@ -659,7 +666,7 @@ class CaseScheduler break; case '2': // If the option is zero, set by default 1 if ($aData['SCH_WEEK_DAYS'] == "") { - throw (new \Exception( '`sch_week_days` can`t be null')); + throw (new \Exception( '\'sch_week_days\' can\'t be null')); } else { $weeks = $aData['SCH_WEEK_DAYS']; $weeks = explode("|", $weeks); @@ -667,7 +674,7 @@ class CaseScheduler if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7") { $aData['SCH_WEEK_DAYS'] = $aData['SCH_WEEK_DAYS']; } else { - throw (new \Exception( 'Invalid value specified for `sch_week_days`')); + throw (new \Exception( 'Invalid value specified for \'sch_week_days\'')); } } } @@ -688,50 +695,50 @@ class CaseScheduler case '3': $nStartDay = $aData['SCH_START_DAY']; if ($nStartDay == "") { - throw (new \Exception( '`sch_start_day` can`t be null')); + throw (new \Exception( '\'sch_start_day\' can\'t be null')); } if ($nStartDay == 1) { if ($aData['SCH_START_DAY_OPT_1'] == "") { - throw (new \Exception( '`sch_start_day_opt_1` can`t be null')); + throw (new \Exception( '\'sch_start_day_opt_1\' can\'t be null')); } $temp = $aData['SCH_START_DAY_OPT_1']; $temp = (int)$temp; if ($temp >= 1 && $temp <= 31) { $aData['SCH_START_DAY_OPT_1'] = $aData['SCH_START_DAY_OPT_1']; } else { - throw (new \Exception( 'Invalid value specified for `sch_start_day_opt_1`. Must be between 1 and 31')); + throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_1\'. Must be between 1 and 31')); } $aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_1']; } else { if ($aData['SCH_START_DAY_OPT_2'] == "") { - throw (new \Exception( '`sch_start_day_opt_2` can`t be null')); + throw (new \Exception( '\'sch_start_day_opt_2\' can\'t be null')); } $aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_2']; $optionTwo = $aData['SCH_START_DAY_OPT_2']{0}; if ($optionTwo == "1" || $optionTwo == "2" || $optionTwo == "3" || $optionTwo == "4" || $optionTwo == "5") { $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; } else { - throw (new \Exception( 'Invalid value specified for `sch_start_day_opt_2`')); + throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); } $pipelineTwo = $aData['SCH_START_DAY_OPT_2']{1}; if ($pipelineTwo == "|") { $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; } else { - throw (new \Exception( 'Invalid value specified for `sch_start_day_opt_2`')); + throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); } $dayTwo = $aData['SCH_START_DAY_OPT_2']{2}; if ($dayTwo == "1" || $dayTwo == "2" || $dayTwo == "3" || $dayTwo == "4" || $dayTwo == "5" || $dayTwo == "6" || $dayTwo == "7") { $aData['SCH_START_DAY_OPT_2'] = $aData['SCH_START_DAY_OPT_2']; } else { - throw (new \Exception( 'Invalid value specified for `sch_start_day_opt_2`')); + throw (new \Exception( 'Invalid value specified for \'sch_start_day_opt_2\'')); } } if ($nStartDay == "") { - throw (new \Exception( '`sch_start_day` can`t be null')); + throw (new \Exception( '\'sch_start_day\' can\'t be null')); } $sMonths = ''; if ($aData['SCH_MONTHS'] == "") { - throw (new \Exception( '`sch_months` can`t be null')); + throw (new \Exception( '\'sch_months\' can\'t be null')); } if (! empty( $aData['SCH_MONTHS'] )) { $aMonths = $aData['SCH_MONTHS']; @@ -740,7 +747,7 @@ class CaseScheduler if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5"|| $row == "6" || $row == "7"|| $row == "8" || $row == "9" || $row == "10"|| $row == "11" || $row == "12") { $aData['SCH_MONTHS'] = $aData['SCH_MONTHS']; } else { - throw (new \Exception( 'Invalid value specified for `sch_months`')); + throw (new \Exception( 'Invalid value specified for \'sch_months\'')); } } } @@ -799,11 +806,11 @@ class CaseScheduler $aData['SCH_START_TIME'] = time(); $aData['SCH_START_DATE'] = $aData['SCH_START_TIME']; if ($aData['SCH_REPEAT_EVERY'] == "") { - throw (new \Exception( '`sch_repeat_every` can`t be null')); + throw (new \Exception( '\'sch_repeat_every\' can\'t be null')); } $patternHour="/^([0-1][0-9]|[2][0-3])[\.]([0-5][0-9])$/"; if (!preg_match($patternHour, $aData['SCH_REPEAT_EVERY'])) { - throw (new \Exception( 'Invalid value specified for `sch_repeat_every`. Expecting time in HH.MM format')); + throw (new \Exception( 'Invalid value specified for \'sch_repeat_every\'. Expecting time in HH.MM format')); } $nextRun = $aData['SCH_REPEAT_EVERY'] * 60 * 60; $aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY']; diff --git a/workflow/engine/src/Services/Api/ProcessMaker/Project/CaseScheduler.php b/workflow/engine/src/Services/Api/ProcessMaker/Project/CaseScheduler.php index ee02526dd..0a34c2732 100644 --- a/workflow/engine/src/Services/Api/ProcessMaker/Project/CaseScheduler.php +++ b/workflow/engine/src/Services/Api/ProcessMaker/Project/CaseScheduler.php @@ -159,7 +159,7 @@ class CaseSchedulerStructure public $sch_last_run_time; /** - * @var string {@from body} {@min 0} {@max 15} + * @var string {@from body} {@choice ACTIVE,INACTIVE} */ public $sch_state;