Ejemplo n.º 1
0
     $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);
     }
Ejemplo n.º 2
0
 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');
     }
 }