diff --git a/workflow/engine/classes/class.processMap.php b/workflow/engine/classes/class.processMap.php
index b0a928729..118f47f0a 100644
--- a/workflow/engine/classes/class.processMap.php
+++ b/workflow/engine/classes/class.processMap.php
@@ -4614,12 +4614,15 @@ class processMap {
}
}
}
- $row [] = array ('W_LINK' => $arlink,'DYN_TITLE'=>$dynTitle,'TAS_TITLE'=>$task_name, 'USR_UID'=>$usr_uid_evn, 'DYN_UID'=>$dynUid);
- $oJSON = new Services_JSON ( );
- $tmpData = $oJSON->encode( $row ) ;
- $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
- $result = $tmpData;
- echo $result;
+ $row = array ('W_LINK' => $arlink,'DYN_TITLE'=>$dynTitle,'TAS_TITLE'=>$task_name, 'USR_UID'=>$usr_uid_evn, 'DYN_UID'=>$dynUid);
+// $oJSON = new Services_JSON ( );
+// $tmpData = $oJSON->encode( $row ) ;
+// $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
+// $result = $tmpData;
+ $result = array();
+ $result['success'] = true;
+ $result['data'] = $row;
+ return $result;
} catch ( Exception $oError ) {
throw ($oError);
}
diff --git a/workflow/engine/classes/model/Task.php b/workflow/engine/classes/model/Task.php
index 5fd94f79c..8fefb50c7 100644
--- a/workflow/engine/classes/model/Task.php
+++ b/workflow/engine/classes/model/Task.php
@@ -590,7 +590,7 @@ public function kgetassigType($pro_uid, $tas){
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(EventPeer::EVN_UID);
$oCriteria->add(EventPeer::EVN_TAS_UID_TO,$this->tas_uid);
- $oCriteria->add(EventPeer::EVN_TYPE,'bpmnEventMessageStart');
+ //$oCriteria->add(EventPeer::EVN_TYPE,'bpmnEventMessageStart');
$oDataset = EventPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
if ($oDataset->next()){
diff --git a/workflow/engine/controllers/caseSchedulerProxy.php b/workflow/engine/controllers/caseSchedulerProxy.php
new file mode 100755
index 000000000..d48c3247a
--- /dev/null
+++ b/workflow/engine/controllers/caseSchedulerProxy.php
@@ -0,0 +1,473 @@
+PRO_UID;
+ $EVN_UID = $params->EVN_UID;
+
+ $oEvent = new Event();
+ $oData = $oEvent->load($EVN_UID);
+ $sch_uid = $oData['EVN_ACTION'];
+
+ if ($sch_uid != ''){
+ G::LoadClass('processMap');
+ $oProcessMap = new processMap(new DBConnection);
+ $rows = $oProcessMap->caseNewSchedulerList($sch_uid);
+ if($rows['SCH_OPTION'] == '3')
+ {
+ $sch_start_day = explode('|',$rows['SCH_START_DAY']);
+ $count = count($sch_start_day);
+ switch($count){
+ case 1:
+ $rows['SCH_START_DAY'] = $sch_start_day[0];
+ break;
+ case 2:
+ $rows['SCH_START_DAY'] = $sch_start_day[0];
+ $rows['SCH_START_DAY_OPT_2_WEEKS'] = $sch_start_day[1];
+ break;
+ case 3:
+ $rows['SCH_START_DAY'] = $sch_start_day[0];
+ $rows['SCH_START_DAY_OPT_2_WEEKS'] = $sch_start_day[1];
+ $rows['SCH_START_DAY_OPT_2_DAYS_WEEK'] = $sch_start_day[2];
+ break;
+ }
+ }
+ if($rows['SCH_START_DATE'] != '')
+ {
+ $sch_str_dt = explode(' ',$rows['SCH_START_DATE']);
+ $rows['SCH_START_DATE'] = $sch_str_dt[0];
+ }
+ if($rows['SCH_END_DATE'] != '')
+ {
+ $sch_str_dt = explode(' ',$rows['SCH_END_DATE']);
+ $rows['SCH_END_DATE'] = $sch_str_dt[0];
+ }
+ $this->success = true;
+ $this->data = $rows;
+ }else{
+ $this->success = false;
+ }
+ }
+
+ function delete($params){
+ require_once 'classes/model/CaseScheduler.php';
+ require_once 'classes/model/Event.php';
+ $SCH_UID = $params->SCH_UID;
+ $EVN_UID = $params->EVN_UID;
+ $oCaseScheduler = new CaseScheduler();
+ $oCaseScheduler->remove($SCH_UID);
+ $oEvent = new Event();
+ $editE = array();
+ $editE['EVN_UID'] = $EVN_UID;
+ $editE['EVN_ACTION'] = '';
+ $oEvent->update($editE);
+
+ $this->success = true;
+ $this->msg = G::LoadTranslation('ID_SCHEDULER_SUCCESS_DELETE');
+ }
+
+ function changeStatus($params){
+ require_once 'classes/model/CaseScheduler.php';
+ $SCH_UID = $params->SCH_UID;
+ $oCaseScheduler = new CaseScheduler();
+ $oCaseScheduler->changeStatus ($SCH_UID);
+ $oCaseScheduler->load($SCH_UID);
+ $this->success = true;
+ $this->SCH_STATUS = $oCaseScheduler->getSchState();
+ $this->msg = G::LoadTranslation('ID_SCHEDULER_SUCCESS_CHANGE_STATUS');
+ }
+
+function checkCredentials($params){
+ require_once 'classes/model/Event.php';
+ require_once 'classes/model/Users.php';
+ require_once 'classes/model/TaskUser.php';
+ require_once 'classes/model/GroupUser.php';
+ $sPRO_UID = $params->PRO_UID;
+ $sEVN_UID = $params->EVN_UID;
+ $sWS_USER = trim($params->WS_USER);
+ $sWS_PASS = trim($params->WS_PASS);
+
+ if (G::is_https ())
+ $http = 'https://';
+ else
+ $http = 'http://';
+
+ $endpoint = $http . $_SERVER['HTTP_HOST'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/services/wsdl2';
+ @$client = new SoapClient ( $endpoint );
+
+ $user = $sWS_USER;
+ $pass = $sWS_PASS;
+
+ $parameters = array ('userid' => $user, 'password' => $pass );
+ $result = $client->__SoapCall ( 'login', array ($parameters) );
+
+ $fields ['status_code'] = $result->status_code;
+ $fields ['message'] = 'ProcessMaker WebService version: ' . $result->version . "\n" . $result->message;
+ $fields ['version'] = $result->version;
+ $fields ['time_stamp'] = $result->timestamp;
+ $messageCode = true;
+ $message = $result->message;
+
+ G::LoadClass ( 'Task' );
+ //G::LoadClass ( 'Event' );
+ G::LoadClass ( 'User' );
+ G::LoadClass ( 'TaskUser' );
+ G::LoadClass ( 'Groupwf' );
+
+ $event = new Event();
+ $event->load($sEVN_UID);
+ $sTASKS = $event->getEvnTasUidTo();
+
+ $task = new Task();
+ $task->load($sTASKS);
+ $sTASKS_SEL = $task->getTasTitle();
+
+ if(!class_exists('GroupUser')) {
+ G::LoadClass ( 'GroupUser' );
+ }
+ // if the user has been authenticated, then check if has the rights or
+ // permissions to create the webentry
+ if ($result->status_code == 0) {
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(UsersPeer::USR_UID);
+ $oCriteria->addSelectColumn(TaskUserPeer::USR_UID);
+ $oCriteria->addSelectColumn(TaskUserPeer::TAS_UID);
+ $oCriteria->addJoin(TaskUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
+ $oCriteria->add(TaskUserPeer::TAS_UID, $sTASKS);
+ $oCriteria->add(UsersPeer::USR_USERNAME, $sWS_USER);
+ //$oCriteria->add(TaskUserPeer::TU_RELATION,1);
+ $userIsAssigned = TaskUserPeer::doCount($oCriteria);
+ // if the user is not assigned directly, maybe a have the task a group with the user
+ if($userIsAssigned<1) {
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(UsersPeer::USR_UID);
+ $oCriteria->addJoin(UsersPeer::USR_UID, GroupUserPeer::USR_UID, Criteria::LEFT_JOIN);
+ $oCriteria->addJoin(GroupUserPeer::GRP_UID, TaskUserPeer::USR_UID, Criteria::LEFT_JOIN);
+ $oCriteria->add(TaskUserPeer::TAS_UID, $sTASKS);
+ $oCriteria->add(UsersPeer::USR_USERNAME, $sWS_USER);
+ $userIsAssigned = GroupUserPeer::doCount($oCriteria);
+ if (!($userIsAssigned>=1)) {
+ $messageCode = false;
+ $message = "The User \"".$sWS_USER."\" doesn't have the task \"".$sTASKS_SEL."\" assigned.";
+ }
+ }
+
+ } else {
+ $messageCode = false;
+ }
+
+ $this->success = $messageCode;
+ $this->msg = $message;
+ }
+
+ 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'] = md5($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."
";
+ $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);
+ $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 );
+ }
+ }
+
+ //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;
+ $this->msg = G::LoadTranslation('ID_SCHEDULER_SUCCESS_NEW');
+ }
+
+} //End caseSchedulerProxy
\ No newline at end of file
diff --git a/workflow/engine/methods/cases/cases_Scheduler_Save.php b/workflow/engine/methods/cases/cases_Scheduler_Save.php
index bf4fc0130..e261d9b50 100644
--- a/workflow/engine/methods/cases/cases_Scheduler_Save.php
+++ b/workflow/engine/methods/cases/cases_Scheduler_Save.php
@@ -208,6 +208,8 @@ try {
}
//$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();
@@ -226,6 +228,23 @@ try {
$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($_POST['form']['TAS_UID']);
+ echo '1';
+ $evn_uid = $oTask->getStartingEvent();
+ echo '2'.$evn_uid;
+ $event = new Event();
+ $editEvent = array();
+ $editEvent['EVN_UID'] = $evn_uid;
+ $editEvent['EVN_ACTION'] = $sch_uid;
+ $event->update($editEvent);
+ //End Adding
G::header('location: cases_Scheduler_List?PRO_UID='.$_POST['form']['PRO_UID']);
diff --git a/workflow/engine/templates/bpmn/pmosExt.js b/workflow/engine/templates/bpmn/pmosExt.js
index de0204415..c91d2dc95 100755
--- a/workflow/engine/templates/bpmn/pmosExt.js
+++ b/workflow/engine/templates/bpmn/pmosExt.js
@@ -329,524 +329,509 @@ pmosExt.prototype.popWebEntry= function(_5678)
webEntryWindow.show();
}
+
pmosExt.prototype.popCaseSchedular= function(_5678){
- Ext.QuickTips.init();
- var oPmosExt = new pmosExt();
- //Get the Task Data
- var oTask = workflow.taskUid;
- if(typeof oTask != 'undefined')
- {
- taskName = oTask[0].name;
- task_uid = oTask[0].value;
- }
- var caseSchedularForm = new Ext.FormPanel({
- labelWidth : 120, // label settings here cascade unless overridden
- url :'cases_Scheduler_Save.php',
- frame :true,
- title : _('ID_GENERATE_INFO'),
- bodyStyle :'padding:5px 5px 0',
- width : 500,
- height : 300,
- buttonAlign : 'center',
- defaultType : 'textfield',
- items : [{
- xtype :'fieldset',
- title : 'ID_PROCESSMAKER_VALIDATION',
- collapsible : false,
- autoHeight :true,
- buttonAlign : 'center',
- defaults : {width: 210},
- defaultType : 'textfield',
- items : [{
- fieldLabel : _('ID_USERNAME'),
- name : 'SCH_DEL_USER_NAME',
- allowBlank : false,
- blankText : 'Enter username'
- },{
- fieldLabel : _('ID_CACHE_PASSWORD'),
- inputType : 'password',
- name : 'SCH_USER_PASSWORD',
- allowBlank : false,
- blankText : 'Enter Password'
- },{
- xtype : 'button',
- id : 'testUser',
- width : 75,
- text : _('ID_TEST_USER'),
- arrowAlign : 'center',
- align : 'center',
- margins :'5 5 5 5',
- handler : function() {
- var credentialFieldset = workflow.caseSchedularForm.items.items[0];
- var propertiesFieldset = workflow.caseSchedularForm.items.items[1];
- var timeFieldset = workflow.caseSchedularForm.items.items[2];
- var username = credentialFieldset.items.items[0].getValue();
- var password = credentialFieldset.items.items[1].getValue();
- if(username == '' || password == '') {
- PMExt.notify( _('ID_ERROR') , _('ID_VALID_CREDENTIALS') );
- }
- else {
- Ext.Ajax.request({
- url: '../cases/cases_SchedulerValidateUser.php?USERNAME=' + username+'&PASSWORD='+password,
- success: function(response) {
- var result = response.responseText;
- if(result.length == 32) {
- credentialFieldset.items.items[4].setValue(response.responseText);
- propertiesFieldset.show();
- timeFieldset.show();
- timeFieldset.collapse();
- credentialFieldset.items.items[2].hide(); //Hide Test User
- credentialFieldset.items.items[3].show(); //Show Edit User
- }
- },
- failure: function(){
- PMExt.notify( _('ID_STATUS') , _('ID_LOAD_FAILED') );
- }
- });
- }
- }
- },{
- xtype : 'button',
- id : 'editUser',
- width : 75,
- text : _('ID_EDIT_USER'),
- arrowAlign : 'center',
- scope :_5678,
- align : 'center',
- hidden : true,
- margins : '5 5 5 5',
- handler: function(){
- var credentialFieldset = workflow.caseSchedularForm.items.items[0];
- var propertiesFieldset = workflow.caseSchedularForm.items.items[1];
- var timeFieldset = workflow.caseSchedularForm.items.items[2];
- propertiesFieldset.hide();
- timeFieldset.hide();
- credentialFieldset.items.items[3].hide(); //Hide Edit User
- credentialFieldset.items.items[2].show(); //Show Test User
- }
- },{
- name : 'SCH_DEL_USER_UID',
- hidden : true
- },{
- name : 'PRO_UID',
- hidden : true
- },{
- name : 'SCH_DAYS_PERFORM_TASK',
- hidden : true,
- value : 1
- },{
- name : 'TAS_UID',
- hidden : true,
- value : 1
- },{
- name : 'SCH_WEEK_DAYS',
- hidden : true
- },{
- name : 'SCH_MONTHS',
- hidden : true
- },{
- name : 'EVN_UID',
- hidden : true
- },{
- name : 'SCH_UID',
- hidden : true
- }]
- },{
- xtype :'fieldset',
- title : _('ID_PROPERTIES'),
- collapsible : false,
- autoHeight :true,
- buttonAlign : 'center',
- defaults : {width: 210},
- defaultType : 'textfield',
- items: [
- {
- fieldLabel : _('ID_TASK'),
- name : 'TAS_NAME',
- value : taskName,
- readOnly : true,
- allowBlank : false
- },{
- fieldLabel : _('ID_DESCRIPTION'),
- allowBlank : false,
- name : 'SCH_NAME'
- },{
- width : 120,
- xtype : 'combo',
- mode : 'local',
- triggerAction : 'all',
- forceSelection : true,
- allowBlank : false,
- value : '--select--',
- editable : false,
- fieldLabel : _('ID_PERFORM_TASK'),
- name : 'SCH_OPTION',
- displayField : 'name',
- valueField : 'value',
- scope : _5678,
- store : new Ext.data.JsonStore({
- fields : ['name', 'value'],
- data :[
- {name : '--select--', value: '0',selected: true},
- {name : 'Daily', value: '1'},
- {name : 'Weekly', value: '2'},
- {name : 'Monthly', value: '3'},
- {name : 'One time only',value: '4'}
- ]
- }),
- onSelect: function(record, index){
- var timeFieldset = workflow.caseSchedularForm.items.items[2];
- timeFieldset.expand();
- oPmosExt.hideSchOptions(caseSchedularForm,index);
- this.setValue(record.data[this.valueField || this.displayField]);
- this.collapse();
- }
- }
- ]},{
- xtype : 'fieldset',
- title : _('ID_SELECT_DATE_TIME'),
- collapsible : false,
- autoHeight : true,
- buttonAlign : 'center',
- defaults : {width: 210},
- defaultType : 'textfield',
- items: [
- {
- xtype : 'datefield',
- name : 'SCH_START_DATE',
- format : 'Y-m-d',
- fieldLabel : _('ID_START_DATE')
- },{
- xtype : 'datefield',
- name :'SCH_END_DATE',
- format : 'Y-m-d',
- fieldLabel : _('ID_END_DATE')
- },{
- fieldLabel : _('ID_EXECUTION_TIME'),
- name : 'SCH_START_TIME'
- },{
- xtype : 'checkboxgroup',
- fieldLabel : _('ID_SELECT_DAY_OF_WEEK'),
- name : 'SCH_WEEK_DAY',
- hidden : true,
- columns : 2,
- items : [
- {boxLabel: 'Monday', name: '1', checked: true},
- {boxLabel: 'Tuesday', name: '2'},
- {boxLabel: 'Wednesday', name: '3'},
- {boxLabel: 'Thursday', name: '4'},
- {boxLabel: 'Friday', name: '5'},
- {boxLabel: 'Saturday', name: '6'},
- {boxLabel: 'Sunday', name: '7'}
- ]
- },{
- width : 100,
- labelWidth : 0,
- xtype : 'combo',
- mode : 'local',
- triggerAction : 'all',
- forceSelection : true,
- hidden : true,
- editable : false,
- name : 'SCH_START_DAY',
- displayField : 'name',
- valueField : 'value',
- store : new Ext.data.JsonStore({
- fields : ['name', 'value'],
- data : [
- {name : 'Day of Month', value: '1'},
- {name : 'The Day', value: '2'},
- ]
- }),
- onSelect: function(record, index){
- var timefieldset = workflow.caseSchedularForm.items.items[2];
- var fields = timefieldset.items.items;
- var fieldsToToggle = new Array();
- if(index == 0) { //Select
- fieldsToToggle = [fields[5],fields[6]];
- oPmosExt.toggleFields(fieldsToToggle,false);
-
- fieldsToToggle = [fields[7]];
- oPmosExt.toggleFields(fieldsToToggle,true);
- }
- else {
- fieldsToToggle = [fields[5],fields[6]];
- oPmosExt.toggleFields(fieldsToToggle,true);
-
- fieldsToToggle = [fields[7]];
- oPmosExt.toggleFields(fieldsToToggle,false);
- }
- this.setValue(record.data[this.valueField || this.displayField]);
- this.collapse();
- }
- },{
- width : 100,
- labelWidth : 0,
- xtype : 'combo',
- mode : 'local',
- triggerAction : 'all',
- forceSelection : true,
- hidden : true,
- editable : false,
- name : 'SCH_START_DAY_OPT_2_WEEKS',
- displayField : 'name',
- valueField : 'value',
- store : new Ext.data.JsonStore({
- fields : ['name', 'value'],
- data : [
- {name : 'First', value: '1'},
- {name : 'Second', value: '2'},
- {name : 'Third', value: '3'},
- {name : 'Fourth', value: '4'},
- {name : 'Last', value: '5'},
- ]
- })
- },{
- width : 100,
- labelWidth : 0,
- xtype : 'combo',
- mode : 'local',
- triggerAction : 'all',
- forceSelection: true,
- hidden : true,
- editable : false,
- name : 'SCH_START_DAY_OPT_2_DAYS_WEEK',
- displayField : 'name',
- valueField : 'value',
- store : new Ext.data.JsonStore({
- fields : ['name', 'value'],
- data : [
- {name : 'Monday', value: '1'},
- {name : 'Tuesday', value: '2'},
- {name : 'Wednesday', value: '3'},
- {name : 'Thursday', value: '4'},
- {name : 'Friday', value: '5'},
- {name : 'Saturday', value: '6'},
- {name : 'Sunday', value: '7'},
- ]
- })
- },{
- name : 'SCH_START_DAY_OPT_1',
- hidden : true,
- value : 1
- },{
- xtype : 'checkboxgroup',
- fieldLabel: _('ID_OF_THE_MONTH'),
- name : 'SCH_MONTH',
- hidden:true,
- // Put all controls in a single column with width 100%
- columns: 3,
- items: [
- {boxLabel : 'Jan', name: '1'},
- {boxLabel : 'Feb', name: '2'},
- {boxLabel : 'Mar', name: '3'},
- {boxLabel : 'Apr', name: '4'},
- {boxLabel : 'May', name: '5'},
- {boxLabel : 'Jun', name: '6'},
- {boxLabel : 'Jul', name: '7'},
- {boxLabel : 'Aug', name: '8'},
- {boxLabel : 'Sep', name: '9'},
- {boxLabel : 'Oct', name: '10'},
- {boxLabel : 'Nov', name: '11'},
- {boxLabel : 'Dec', name: '12'},
- ]
- }]}
- ]
- });
- caseSchedularForm.render(document.body);
- var credentialFieldset = caseSchedularForm.items.items[0];
- var propertiesFieldset = caseSchedularForm.items.items[1];
- var timeFieldset = caseSchedularForm.items.items[2];
-
- var evn_uid = workflow.currentSelection.id;
- //Loading Details into the form
- caseSchedularForm.form.load({
- url:'proxyCaseSchLoad?eid='+evn_uid,
- method:'GET',
- waitMsg:'Loading',
- success:function(form,action) {
- propertiesFieldset.show();
- timeFieldset.show();
- timeFieldset.expand();
- credentialFieldset.items.items[2].hide(); //Hide Test User
- credentialFieldset.items.items[3].show(); //Show Edit User
- var schedularDetails = Ext.util.JSON.decode(action.response.responseText);
- var schedularData = schedularDetails.data;
-
- var aSchDay = new Array();
- aSchDay = schedularData.SCH_START_DAY.substr(0,schedularData.SCH_START_DAY.length-1).split("|");
- for(var i=0;i < aSchDay.length;i++)
- {
- if(i == 1)
- timeFieldset.items.items[5].setValue(aSchDay[i]);
- else if(i == 2)
- timeFieldset.items.items[6].setValue(aSchDay[i]);
- else if(i == 3)
- timeFieldset.items.items[8].setValue(aSchDay[i]);
- }
-
- var aSchWeek = new Array();
- aSchWeek = schedularData.SCH_WEEK_DAYS.substr(0,schedularData.SCH_WEEK_DAYS.length-1).split("|");
- for(var i=0;i