$aData['SCH_END_DATE'] = $_POST['form']['SCH_END_DATE']; } if (!empty($_POST['form']['SCH_REPEAT_TASK_CHK'])) { $nOptEvery = $_POST['form']['SCH_REPEAT_EVERY_OPT']; if ($nOptEvery == 2) { $aData['SCH_REPEAT_EVERY'] = $_POST['form']['SCH_REPEAT_EVERY'] * 60; } else { $aData['SCH_REPEAT_EVERY'] = $_POST['form']['SCH_REPEAT_EVERY']; } } if (isset($_POST['form']['CASE_SH_PLUGIN_UID']) && $_POST['form']['CASE_SH_PLUGIN_UID'] != "") { $aData['CASE_SH_PLUGIN_UID'] = $_POST['form']['CASE_SH_PLUGIN_UID']; } //$aData['SCH_END_DATE'] = "2020-12-30"; $oCaseScheduler->create($aData); $sch_uid = $oCaseScheduler->getSchUid(); if (isset($_POST['form']['CASE_SH_PLUGIN_UID']) && $_POST['form']['CASE_SH_PLUGIN_UID'] != "") { $params = explode("--", $_REQUEST['form']['CASE_SH_PLUGIN_UID']); $oPluginRegistry =& PMPluginRegistry::getSingleton(); $activePluginsForCaseScheduler = $oPluginRegistry->getCaseSchedulerPlugins(); 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 $oData = $_POST['pluginFields']; $oData['SCH_UID'] = $aData['SCH_UID']; $oPluginRegistry->executeMethod($caseSchedulerPluginDetail->sNamespace, $caseSchedulerPluginDetail->sActionSave, $oData); }
function save($params) { require_once 'classes/model/CaseScheduler.php'; $oCaseScheduler = new CaseScheduler(); $aData['SCH_UID'] = G::generateUniqueID(); $aData['SCH_NAME'] = $params->fDescription; //$_POST['form']['SCH_NAME']; $aData['SCH_DEL_USER_NAME'] = $params->fUser; //$_POST['form']['SCH_USER_NAME']; $aData['SCH_DEL_USER_PASS'] = G::encryptOld($params->fPassword); $aData['SCH_DEL_USER_UID'] = $params->usr_uid; //$_POST['form']['SCH_USER_UID']; $aData['PRO_UID'] = $params->pro_uid; //$_POST['form']['PRO_UID']; $aData['TAS_UID'] = $params->tas_uid; //$_POST['form']['TAS_UID']; $aData['SCH_STATE'] = 'ACTIVE'; $aData['SCH_LAST_STATE'] = 'CREATED'; // 'ACTIVE'; $aData['USR_UID'] = $_SESSION['USER_LOGGED']; $sOption = $params->fType; //$_POST['form']['SCH_OPTION']; switch ($sOption) { case 'Daily': $sOption = '1'; break; case 'Weekly': $sOption = '2'; break; case 'Monthly': $sOption = '3'; break; default: $sOption = '4'; break; } $aData['SCH_OPTION'] = $sOption; // if ($_POST['form']['SCH_START_DATE']!=''){ // $sDateTmp = $_POST['form']['SCH_START_DATE']; // } else { // $sDateTmp = date('Y-m-d'); // } $sDateTmp = $params->SCH_START_DATE; $sTimeTmp = $params->SCH_START_TIME; //$_POST['form']['SCH_START_TIME']; $aData['SCH_START_TIME'] = date('Y-m-d', strtotime($sDateTmp)) . ' ' . date('H:i:s', strtotime($sTimeTmp)); $aData['SCH_START_DATE'] = date('Y-m-d', strtotime($sDateTmp)) . ' ' . date('H:i:s', strtotime($sTimeTmp)); //g::pr($aData); $nActualTime = $sTimeTmp; //date("Y-m-d H:i:s"); // time(); //$nActualDate = date("Y-m-d H:i:s"); $sValue = ''; $sDaysPerformTask = ''; $sWeeks = ''; $sMonths = ''; $sMonths = ''; $sStartDay = ''; $nSW = 0; switch ($sOption) { case '1': // Option 1 $sValue = isset($params->SCH_DAYS_PERFORM_TASK) ? $params->SCH_DAYS_PERFORM_TASK : '1'; //$_POST['form']['SCH_DAYS_PERFORM_TASK']; switch ($sValue) { case '1': $aData['SCH_DAYS_PERFORM_TASK'] = $sValue . '|1'; break; case '2': $aData['SCH_OPTION'] = '2'; $aData['SCH_EVERY_DAYS'] = '1'; $aData['SCH_WEEK_DAYS'] = '1|2|3|4|5|'; break; case '3': // Every [n] Days $sDaysPerformTask = $params->SCH_DAYS_PERFORM_TASK_OPT_3; $aData['SCH_DAYS_PERFORM_TASK'] = $params->SCH_DAYS_PERFORM_TASK . '|' . $params->SCH_DAYS_PERFORM_TASK_OPT_3; break; } break; case '2': // If the option is zero, set by default 1 $sWeeks = ''; if (isset($params->W1)) { if ($sWeeks != '') { $sWeeks .= '|'; } $sWeeks .= '1'; } if (isset($params->W2)) { if ($sWeeks != '') { $sWeeks .= '|'; } $sWeeks .= '2'; } if (isset($params->W3)) { if ($sWeeks != '') { $sWeeks .= '|'; } $sWeeks .= '3'; } if (isset($params->W4)) { if ($sWeeks != '') { $sWeeks .= '|'; } $sWeeks .= '4'; } if (isset($params->W5)) { if ($sWeeks != '') { $sWeeks .= '|'; } $sWeeks .= '5'; } if (isset($params->W6)) { if ($sWeeks != '') { $sWeeks .= '|'; } $sWeeks .= '6'; } if (isset($params->W7)) { if ($sWeeks != '') { $sWeeks .= '|'; } $sWeeks .= '7'; } $sStartTime = $params->SCH_START_TIME; $aData['SCH_WEEK_DAYS'] = $sWeeks; $aData['SCH_START_DAY'] = ''; // break; case '3': $nStartDay = $params->SCH_START_DAY; if ($nStartDay == 'Day of Month') { $nStartDay = 1; } if ($nStartDay == 'The Day') { $nStartDay = 2; } if ($nStartDay == 1) { $aData['SCH_START_DAY'] = $nStartDay . '|' . $params->SCH_START_DAY_OPT_1; } else { $opt2weeks = $params->SCH_START_DAY_OPT_2_WEEKS; switch ($opt2weeks) { case 'First': $opt2weeks = 1; break; case 'Second': $opt2weeks = 2; break; case 'Third': $opt2weeks = 3; break; case 'Fourth': $opt2weeks = 4; break; case 'Last': $opt2weeks = 5; break; } $opt2days = $params->SCH_START_DAY_OPT_2_DAYS_WEEK; switch ($opt2days) { case 'Monday': $opt2days = 1; break; case 'Tuesday': $opt2days = 2; break; case 'Wednesday': $opt2days = 3; break; case 'Thursday': $opt2days = 4; break; case 'Friday': $opt2days = 5; break; case 'Saturday': $opt2days = 6; break; case 'Sunday': $opt2days = 7; break; } $aData['SCH_START_DAY'] = $nStartDay . '|' . $opt2weeks . '|' . $opt2days; } $sMonths = ''; if (isset($params->M1)) { if ($sMonths != '') { $sMonths .= '|'; } $sMonths .= '1'; } if (isset($params->M2)) { if ($sMonths != '') { $sMonths .= '|'; } $sMonths .= '2'; } if (isset($params->M3)) { if ($sMonths != '') { $sMonths .= '|'; } $sMonths .= '3'; } if (isset($params->M4)) { if ($sMonths != '') { $sMonths .= '|'; } $sMonths .= '4'; } if (isset($params->M5)) { if ($sMonths != '') { $sMonths .= '|'; } $sMonths .= '5'; } if (isset($params->M6)) { if ($sMonths != '') { $sMonths .= '|'; } $sMonths .= '6'; } if (isset($params->M7)) { if ($sMonths != '') { $sMonths .= '|'; } $sMonths .= '7'; } if (isset($params->M8)) { if ($sMonths != '') { $sMonths .= '|'; } $sMonths .= '8'; } if (isset($params->M9)) { if ($sMonths != '') { $sMonths .= '|'; } $sMonths .= '9'; } if (isset($params->M10)) { if ($sMonths != '') { $sMonths .= '|'; } $sMonths .= '10'; } if (isset($params->M11)) { if ($sMonths != '') { $sMonths .= '|'; } $sMonths .= '11'; } if (isset($params->M12)) { if ($sMonths != '') { $sMonths .= '|'; } $sMonths .= '12'; } // if(!empty($params->SCH_MONTHS)){ // $aMonths = $params->SCH_MONTHS; // foreach($aMonths as $value) { // $sMonths = $sMonths . $value . '|' ; // } // } // if(!empty($params->SCH_MONTHS_2)){ // $aMonths2 = $params->SCH_MONTHS_2; // foreach($aMonths2 as $value) { // $sMonths = $sMonths . $value . '|' ; // } // } // if(!empty($params->SCH_MONTHS_3)){ // $aMonths3 = $params->SCH_MONTHS_3; // foreach($aMonths3 as $value) { // $sMonths = $sMonths . $value . '|' ; // } // } $aData['SCH_MONTHS'] = $sMonths; $sStartDay = $aData['SCH_START_DAY']; $sValue = $nStartDay; break; } if ($sOption != '1' && $sOption != '4') { if ($sStartDay == '') { $sStartDay = date('Y-m-d'); } // echo $sOption."*". $sValue."*". $nActualTime."*". $sDaysPerformTask."*". $sWeeks."*". $sStartDay ."*". $sMonths."<br>"; $dCurrentDay = date("d"); $dCurrentMonth = date("m"); $aStartDay = explode("|", $aData['SCH_START_DAY']); if ($sOption == '3' && $aStartDay[0] == '1') { $monthsArray = explode("|", $sMonths); foreach ($monthsArray as $row) { if ($dCurrentMonth == $row && $dCurrentDay < $aStartDay[1]) { $startTime = $params->SCH_START_TIME . ":00"; $aData['SCH_TIME_NEXT_RUN'] = date('Y') . '-' . $row . '-' . $aStartDay[1] . ' ' . $startTime; break; } else { $aData['SCH_TIME_NEXT_RUN'] = $oCaseScheduler->updateNextRun($sOption, $sValue, $nActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths, $sDateTmp); } } } else { $aData['SCH_TIME_NEXT_RUN'] = $oCaseScheduler->updateNextRun($sOption, $sValue, $nActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths, $sDateTmp); } // print_r ($aData['SCH_TIME_NEXT_RUN']); // die; } else { if ($sOption == '4') { $aData['SCH_END_DATE'] = $aData['SCH_START_TIME']; } $aData['SCH_TIME_NEXT_RUN'] = $aData['SCH_START_TIME']; } if (isset($params->SCH_END_DATE)) { if (trim($params->SCH_END_DATE) != '') { $aData['SCH_END_DATE'] = $params->SCH_END_DATE; } } if (!empty($params->SCH_REPEAT_TASK_CHK)) { $nOptEvery = $params->SCH_REPEAT_EVERY_OPT; if ($nOptEvery == 2) { $aData['SCH_REPEAT_EVERY'] = $params->SCH_REPEAT_EVERY_OPT * 60; } else { $aData['SCH_REPEAT_EVERY'] = $params->SCH_REPEAT_EVERY_OPT; } } if (isset($_POST['form']['CASE_SH_PLUGIN_UID']) && $_POST['form']['CASE_SH_PLUGIN_UID'] != "") { $aData['CASE_SH_PLUGIN_UID'] = $_POST['form']['CASE_SH_PLUGIN_UID']; } //$aData['SCH_END_DATE'] = "2020-12-30"; //g::pr($aData); $sch_uid = $params->sch_uid; if ($sch_uid != '') { $aData['SCH_UID'] = $sch_uid; $oCaseScheduler->Update($aData); $sw_update = true; } else { $oCaseScheduler->create($aData); $sch_uid = $oCaseScheduler->getSchUid(); $sw_update = false; } if (isset($_POST['form']['CASE_SH_PLUGIN_UID']) && $_POST['form']['CASE_SH_PLUGIN_UID'] != "") { $params = explode("--", $_REQUEST['form']['CASE_SH_PLUGIN_UID']); $oPluginRegistry =& PMPluginRegistry::getSingleton(); $activePluginsForCaseScheduler = $oPluginRegistry->getCaseSchedulerPlugins(); 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 $oData = $_POST['pluginFields']; $oData['SCH_UID'] = $aData['SCH_UID']; $oPluginRegistry->executeMethod($caseSchedulerPluginDetail->sNamespace, $caseSchedulerPluginDetail->sActionSave, $oData); } } //Added by Qennix //Update Start Time Event in BPMN require_once 'classes/model/Event.php'; require_once 'classes/model/Task.php'; $oTask = new Task(); $oTask->load($params->tas_uid); $evn_uid = $oTask->getStartingEvent(); $tas_name = $oTask->getTasTitle(); $event = new Event(); $editEvent = array(); $editEvent['EVN_UID'] = $evn_uid; $editEvent['EVN_ACTION'] = $sch_uid; $event->update($editEvent); //End Adding $sch = new CaseScheduler(); $sch->load($sch_uid); $this->success = true; $this->SCH_UID = $sch_uid; $this->NEXT = $sch->getSchTimeNextRun(); $this->DESCRIPTION = $sch->getSchName(); $this->TAS_NAME = $tas_name; if ($sw_update) { $this->msg = G::LoadTranslation('ID_SCHEDULER_SUCCESS_UPDATE'); } else { $this->msg = G::LoadTranslation('ID_SCHEDULER_SUCCESS_NEW'); } }