. * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. * */ try { /* global $RBAC; switch ($RBAC->userCanAccess('PM_FACTORY')) { case -2: G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels'); G::header('location: ../login/login'); die; break; case -1: G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::header('location: ../login/login'); die; break; } */ require_once 'classes/model/CaseScheduler.php'; $oCaseScheduler = new CaseScheduler(); if (empty($_POST)) { die('The information sended is empty!'); } if(empty($_POST['SCH_UID'])) $aData['SCH_UID'] = G::generateUniqueID(); else $aData['SCH_UID'] = $_POST['SCH_UID']; $aData['SCH_NAME'] = $_POST['SCH_NAME']; $aData['SCH_DEL_USER_NAME'] = $_POST['SCH_DEL_USER_NAME']; $aData['SCH_DEL_USER_PASS'] = md5($_POST['SCH_USER_PASSWORD']); $aData['SCH_DEL_USER_UID'] = $_POST['SCH_DEL_USER_UID']; $aData['PRO_UID'] = $_POST['PRO_UID']; $aData['TAS_UID'] = $_POST['TAS_UID']; $aData['SCH_STATE'] = 'ACTIVE'; $aData['SCH_LAST_STATE'] = 'CREATED'; // 'ACTIVE'; $aData['USR_UID'] = $_SESSION['USER_LOGGED']; $sOption = $_POST['SCH_OPTION']; if($sOption == 'Daily') { $aData['SCH_OPTION'] = '1'; $sOption = '1'; } else if($sOption == 'Weekly') { $aData['SCH_OPTION'] = '2'; $sOption = '2'; } else if($sOption == 'Monthly') { $aData['SCH_OPTION'] = '3'; $sOption = '3'; } else if($sOption == 'One time only') { $aData['SCH_OPTION'] = '4'; $sOption = '4'; } if ($_POST['SCH_START_DATE']!=''){ $sDateTmp = $_POST['SCH_START_DATE']; } else { $sDateTmp = date('Y-m-d'); } $sTimeTmp = $_POST['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)); $nActualTime = $_POST['SCH_START_TIME']; // time(); // $nActualDate = date("Y-m-d H:i:s", $nActualTime); $sValue = ''; $sDaysPerformTask = ''; $sWeeks = ''; $sMonths = ''; $sMonths = ''; $sStartDay = ''; $nSW = 0; switch($sOption){ case '1' : // Option 1 $sValue = $_POST['SCH_DAYS_PERFORM_TASK']; switch($sValue){ case '1' : $aData['SCH_DAYS_PERFORM_TASK'] = $_POST['SCH_DAYS_PERFORM_TASK'] . '|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 = $_POST['SCH_DAYS_PERFORM_TASK_OPT_3']; $aData['SCH_DAYS_PERFORM_TASK'] = $_POST['SCH_DAYS_PERFORM_TASK'] . '|' . $_POST['SCH_DAYS_PERFORM_TASK_OPT_3']; break; } break; case '2' : // If the option is zero, set by default 1 if(empty($_POST['SCH_EVERY_DAYS'])) $nEveryDays = 1; else $nEveryDays = $_POST['SCH_EVERY_DAYS']; $aData['SCH_EVERY_DAYS'] = $nEveryDays; $sWeeks = ''; if(!empty($_POST['SCH_WEEK_DAYS'])){ $aWeekDays = explode(',',$_POST['SCH_WEEK_DAYS']); foreach($aWeekDays as $value) { $sWeeks = $sWeeks . $value . '|'; } } /*if(!empty($_POST['SCH_WEEK_DAYS_2'])){ $aWeekDays2 = $_POST['SCH_WEEK_DAYS_2']; foreach($aWeekDays2 as $value) { $sWeeks = $sWeeks . $value . '|'; } }*/ $sStartTime = $_POST['SCH_START_TIME']; $aData['SCH_WEEK_DAYS'] = $sWeeks; break; case '3' : $nStartDay = $_POST['SCH_START_DAY']; if($nStartDay == 'Day of Month') $nStartDay = 1; else if($nStartDay == 'The Day') $nStartDay = 2; $sStartDayOpt2Week = $_POST['SCH_START_DAY_OPT_2_WEEKS']; switch($sStartDayOpt2Week){ case 'First': $sStartDayOpt2Week = 1; break; case 'Second': $sStartDayOpt2Week = 2; break; case 'Third': $sStartDayOpt2Week = 3; break; case 'Fourth': $sStartDayOpt2Week = 4; break; case 'Last': $sStartDayOpt2Week = 5; break; } $sStartDayOpt2DayWeek = $_POST['SCH_START_DAY_OPT_2_DAYS_WEEK']; switch($sStartDayOpt2DayWeek){ case 'Monday': $sStartDayOpt2DayWeek = 1; break; case 'Tuesday': $sStartDayOpt2DayWeek = 2; break; case 'Wednesday': $sStartDayOpt2DayWeek = 3; break; case 'Thursday': $sStartDayOpt2DayWeek = 4; break; case 'Friday': $sStartDayOpt2DayWeek = 5; break; case 'Saturday': $sStartDayOpt2DayWeek = 6; break; case 'Sunday': $sStartDayOpt2DayWeek = 7; break; } if($nStartDay == 1){ $aData['SCH_START_DAY'] = $nStartDay . '|' . $_POST['SCH_START_DAY_OPT_1']; } else { $aData['SCH_START_DAY'] = $nStartDay . '|' . $sStartDayOpt2Week . '|' . $sStartDayOpt2DayWeek; } $sMonths = ''; if(!empty($_POST['SCH_MONTHS'])){ //$aMonths = $_POST['SCH_MONTHS']; $aMonths = explode(',',$_POST['SCH_MONTHS']); foreach($aMonths as $value) { $sMonths = $sMonths . $value . '|' ; } } /*if(!empty($_POST['SCH_MONTHS_2'])){ $aMonths2 = $_POST['SCH_MONTHS_2']; foreach($aMonths2 as $value) { $sMonths = $sMonths . $value . '|' ; } } if(!empty($_POST['SCH_MONTHS_3'])){ $aMonths3 = $_POST['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."
"; $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 = $_POST['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(trim($_POST['SCH_END_DATE'])!=''){ $aData['SCH_END_DATE'] = $_POST['SCH_END_DATE']; } if(!empty($_POST['SCH_REPEAT_TASK_CHK'])){ $nOptEvery = $_POST['SCH_REPEAT_EVERY_OPT']; if($nOptEvery ==2) $aData['SCH_REPEAT_EVERY'] = $_POST['SCH_REPEAT_EVERY'] * 60; else $aData['SCH_REPEAT_EVERY'] = $_POST['SCH_REPEAT_EVERY']; } //$aData['SCH_END_DATE'] = "2020-12-30"; if(empty($_POST['SCH_UID'])) $oCaseScheduler->create($aData); else $oCaseScheduler->update($aData); //Save Scheduler_uid in the Event Table for Start Timer. $oData['EVN_UID']= $_POST['EVN_UID']; $oData['EVN_ACTION']= $aData['SCH_UID']; require_once "classes/model/Event.php"; $oEvent = new Event(); $oEvent->update($oData); echo "{success: true}"; //G::header('location: cases_Scheduler_List'); } catch (Exception $oException) { die($oException->getMessage()); } ?>