/** * Create/Update CaseScheduler * * @param string $caseSchedulerUid Unique id of CaseScheduler * @param string $projectUid Unique id of Project * @param string $userUidCreatorUpdater Unique id of creator/updater User * @param array $arrayData Data * @param array $arrayDataPlugin Data plugin * * return void */ public function createUpdate($caseSchedulerUid, $projectUid, $userUidCreatorUpdater, array $arrayData, array $arrayDataPlugin = array()) { try { //Set variables $flagInsert = $caseSchedulerUid == "" ? true : false; $option = $flagInsert ? "INS" : "UPD"; //Set data if ($flagInsert) { $caseSchedulerUid = \ProcessMaker\Util\Common::generateUID(); } foreach ($arrayData as $key => $value) { if (is_array($value)) { foreach ($value as $key2 => $value2) { $arrayData[$key][$key2] = trim($value2); } } else { $arrayData[$key] = trim($value); } } $arrayCaseSchedulerData = array(); $arrayCaseSchedulerData["SCH_UID"] = $caseSchedulerUid; $arrayCaseSchedulerData["SCH_NAME"] = $arrayData["SCH_NAME"]; $arrayCaseSchedulerData["PRO_UID"] = $projectUid; $arrayCaseSchedulerData["TAS_UID"] = $arrayData["TAS_UID"]; $arrayCaseSchedulerData["SCH_DEL_USER_UID"] = $arrayData["SCH_USER_UID"]; $arrayCaseSchedulerData["SCH_DEL_USER_NAME"] = $arrayData["SCH_USER_NAME"]; switch ($option) { case "INS": $arrayCaseSchedulerData["SCH_DEL_USER_PASS"] = \Bootstrap::hashPassword($arrayData["SCH_USER_PASSWORD"]); $arrayCaseSchedulerData["SCH_STATE"] = "ACTIVE"; $arrayCaseSchedulerData["SCH_LAST_STATE"] = "CREATED"; $sDateTmp = $arrayData["SCH_START_DATE"] != "" ? $arrayData["SCH_START_DATE"] : date("Y-m-d"); break; case "UPD": if ($arrayData["SCH_USER_PASSWORD"] != "DefaultPM") { $arrayCaseSchedulerData["SCH_DEL_USER_PASS"] = \Bootstrap::hashPassword($arrayData["SCH_USER_PASSWORD"]); } $sDateTmp = $arrayData["SCH_START_DATE"]; break; } $caseSchedulerOption = (int) $arrayData["SCH_OPTION"]; $arrayCaseSchedulerData["USR_UID"] = $userUidCreatorUpdater; $arrayCaseSchedulerData["SCH_OPTION"] = $caseSchedulerOption; $arrayCaseSchedulerData["SCH_START_TIME"] = date("Y-m-d", strtotime($sDateTmp)) . " " . date("H:i:s", strtotime($arrayData["SCH_START_TIME"])); $arrayCaseSchedulerData["SCH_START_DATE"] = date("Y-m-d", strtotime($sDateTmp)) . " " . date("H:i:s", strtotime($arrayData["SCH_START_TIME"])); $sValue = ""; $sDaysPerformTask = ""; $sWeeks = ""; $sMonths = ""; switch ($option) { case "INS": $arrayCaseSchedulerData["SCH_START_DAY"] = ""; $arrayCaseSchedulerData["SCH_REPEAT_EVERY"] = ""; $arrayCaseSchedulerData["SCH_REPEAT_UNTIL"] = ""; $arrayCaseSchedulerData["SCH_DAYS_PERFORM_TASK"] = ""; break; case "UPD": break; } switch ($caseSchedulerOption) { case 1: //Option 1 $sValue = $arrayData["SCH_DAYS_PERFORM_TASK"]; switch ($sValue) { case "1": $arrayCaseSchedulerData["SCH_DAYS_PERFORM_TASK"] = $arrayData["SCH_DAYS_PERFORM_TASK"] . "|1"; break; case "2": $arrayCaseSchedulerData["SCH_OPTION"] = "2"; $arrayCaseSchedulerData["SCH_EVERY_DAYS"] = "1"; $arrayCaseSchedulerData["SCH_WEEK_DAYS"] = "1|2|3|4|5|"; break; case "3": //Every [n] Days $sDaysPerformTask = $arrayData["SCH_DAYS_PERFORM_TASK_OPT_3"]; $arrayCaseSchedulerData["SCH_DAYS_PERFORM_TASK"] = $arrayData["SCH_DAYS_PERFORM_TASK"] . "|" . $arrayData["SCH_DAYS_PERFORM_TASK_OPT_3"]; break; } break; case 2: //If the option is zero, set by default 1 $arrayCaseSchedulerData["SCH_EVERY_DAYS"] = empty($arrayData["SCH_EVERY_DAYS"]) ? 1 : $arrayData["SCH_EVERY_DAYS"]; $sWeeks = ""; if (!empty($arrayData["SCH_WEEK_DAYS"])) { $aWeekDays = $arrayData["SCH_WEEK_DAYS"]; foreach ($aWeekDays as $value) { $sWeeks = $sWeeks . $value . "|"; } } if (!empty($arrayData["SCH_WEEK_DAYS_2"])) { $aWeekDays2 = $arrayData["SCH_WEEK_DAYS_2"]; foreach ($aWeekDays2 as $value) { $sWeeks = $sWeeks . $value . "|"; } } $sStartTime = $arrayData["SCH_START_TIME"]; $arrayCaseSchedulerData["SCH_WEEK_DAYS"] = $sWeeks; break; case 3: $nStartDay = $arrayData["SCH_START_DAY"]; if ($nStartDay == 1) { $arrayCaseSchedulerData["SCH_START_DAY"] = $nStartDay . "|" . $arrayData["SCH_START_DAY_OPT_1"]; } else { $arrayCaseSchedulerData["SCH_START_DAY"] = $nStartDay . "|" . $arrayData["SCH_START_DAY_OPT_2_WEEKS"] . "|" . $arrayData["SCH_START_DAY_OPT_2_DAYS_WEEK"]; } $sMonths = ""; if (!empty($arrayData["SCH_MONTHS"])) { $aMonths = $arrayData["SCH_MONTHS"]; foreach ($aMonths as $value) { $sMonths = $sMonths . $value . "|"; } } if (!empty($arrayData["SCH_MONTHS_2"])) { $aMonths2 = $arrayData["SCH_MONTHS_2"]; foreach ($aMonths2 as $value) { $sMonths = $sMonths . $value . "|"; } } if (!empty($arrayData["SCH_MONTHS_3"])) { $aMonths3 = $arrayData["SCH_MONTHS_3"]; foreach ($aMonths3 as $value) { $sMonths = $sMonths . $value . "|"; } } $arrayCaseSchedulerData["SCH_MONTHS"] = $sMonths; $sValue = $nStartDay; break; } $caseScheduler = new \CaseScheduler(); $recalculateDate = false; $recalculateTime = false; switch ($option) { case "INS": $recalculateDate = true; $recalculateTime = true; break; case "UPD": $arrayDataAux = $caseScheduler->load($caseSchedulerUid); $arrayCaseSchedulerData["SCH_END_DATE"] = $arrayData["SCH_END_DATE"] != "" ? $arrayData["SCH_END_DATE"] : null; //If the start date has changed then recalculate the next run time $recalculateDate = $arrayData["SCH_START_DATE"] != $arrayData["PREV_SCH_START_DATE"] ? true : false; $recalculateTime = date("H:i:s", strtotime($arrayData["SCH_START_TIME"])) != date("H:i:s", strtotime($arrayData["PREV_SCH_START_TIME"])) ? true : false; break; } switch ($caseSchedulerOption) { case 4: //$arrayCaseSchedulerData["SCH_END_DATE"] = $arrayCaseSchedulerData["SCH_START_TIME"]; break; case 5: switch ($option) { case "INS": $arrayCaseSchedulerData["SCH_START_TIME"] = time(); $arrayCaseSchedulerData["SCH_START_DATE"] = $arrayCaseSchedulerData["SCH_START_TIME"]; break; case "UPD": break; } $arrayCaseSchedulerData["SCH_REPEAT_EVERY"] = $arrayData["SCH_REPEAT_EVERY"]; break; } switch ($option) { case "INS": $arrayCaseSchedulerData["SCH_TIME_NEXT_RUN"] = date("Y-m-d") . " " . ($caseSchedulerOption != 5 ? $arrayData["SCH_START_TIME"] . ":00" : date("H:i:s")); if ($arrayData["SCH_END_DATE"] != "") { $arrayCaseSchedulerData["SCH_END_DATE"] = $arrayData["SCH_END_DATE"]; } break; case "UPD": break; } //if (!empty($arrayData["SCH_REPEAT_TASK_CHK"])) { // if ($arrayData["SCH_REPEAT_EVERY_OPT"] . "" == "2") { // $arrayCaseSchedulerData["SCH_REPEAT_EVERY"] = ((int)($arrayData["SCH_REPEAT_EVERY"])) * 60; // } else { // $arrayCaseSchedulerData["SCH_REPEAT_EVERY"] = (int)($arrayData["SCH_REPEAT_EVERY"]); // } //} //Create/Update $caseSchedulerAux = new \CaseScheduler(); $caseSchedulerUid = ""; $arrayCaseSchedulerDataOld = array(); switch ($option) { case "INS": if (isset($arrayData["CASE_SH_PLUGIN_UID"]) && $arrayData["CASE_SH_PLUGIN_UID"] != "") { $arrayCaseSchedulerData["CASE_SH_PLUGIN_UID"] = $arrayData["CASE_SH_PLUGIN_UID"]; } $result = $caseScheduler->create($arrayCaseSchedulerData); $caseSchedulerUid = $caseScheduler->getSchUid(); $arrayCaseSchedulerDataOld = $caseSchedulerAux->load($caseSchedulerUid); break; case "UPD": $caseSchedulerUid = $caseScheduler->getSchUid(); $arrayCaseSchedulerDataOld = $caseSchedulerAux->load($caseSchedulerUid); $result = $caseScheduler->update($arrayCaseSchedulerData); break; } //Update the SCH_TIME_NEXT_RUN field $caseScheduler = new \CaseScheduler(); $arrayCaseSchedulerData = $caseScheduler->load($caseSchedulerUid); $flagUpdateTimeNextRun = false; switch ((int) $arrayCaseSchedulerData["SCH_OPTION"]) { case 1: //Daily $flagUpdateTimeNextRun = $recalculateDate || $recalculateTime; break; case 2: //Weekly $flagUpdateTimeNextRun = $recalculateDate || $recalculateTime || $arrayCaseSchedulerData["SCH_WEEK_DAYS"] != $arrayCaseSchedulerDataOld["SCH_WEEK_DAYS"]; break; case 3: //Monthly $flagUpdateTimeNextRun = $recalculateDate || $recalculateTime || $arrayCaseSchedulerData["SCH_START_DAY"] != $arrayCaseSchedulerDataOld["SCH_START_DAY"] || $arrayCaseSchedulerData["SCH_MONTHS"] != $arrayCaseSchedulerDataOld["SCH_MONTHS"]; break; case 4: //One time only $flagUpdateTimeNextRun = $recalculateTime || $arrayCaseSchedulerData["SCH_START_TIME"] != $arrayCaseSchedulerDataOld["SCH_START_TIME"]; break; case 5: //Every $flagUpdateTimeNextRun = $option == "INS" || $arrayCaseSchedulerData["SCH_REPEAT_EVERY"] != $arrayCaseSchedulerDataOld["SCH_REPEAT_EVERY"]; break; } if ($flagUpdateTimeNextRun) { $caseSchedulerTimeNextRunNew = $caseScheduler->getTimeNextRunByDate($arrayCaseSchedulerData, date("Y-m-d H:i:s")); } //Plugin if (isset($arrayData["CASE_SH_PLUGIN_UID"]) && $arrayData["CASE_SH_PLUGIN_UID"] != "") { $oPluginRegistry =& \PMPluginRegistry::getSingleton(); $activePluginsForCaseScheduler = $oPluginRegistry->getCaseSchedulerPlugins(); $params = explode("--", $arrayData["CASE_SH_PLUGIN_UID"]); foreach ($activePluginsForCaseScheduler as $key => $caseSchedulerPluginDetail) { if ($caseSchedulerPluginDetail->sNamespace == $params[0] && $caseSchedulerPluginDetail->sActionId == $params[1]) { $caseSchedulerSelected = $caseSchedulerPluginDetail; } } if (isset($caseSchedulerSelected) && is_object($caseSchedulerSelected)) { //Save the form $arrayDataPlugin["SCH_UID"] = $arrayCaseSchedulerData["SCH_UID"]; $oPluginRegistry->executeMethod($caseSchedulerPluginDetail->sNamespace, $caseSchedulerPluginDetail->sActionSave, $arrayDataPlugin); } } } catch (\Exception $e) { throw $e; } }
/** * Create/Update CaseScheduler * * @param string $caseSchedulerUid Unique id of CaseScheduler * @param string $projectUid Unique id of Project * @param string $userUidCreatorUpdater Unique id of creator/updater User * @param array $arrayData Data * @param array $arrayDataPlugin Data plugin * * return void */ public function createUpdate($caseSchedulerUid, $projectUid, $userUidCreatorUpdater, array $arrayData, array $arrayDataPlugin = array()) { try { //Set variables $flagInsert = ($caseSchedulerUid == "")? true : false; $option = ($flagInsert)? "INS" : "UPD"; //Set data if ($flagInsert) { $caseSchedulerUid = \ProcessMaker\Util\Common::generateUID(); } foreach ($arrayData as $key => $value) { if (is_array($value)) { foreach ($value as $key2 => $value2) { $arrayData[$key][$key2] = trim($value2); } } else { $arrayData[$key] = trim($value); } } $arrayCaseSchedulerData = array(); $arrayCaseSchedulerData["SCH_UID"] = $caseSchedulerUid; $arrayCaseSchedulerData["SCH_NAME"] = $arrayData["SCH_NAME"]; $arrayCaseSchedulerData["PRO_UID"] = $projectUid; $arrayCaseSchedulerData["TAS_UID"] = $arrayData["TAS_UID"]; $arrayCaseSchedulerData["SCH_DEL_USER_UID"] = $arrayData["SCH_USER_UID"]; $arrayCaseSchedulerData["SCH_DEL_USER_NAME"] = $arrayData["SCH_USER_NAME"]; switch ($option) { case "INS": $arrayCaseSchedulerData["SCH_DEL_USER_PASS"] = \Bootstrap::hashPassword($arrayData["SCH_USER_PASSWORD"]); $arrayCaseSchedulerData["SCH_STATE"] = "ACTIVE"; $arrayCaseSchedulerData["SCH_LAST_STATE"] = "CREATED"; $sDateTmp = ($arrayData["SCH_START_DATE"] != "")? $arrayData["SCH_START_DATE"] : date("Y-m-d"); break; case "UPD": if ($arrayData["SCH_USER_PASSWORD"] != "DefaultPM") { $arrayCaseSchedulerData["SCH_DEL_USER_PASS"] = \Bootstrap::hashPassword($arrayData["SCH_USER_PASSWORD"]); } $sDateTmp = $arrayData["SCH_START_DATE"]; break; } $caseSchedulerOption = (int)($arrayData["SCH_OPTION"]); $arrayCaseSchedulerData["USR_UID"] = $userUidCreatorUpdater; $arrayCaseSchedulerData["SCH_OPTION"] = $caseSchedulerOption; $arrayCaseSchedulerData["SCH_START_TIME"] = date("Y-m-d", strtotime($sDateTmp)) . " " . date("H:i:s", strtotime($arrayData["SCH_START_TIME"])); $arrayCaseSchedulerData["SCH_START_DATE"] = date("Y-m-d", strtotime($sDateTmp)) . " " . date("H:i:s", strtotime($arrayData["SCH_START_TIME"])); $sValue = ""; $sDaysPerformTask = ""; $sWeeks = ""; $sMonths = ""; $sStartDay = ""; switch ($option) { case "INS": $arrayCaseSchedulerData["SCH_START_DAY"] = ""; $arrayCaseSchedulerData["SCH_REPEAT_EVERY"] = ""; $arrayCaseSchedulerData["SCH_REPEAT_UNTIL"] = ""; $arrayCaseSchedulerData["SCH_DAYS_PERFORM_TASK"] = ""; break; case "UPD": break; } switch ($caseSchedulerOption) { case 1: //Option 1 $sValue = $arrayData["SCH_DAYS_PERFORM_TASK"]; switch ($sValue) { case "1": $arrayCaseSchedulerData["SCH_DAYS_PERFORM_TASK"] = $arrayData["SCH_DAYS_PERFORM_TASK"] . "|1"; break; case "2": $arrayCaseSchedulerData["SCH_OPTION"] = "2"; $arrayCaseSchedulerData["SCH_EVERY_DAYS"] = "1"; $arrayCaseSchedulerData["SCH_WEEK_DAYS"] = "1|2|3|4|5|"; break; case "3": //Every [n] Days $sDaysPerformTask = $arrayData["SCH_DAYS_PERFORM_TASK_OPT_3"]; $arrayCaseSchedulerData["SCH_DAYS_PERFORM_TASK"] = $arrayData["SCH_DAYS_PERFORM_TASK"] . "|" . $arrayData["SCH_DAYS_PERFORM_TASK_OPT_3"]; break; } break; case 2: //If the option is zero, set by default 1 $arrayCaseSchedulerData["SCH_EVERY_DAYS"] = (empty($arrayData["SCH_EVERY_DAYS"]))? 1 : $arrayData["SCH_EVERY_DAYS"]; $sWeeks = ""; if (!empty($arrayData["SCH_WEEK_DAYS"])) { $aWeekDays = $arrayData["SCH_WEEK_DAYS"]; foreach ($aWeekDays as $value) { $sWeeks = $sWeeks . $value . "|"; } } if (!empty($arrayData["SCH_WEEK_DAYS_2"])) { $aWeekDays2 = $arrayData["SCH_WEEK_DAYS_2"]; foreach ($aWeekDays2 as $value) { $sWeeks = $sWeeks . $value . "|"; } } $sStartTime = $arrayData["SCH_START_TIME"]; $arrayCaseSchedulerData["SCH_WEEK_DAYS"] = $sWeeks; break; case 3: $nStartDay = $arrayData["SCH_START_DAY"]; if ($nStartDay == 1) { $arrayCaseSchedulerData["SCH_START_DAY"] = $nStartDay . "|" . $arrayData["SCH_START_DAY_OPT_1"]; } else { $arrayCaseSchedulerData["SCH_START_DAY"] = $nStartDay . "|" . $arrayData["SCH_START_DAY_OPT_2_WEEKS"] . "|" . $arrayData["SCH_START_DAY_OPT_2_DAYS_WEEK"]; } $sMonths = ""; if (!empty($arrayData["SCH_MONTHS"])) { $aMonths = $arrayData["SCH_MONTHS"]; foreach ($aMonths as $value) { $sMonths = $sMonths . $value . "|"; } } if (!empty($arrayData["SCH_MONTHS_2"])) { $aMonths2 = $arrayData["SCH_MONTHS_2"]; foreach ($aMonths2 as $value) { $sMonths = $sMonths . $value . "|"; } } if (!empty($arrayData["SCH_MONTHS_3"])) { $aMonths3 = $arrayData["SCH_MONTHS_3"]; foreach ($aMonths3 as $value) { $sMonths = $sMonths . $value . "|"; } } $arrayCaseSchedulerData["SCH_MONTHS"] = $sMonths; $sStartDay = $arrayCaseSchedulerData["SCH_START_DAY"]; $sValue = $nStartDay; break; } $caseScheduler = new \CaseScheduler(); switch ($option) { case "INS": break; case "UPD": $arrayDataAux = $caseScheduler->load($caseSchedulerUid); if ($arrayData["SCH_END_DATE"] != "") { $arrayCaseSchedulerData["SCH_END_DATE"] = $arrayData["SCH_END_DATE"]; } //If the start date has changed then recalculate the next run time $recalculateDate = ($arrayData["SCH_START_DATE"] == $arrayData["PREV_SCH_START_DATE"])? false : true; $recalculateTime = (date("H:i:s", strtotime($arrayData["SCH_START_TIME"])) == date("H:i:s", strtotime($arrayData["PREV_SCH_START_TIME"])))? false : true; break; } $nActualTime = $arrayData["SCH_START_TIME"]; if ($caseSchedulerOption != 1 && $caseSchedulerOption != 4 && $caseSchedulerOption != 5) { if ($sStartDay == "") { $sStartDay = date("Y-m-d"); } $dCurrentDay = (int)(date("d")); $dCurrentMonth = (int)(date("m")); $aStartDay = explode("|", $arrayCaseSchedulerData["SCH_START_DAY"]); if ($caseSchedulerOption == 3 && $aStartDay[0] == "1") { $monthsArray = explode("|", $sMonths); foreach ($monthsArray as $row) { switch ($option) { case "INS": if ((int)($row) == $dCurrentMonth && $dCurrentDay <= (int)($aStartDay[1])) { $startTime = $arrayData["SCH_START_TIME"] . ":00"; $arrayCaseSchedulerData["SCH_TIME_NEXT_RUN"] = date("Y") . "-" . $row . "-" . $aStartDay[1] . " " . $startTime; break; } else { $arrayCaseSchedulerData["SCH_TIME_NEXT_RUN"] = $caseScheduler->updateNextRun($caseSchedulerOption, $sValue, $nActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths, $sDateTmp, false); } break; case "UPD": if ($dCurrentMonth == $row && $dCurrentDay < $aStartDay[1]) { $startTime = $arrayData["SCH_START_TIME"] . ":00"; if ($recalculateDate) { $arrayCaseSchedulerData["SCH_TIME_NEXT_RUN"] = date("Y") . "-" . $row . "-" . $aStartDay[1] . " " . $startTime; } else { if ($recalculateTime) { $arrayCaseSchedulerData["SCH_TIME_NEXT_RUN"] = $caseScheduler->getSchTimeNextRun("Y-m-d") . " " . $arrayData["SCH_START_TIME"] . ":00"; } } break; } else { if ($recalculateDate) { $arrayCaseSchedulerData["SCH_TIME_NEXT_RUN"] = $caseScheduler->updateNextRun($caseSchedulerOption, $sValue, $nActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths, $sDateTmp, false); } else { if ($recalculateTime) { $arrayCaseSchedulerData["SCH_TIME_NEXT_RUN"] = $caseScheduler->getSchTimeNextRun("Y-m-d") . " " . $arrayData["SCH_START_TIME"] . ":00"; } } } break; } } } else { switch ($option) { case "INS": $arrayCaseSchedulerData["SCH_TIME_NEXT_RUN"] = $caseScheduler->updateNextRun($caseSchedulerOption, $sValue, $nActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths, $sDateTmp, false); break; case "UPD": if ($recalculateDate) { $arrayCaseSchedulerData["SCH_TIME_NEXT_RUN"] = $caseScheduler->updateNextRun($caseSchedulerOption, $sValue, $nActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths, $sDateTmp, false); } else { if ($recalculateTime) { $arrayCaseSchedulerData["SCH_TIME_NEXT_RUN"] = $caseScheduler->getSchTimeNextRun("Y-m-d") . " " . $arrayData["SCH_START_TIME"] . ":00"; } } break; } } } else { if ($caseSchedulerOption == 4) { $arrayCaseSchedulerData["SCH_END_DATE"] = $arrayCaseSchedulerData["SCH_START_TIME"]; } switch ($option) { case "INS": $arrayCaseSchedulerData["SCH_TIME_NEXT_RUN"] = $arrayCaseSchedulerData["SCH_START_TIME"]; break; case "UPD": if ($recalculateDate) { $arrayCaseSchedulerData["SCH_TIME_NEXT_RUN"] = $arrayCaseSchedulerData["SCH_START_TIME"]; } else { if ($recalculateTime) { $arrayCaseSchedulerData["SCH_TIME_NEXT_RUN"] = $caseScheduler->getSchTimeNextRun("Y-m-d") . " " . $arrayData["SCH_START_TIME"] . ":00"; } } break; } if ($caseSchedulerOption == 5) { switch ($option) { case "INS": $arrayCaseSchedulerData["SCH_START_TIME"] = time(); $arrayCaseSchedulerData["SCH_START_DATE"] = $arrayCaseSchedulerData["SCH_START_TIME"]; $date = $arrayCaseSchedulerData["SCH_START_TIME"]; break; case "UPD": $date = $caseScheduler->getSchLastRunTime(); if (is_null($date)) { $date = $caseScheduler->getSchStartTime(); } $date = strtotime($date); break; } $arrayCaseSchedulerData["SCH_REPEAT_EVERY"] = $arrayData["SCH_REPEAT_EVERY"]; $arrayCaseSchedulerData["SCH_TIME_NEXT_RUN"] = date("Y-m-d H:i", $date + (((int)($arrayData["SCH_REPEAT_EVERY"])) * 60 * 60)); } } switch ($option) { case "INS": if ($arrayData["SCH_END_DATE"] != "") { $arrayCaseSchedulerData["SCH_END_DATE"] = $arrayData["SCH_END_DATE"]; } break; case "UPD": break; } if (!empty($arrayData["SCH_REPEAT_TASK_CHK"])) { if ($arrayData["SCH_REPEAT_EVERY_OPT"] . "" == "2") { $arrayCaseSchedulerData["SCH_REPEAT_EVERY"] = ((int)($arrayData["SCH_REPEAT_EVERY"])) * 60; } else { $arrayCaseSchedulerData["SCH_REPEAT_EVERY"] = (int)($arrayData["SCH_REPEAT_EVERY"]); } } //Create/Update switch ($option) { case "INS": if (isset($arrayData["CASE_SH_PLUGIN_UID"]) && $arrayData["CASE_SH_PLUGIN_UID"] != "") { $arrayCaseSchedulerData["CASE_SH_PLUGIN_UID"] = $arrayData["CASE_SH_PLUGIN_UID"]; } $caseScheduler->create($arrayCaseSchedulerData); break; case "UPD": $caseScheduler->update($arrayCaseSchedulerData); break; } //Plugin if (isset($arrayData["CASE_SH_PLUGIN_UID"]) && $arrayData["CASE_SH_PLUGIN_UID"] != "") { $oPluginRegistry = &\PMPluginRegistry::getSingleton(); $activePluginsForCaseScheduler = $oPluginRegistry->getCaseSchedulerPlugins(); $params = explode("--", $arrayData["CASE_SH_PLUGIN_UID"]); foreach ($activePluginsForCaseScheduler as $key => $caseSchedulerPluginDetail) { if ($caseSchedulerPluginDetail->sNamespace == $params[0] && $caseSchedulerPluginDetail->sActionId == $params[1]) { $caseSchedulerSelected = $caseSchedulerPluginDetail; } } if (isset($caseSchedulerSelected) && is_object($caseSchedulerSelected)) { //Save the form $arrayDataPlugin["SCH_UID"] = $arrayCaseSchedulerData["SCH_UID"]; $oPluginRegistry->executeMethod($caseSchedulerPluginDetail->sNamespace, $caseSchedulerPluginDetail->sActionSave, $arrayDataPlugin); } } } catch (\Exception $e) { throw $e; } }