diff --git a/workflow/engine/classes/class.processMap.php b/workflow/engine/classes/class.processMap.php
index ce50d9733..ae6a77777 100755
--- a/workflow/engine/classes/class.processMap.php
+++ b/workflow/engine/classes/class.processMap.php
@@ -80,186 +80,187 @@ class processMap {
* @return string
*/
- function load($sProcessUID, $bView = false, $sApplicationUID = '', $iDelegation = 0, $sTask = '', $bCT = false) {
- try {
- $oProcess = new Process ( );
+ public function load($sProcessUID, $bView = false, $sApplicationUID = '', $iDelegation = 0, $sTask = '', $bCT = false)
+ {
+ try {
+ $oProcess = new Process ( );
- $aRow = $oProcess->load($sProcessUID);
- $oPM->title->label = strip_tags($aRow ['PRO_TITLE']);
- $oPM->title->position->x = $aRow ['PRO_TITLE_X'];
- $oPM->title->position->y = $aRow ['PRO_TITLE_Y'];
- $oPM->task = array();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(TaskPeer::PRO_UID);
- $oCriteria->addSelectColumn(TaskPeer::TAS_UID);
- $oCriteria->addSelectColumn(ContentPeer::CON_VALUE);
- $oCriteria->addSelectColumn(TaskPeer::TAS_START);
- $oCriteria->addSelectColumn(TaskPeer::TAS_POSX);
- $oCriteria->addSelectColumn(TaskPeer::TAS_POSY);
- $oCriteria->addSelectColumn(TaskPeer::TAS_COLOR);
- $oCriteria->addSelectColumn(TaskPeer::TAS_TYPE);
- $aConditions = array();
- $aConditions [] = array(0 => TaskPeer::TAS_UID, 1 => ContentPeer::CON_ID);
- $aConditions [] = array(0 => ContentPeer::CON_CATEGORY, 1 => DBAdapter::getStringDelimiter () . 'TAS_TITLE' . DBAdapter::getStringDelimiter ());
- $aConditions [] = array(0 => ContentPeer::CON_LANG, 1 => DBAdapter::getStringDelimiter () . SYS_LANG . DBAdapter::getStringDelimiter ());
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(TaskPeer::PRO_UID, $sProcessUID);
- $oDataset = TaskPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow1 = $oDataset->getRow()) {
- $oTask = null;
- $oTask->uid = $aRow1 ['TAS_UID'];
- $oTask->task_type = $aRow1 ['TAS_TYPE'];
- if ($aRow1 ['TAS_TYPE'] == 'NORMAL') {
- if (($aRow1 ['CON_VALUE'] == "")) { //There is no Label in Current SYS_LANG language so try to find in English - by default
- $oTask1 = new Task ( );
- $aFields1 = $oTask1->load($oTask->uid);
- $aRow1 ['CON_VALUE'] = $oTask1->getTasTitle();
- }
- $oTask->label = strip_tags($aRow1 ['CON_VALUE']);
- } else {
- $oCriteria = new Criteria('workflow');
- $del = DBAdapter::getStringDelimiter ();
- $oCriteria->add(SubProcessPeer::PRO_PARENT, $aRow1 ['PRO_UID']);
- $oCriteria->add(SubProcessPeer::TAS_PARENT, $aRow1 ['TAS_UID']);
-
- $oCriteria->addAsColumn('TAS_TITLE', 'C1.CON_VALUE');
- $oCriteria->addAlias("C1", 'CONTENT');
- $tasTitleConds = array();
- $tasTitleConds [] = array(SubProcessPeer::TAS_PARENT, 'C1.CON_ID');
- $tasTitleConds [] = array('C1.CON_CATEGORY', $del . 'TAS_TITLE' . $del);
- $tasTitleConds [] = array('C1.CON_LANG', $del . SYS_LANG . $del);
- $oCriteria->addJoinMC($tasTitleConds, Criteria::LEFT_JOIN);
-
- $oDatasetX = SubProcessPeer::doSelectRS($oCriteria);
- $oDatasetX->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDatasetX->next();
- $aRowx = $oDatasetX->getRow();
- if ($oProcess->exists($aRowx ['PRO_UID'])) {
- //$aRowy = $oProcess->load($aRowx['PRO_UID']);
- //$oTask->label = $aRowy['PRO_TITLE'];
- $oTask->label = $aRowx ['TAS_TITLE'];
- } else {
- $oTask->label = strip_tags($aRow1 ['CON_VALUE']);
- }
- }
- $oTask->taskINI = (strtolower($aRow1 ['TAS_START']) == 'true' ? true : false);
- $oTask->position->x = (int) $aRow1 ['TAS_POSX'];
- $oTask->position->y = (int) $aRow1 ['TAS_POSY'];
- $oTask->derivation = null;
- $oTask->derivation->to = array();
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(RoutePeer::PRO_UID, $sProcessUID);
- $oCriteria->add(RoutePeer::TAS_UID, $aRow1 ['TAS_UID']);
- $oDataset2 = RoutePeer::doSelectRS($oCriteria);
- $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset2->next();
- while ($aRow2 = $oDataset2->getRow()) {
- switch ($aRow2 ['ROU_TYPE']) {
- case 'SEQUENTIAL' :
- $aRow2 ['ROU_TYPE'] = 0;
- break;
- case 'SELECT' :
- $aRow2 ['ROU_TYPE'] = 1;
- break;
- case 'EVALUATE' :
- $aRow2 ['ROU_TYPE'] = 2;
- break;
- case 'PARALLEL' :
- $aRow2 ['ROU_TYPE'] = 3;
- break;
- case 'PARALLEL-BY-EVALUATION' :
- $aRow2 ['ROU_TYPE'] = 4;
- break;
- case 'SEC-JOIN' :
- $aRow2 ['ROU_TYPE'] = 5;
- break;
- case 'DISCRIMINATOR' :
- $aRow2 ['ROU_TYPE'] = 8;
- break;
- }
- $oTo = null;
- $oTo->task = $aRow2 ['ROU_NEXT_TASK'];
- $oTo->condition = $aRow2 ['ROU_CONDITION'];
- $oTo->executant = $aRow2 ['ROU_TO_LAST_USER'];
- $oTo->optional = $aRow2 ['ROU_OPTIONAL'];
- $oTask->derivation->type = $aRow2 ['ROU_TYPE'];
- $oTask->derivation->to [] = $oTo;
- $oDataset2->next();
- }
- if ($bCT) {
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn('COUNT(*) AS CANT');
- $oCriteria->addSelectColumn('MIN(DEL_FINISH_DATE) AS FINISH');
- $oCriteria->add(AppDelegationPeer::APP_UID, $sApplicationUID);
- $oCriteria->add(AppDelegationPeer::TAS_UID, $aRow1 ['TAS_UID']);
- $oDataset2 = AppDelegationPeer::doSelectRS($oCriteria);
- $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset2->next();
- $aRow2 = $oDataset2->getRow();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn('DEL_FINISH_DATE');
- $oCriteria->add(AppDelegationPeer::APP_UID, $sApplicationUID);
- $oCriteria->add(AppDelegationPeer::TAS_UID, $aRow1 ['TAS_UID']);
- $oCriteria->add(AppDelegationPeer::DEL_FINISH_DATE, null);
- $oDataset2 = AppDelegationPeer::doSelectRS($oCriteria);
- $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset2->next();
- $aRow3 = $oDataset2->getRow();
- if ($aRow3) {
- $aRow2 ['FINISH'] = '';
- }
- if (($aRow2 ['FINISH'] == null) && ($aRow1 ['TAS_UID'] == $sTask)) {
- $oTask->color = '#FF0000';
- } else {
- if ($aRow2 ['CANT'] != 0) {
- if ($aRow2 ['FINISH'] == null) {
- //$oTask->color = '#FF9900';
- $oTask->color = '#FF0000';
- } else {
- $oTask->color = '#006633';
- }
- }
- else {
- $oTask->color = "#939598";
- }
- }
- } else {
- if ($bView && ($sApplicationUID != '') && ($iDelegation > 0) && ($sTask != '')) {
+ $aRow = $oProcess->load($sProcessUID);
+ $oPM->title->label = strip_tags($aRow ['PRO_TITLE']);
+ $oPM->title->position->x = $aRow ['PRO_TITLE_X'];
+ $oPM->title->position->y = $aRow ['PRO_TITLE_Y'];
+ $oPM->task = array();
$oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn('COUNT(*) AS CANT');
- $oCriteria->addSelectColumn('MIN(DEL_FINISH_DATE) AS FINISH');
- $oCriteria->add(AppDelegationPeer::APP_UID, $sApplicationUID);
- $oCriteria->add(AppDelegationPeer::TAS_UID, $aRow1 ['TAS_UID']);
- $oDataset2 = AppDelegationPeer::doSelectRS($oCriteria);
- $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset2->next();
- $aRow2 = $oDataset2->getRow();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn('DEL_FINISH_DATE');
- $oCriteria->add(AppDelegationPeer::APP_UID, $sApplicationUID);
- $oCriteria->add(AppDelegationPeer::TAS_UID, $aRow1 ['TAS_UID']);
- $oCriteria->add(AppDelegationPeer::DEL_FINISH_DATE, null);
- $oDataset2 = AppDelegationPeer::doSelectRS($oCriteria);
- $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset2->next();
- $aRow3 = $oDataset2->getRow();
- if ($aRow3) {
- $aRow2 ['FINISH'] = '';
- }
- if (($aRow2 ['FINISH'] == null) && ($aRow1 ['TAS_UID'] == $sTask)) {
- $oTask->color = '#FF0000';
- } else {
- if ($aRow2 ['CANT'] != 0) {
- if ($aRow2 ['FINISH'] == null) {
- $oTask->color = '#FF9900';
+ $oCriteria->addSelectColumn(TaskPeer::PRO_UID);
+ $oCriteria->addSelectColumn(TaskPeer::TAS_UID);
+ $oCriteria->addSelectColumn(ContentPeer::CON_VALUE);
+ $oCriteria->addSelectColumn(TaskPeer::TAS_START);
+ $oCriteria->addSelectColumn(TaskPeer::TAS_POSX);
+ $oCriteria->addSelectColumn(TaskPeer::TAS_POSY);
+ $oCriteria->addSelectColumn(TaskPeer::TAS_COLOR);
+ $oCriteria->addSelectColumn(TaskPeer::TAS_TYPE);
+ $aConditions = array();
+ $aConditions [] = array(0 => TaskPeer::TAS_UID, 1 => ContentPeer::CON_ID);
+ $aConditions [] = array(0 => ContentPeer::CON_CATEGORY, 1 => DBAdapter::getStringDelimiter () . 'TAS_TITLE' . DBAdapter::getStringDelimiter ());
+ $aConditions [] = array(0 => ContentPeer::CON_LANG, 1 => DBAdapter::getStringDelimiter () . SYS_LANG . DBAdapter::getStringDelimiter ());
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(TaskPeer::PRO_UID, $sProcessUID);
+ $oDataset = TaskPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow1 = $oDataset->getRow()) {
+ $oTask = null;
+ $oTask->uid = $aRow1 ['TAS_UID'];
+ $oTask->task_type = $aRow1 ['TAS_TYPE'];
+ if ($aRow1 ['TAS_TYPE'] == 'NORMAL') {
+ if (($aRow1 ['CON_VALUE'] == "")) { //There is no Label in Current SYS_LANG language so try to find in English - by default
+ $oTask1 = new Task ( );
+ $aFields1 = $oTask1->load($oTask->uid);
+ $aRow1 ['CON_VALUE'] = $oTask1->getTasTitle();
+ }
+ $oTask->label = strip_tags($aRow1 ['CON_VALUE']);
} else {
- $oTask->color = '#006633';
+ $oCriteria = new Criteria('workflow');
+ $del = DBAdapter::getStringDelimiter ();
+ $oCriteria->add(SubProcessPeer::PRO_PARENT, $aRow1 ['PRO_UID']);
+ $oCriteria->add(SubProcessPeer::TAS_PARENT, $aRow1 ['TAS_UID']);
+
+ $oCriteria->addAsColumn('TAS_TITLE', 'C1.CON_VALUE');
+ $oCriteria->addAlias("C1", 'CONTENT');
+ $tasTitleConds = array();
+ $tasTitleConds [] = array(SubProcessPeer::TAS_PARENT, 'C1.CON_ID');
+ $tasTitleConds [] = array('C1.CON_CATEGORY', $del . 'TAS_TITLE' . $del);
+ $tasTitleConds [] = array('C1.CON_LANG', $del . SYS_LANG . $del);
+ $oCriteria->addJoinMC($tasTitleConds, Criteria::LEFT_JOIN);
+
+ $oDatasetX = SubProcessPeer::doSelectRS($oCriteria);
+ $oDatasetX->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDatasetX->next();
+ $aRowx = $oDatasetX->getRow();
+ if ($oProcess->exists($aRowx ['PRO_UID'])) {
+ //$aRowy = $oProcess->load($aRowx['PRO_UID']);
+ //$oTask->label = $aRowy['PRO_TITLE'];
+ $oTask->label = $aRowx ['TAS_TITLE'];
+ } else {
+ $oTask->label = strip_tags($aRow1 ['CON_VALUE']);
+ }
+ }
+ $oTask->taskINI = (strtolower($aRow1 ['TAS_START']) == 'true' ? true : false);
+ $oTask->position->x = (int) $aRow1 ['TAS_POSX'];
+ $oTask->position->y = (int) $aRow1 ['TAS_POSY'];
+ $oTask->derivation = null;
+ $oTask->derivation->to = array();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(RoutePeer::PRO_UID, $sProcessUID);
+ $oCriteria->add(RoutePeer::TAS_UID, $aRow1 ['TAS_UID']);
+ $oDataset2 = RoutePeer::doSelectRS($oCriteria);
+ $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset2->next();
+ while ($aRow2 = $oDataset2->getRow()) {
+ switch ($aRow2 ['ROU_TYPE']) {
+ case 'SEQUENTIAL' :
+ $aRow2 ['ROU_TYPE'] = 0;
+ break;
+ case 'SELECT' :
+ $aRow2 ['ROU_TYPE'] = 1;
+ break;
+ case 'EVALUATE' :
+ $aRow2 ['ROU_TYPE'] = 2;
+ break;
+ case 'PARALLEL' :
+ $aRow2 ['ROU_TYPE'] = 3;
+ break;
+ case 'PARALLEL-BY-EVALUATION' :
+ $aRow2 ['ROU_TYPE'] = 4;
+ break;
+ case 'SEC-JOIN' :
+ $aRow2 ['ROU_TYPE'] = 5;
+ break;
+ case 'DISCRIMINATOR' :
+ $aRow2 ['ROU_TYPE'] = 8;
+ break;
+ }
+ $oTo = null;
+ $oTo->task = $aRow2 ['ROU_NEXT_TASK'];
+ $oTo->condition = $aRow2 ['ROU_CONDITION'];
+ $oTo->executant = $aRow2 ['ROU_TO_LAST_USER'];
+ $oTo->optional = $aRow2 ['ROU_OPTIONAL'];
+ $oTask->derivation->type = $aRow2 ['ROU_TYPE'];
+ $oTask->derivation->to [] = $oTo;
+ $oDataset2->next();
+ }
+ if ($bCT) {
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn('COUNT(*) AS CANT');
+ $oCriteria->addSelectColumn('MIN(DEL_FINISH_DATE) AS FINISH');
+ $oCriteria->add(AppDelegationPeer::APP_UID, $sApplicationUID);
+ $oCriteria->add(AppDelegationPeer::TAS_UID, $aRow1 ['TAS_UID']);
+ $oDataset2 = AppDelegationPeer::doSelectRS($oCriteria);
+ $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset2->next();
+ $aRow2 = $oDataset2->getRow();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn('DEL_FINISH_DATE');
+ $oCriteria->add(AppDelegationPeer::APP_UID, $sApplicationUID);
+ $oCriteria->add(AppDelegationPeer::TAS_UID, $aRow1 ['TAS_UID']);
+ $oCriteria->add(AppDelegationPeer::DEL_FINISH_DATE, null);
+ $oDataset2 = AppDelegationPeer::doSelectRS($oCriteria);
+ $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset2->next();
+ $aRow3 = $oDataset2->getRow();
+ if ($aRow3) {
+ $aRow2 ['FINISH'] = '';
+ }
+ if (($aRow2 ['FINISH'] == null) && ($aRow1 ['TAS_UID'] == $sTask)) {
+ $oTask->color = '#FF0000';
+ } else {
+ if ($aRow2 ['CANT'] != 0) {
+ if ($aRow2 ['FINISH'] == null) {
+ //$oTask->color = '#FF9900';
+ $oTask->color = '#FF0000';
+ } else {
+ $oTask->color = '#006633';
+ }
+ }
+ else {
+ $oTask->color = "#939598";
+ }
+ }
+ } else {
+ if ($bView && ($sApplicationUID != '') && ($iDelegation > 0) && ($sTask != '')) {
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn('COUNT(*) AS CANT');
+ $oCriteria->addSelectColumn('MIN(DEL_FINISH_DATE) AS FINISH');
+ $oCriteria->add(AppDelegationPeer::APP_UID, $sApplicationUID);
+ $oCriteria->add(AppDelegationPeer::TAS_UID, $aRow1 ['TAS_UID']);
+ $oDataset2 = AppDelegationPeer::doSelectRS($oCriteria);
+ $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset2->next();
+ $aRow2 = $oDataset2->getRow();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn('DEL_FINISH_DATE');
+ $oCriteria->add(AppDelegationPeer::APP_UID, $sApplicationUID);
+ $oCriteria->add(AppDelegationPeer::TAS_UID, $aRow1 ['TAS_UID']);
+ $oCriteria->add(AppDelegationPeer::DEL_FINISH_DATE, null);
+ $oDataset2 = AppDelegationPeer::doSelectRS($oCriteria);
+ $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset2->next();
+ $aRow3 = $oDataset2->getRow();
+ if ($aRow3) {
+ $aRow2 ['FINISH'] = '';
+ }
+ if (($aRow2 ['FINISH'] == null) && ($aRow1 ['TAS_UID'] == $sTask)) {
+ $oTask->color = '#FF0000';
+ } else {
+ if ($aRow2 ['CANT'] != 0) {
+ if ($aRow2 ['FINISH'] == null) {
+ $oTask->color = '#FF9900';
+ } else {
+ $oTask->color = '#006633';
+ }
+ } else {
+ $oTask->color = '#939598';
}
- } else {
- $oTask->color = '#939598';
- }
}
}
}
@@ -363,12 +364,12 @@ class processMap {
//Load extended task properties from plugin. By JHL Jan 18, 2011
$oPluginRegistry =& PMPluginRegistry::getSingleton();
- $activePluginsForTaskProperties=$oPluginRegistry->getTaskExtendedProperties();
+ $activePluginsForTaskProperties=$oPluginRegistry->getTaskExtendedProperties();
$oPM->taskOptions = array();
foreach($activePluginsForTaskProperties as $key => $taskPropertiesInfo){
- $taskOption['title']=$taskPropertiesInfo->sName;
- $taskOption['id']=$taskPropertiesInfo->sNamespace."--".$taskPropertiesInfo->sName;
- $oPM->taskOptions[]=$taskOption;
+ $taskOption['title']=$taskPropertiesInfo->sName;
+ $taskOption['id']=$taskPropertiesInfo->sNamespace."--".$taskPropertiesInfo->sName;
+ $oPM->taskOptions[]=$taskOption;
}
$oJSON = new Services_JSON();
@@ -378,79 +379,79 @@ class processMap {
}
}
- /*
- * Create a Process
- * @param array $aData
- * @return boolean
- */
-
- function createProcess($aData) {
- try {
- $oProcess = new Process ( );
- return $oProcess->create($aData);
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Update a Process
- * @param array $aData
- * @return boolean
- */
-
- function updateProcess($aData) {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($aData ['PRO_UID']);
- return $oProcess->update($aData);
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Edit the Process Map information
- * @param string $sProcessUID
- * @return boolean
- */
-
- function editProcess($sProcessUID) {
- try {
- $oProcess = new Process ();
-
- if (!is_null($oProcess)) {
- G::loadClass('processes');
- $calendar = new Calendar();
- $files = Processes::getProcessFiles($sProcessUID, 'mail');
-
- $templates = array();
- $templates[] = 'dummy';
-
- foreach ($files as $file) {
- $templates[] = array('FILE' => $file['filename'], 'NAME' => $file['filename']);
+ /*
+ * Create a Process
+ * @param array $aData
+ * @return boolean
+ */
+ public function createProcess($aData)
+ {
+ try {
+ $oProcess = new Process ( );
+ return $oProcess->create($aData);
+ } catch (Exception $oError) {
+ throw ($oError);
}
+ }
- $calendarObj = $calendar->getCalendarList(true, true);
+ /*
+ * Update a Process
+ * @param array $aData
+ * @return boolean
+ */
+ public function updateProcess($aData)
+ {
+ try {
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($aData ['PRO_UID']);
+ return $oProcess->update($aData);
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
- global $_DBArray;
- $_DBArray['_TEMPLATES1'] = $templates;
- $_DBArray['availableCalendars'] = $calendarObj['array'];
- $_SESSION ['_DBArray'] = $_DBArray;
+ /*
+ * Edit the Process Map information
+ * @param string $sProcessUID
+ * @return boolean
+ */
+ public function editProcess($sProcessUID)
+ {
+ try {
+ $oProcess = new Process ();
- $aFields = $oProcess->load($sProcessUID);
- $aFields['PRO_SUMMARY_DYNAFORM'] = (isset($aFields['PRO_DYNAFORMS']['PROCESS']) ? $aFields['PRO_DYNAFORMS']['PROCESS'] : '');
- $aFields['THETYPE'] = 'UPDATE';
- $calendarInfo = $calendar->getCalendarFor($sProcessUID, $sProcessUID, $sProcessUID);
+ if (!is_null($oProcess)) {
+ G::loadClass('processes');
+ $calendar = new Calendar();
+ $files = Processes::getProcessFiles($sProcessUID, 'mail');
- //If the function returns a DEFAULT calendar it means that this object doesn't have assigned any calendar
- $aFields['PRO_CALENDAR'] = $calendarInfo ['CALENDAR_APPLIED'] != 'DEFAULT' ? $calendarInfo ['CALENDAR_UID'] : "";
- $aFields['SYS_LANG'] = SYS_LANG;
+ $templates = array();
+ $templates[] = 'dummy';
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('xmlform', 'xmlform', 'processes/processes_Edit', '', $aFields, 'processes_Save');
- G::RenderPage('publish', 'raw');
+ foreach ($files as $file) {
+ $templates[] = array('FILE' => $file['filename'], 'NAME' => $file['filename']);
+ }
+
+ $calendarObj = $calendar->getCalendarList(true, true);
+
+ global $_DBArray;
+ $_DBArray['_TEMPLATES1'] = $templates;
+ $_DBArray['availableCalendars'] = $calendarObj['array'];
+ $_SESSION ['_DBArray'] = $_DBArray;
+
+ $aFields = $oProcess->load($sProcessUID);
+ $aFields['PRO_SUMMARY_DYNAFORM'] = (isset($aFields['PRO_DYNAFORMS']['PROCESS']) ? $aFields['PRO_DYNAFORMS']['PROCESS'] : '');
+ $aFields['THETYPE'] = 'UPDATE';
+ $calendarInfo = $calendar->getCalendarFor($sProcessUID, $sProcessUID, $sProcessUID);
+
+ //If the function returns a DEFAULT calendar it means that this object doesn't have assigned any calendar
+ $aFields['PRO_CALENDAR'] = $calendarInfo ['CALENDAR_APPLIED'] != 'DEFAULT' ? $calendarInfo ['CALENDAR_UID'] : "";
+ $aFields['SYS_LANG'] = SYS_LANG;
+
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $G_PUBLISH->AddContent('xmlform', 'xmlform', 'processes/processes_Edit', '', $aFields, 'processes_Save');
+ G::RenderPage('publish', 'raw');
return true;
}
@@ -458,281 +459,280 @@ class processMap {
throw (new Exception('This row doesn\'t exist!'));
}
}
- catch (Exception $oError) {
+ catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Delete a Process
+ * @param string $sProcessUID
+ * @return boolean
+ */
+ public function deleteProcess($sProcessUID)
+ {
+ try {
+ G::LoadClass('case');
+ G::LoadClass('reportTables');
+ //Instance all classes necesaries
+ $oProcess = new Process ( );
+ $oDynaform = new Dynaform ( );
+ $oInputDocument = new InputDocument ( );
+ $oOutputDocument = new OutputDocument ( );
+ $oTrigger = new Triggers ( );
+ $oRoute = new Route ( );
+ $oGateway = new Gateway ( );
+ $oEvent = new Event ( );
+ $oSwimlaneElement = new SwimlanesElements ( );
+ $oConfiguration = new Configuration ( );
+ $oDbSource = new DbSource ( );
+ $oReportTable = new ReportTables ( );
+ $oCaseTracker = new CaseTracker ( );
+ $oCaseTrackerObject = new CaseTrackerObject ( );
+ //Delete the applications of process
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(ApplicationPeer::PRO_UID, $sProcessUID);
+ $oDataset = ApplicationPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ $oCase = new Cases ( );
+ while ($aRow = $oDataset->getRow()) {
+ $oCase->removeCase($aRow ['APP_UID']);
+ $oDataset->next();
+ }
+ //Delete the tasks of process
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(TaskPeer::PRO_UID, $sProcessUID);
+ $oDataset = TaskPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ $this->deleteTask($aRow ['TAS_UID']);
+ $oDataset->next();
+ }
+ //Delete the dynaforms of process
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(DynaformPeer::PRO_UID, $sProcessUID);
+ $oDataset = DynaformPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ $oDynaform->remove($aRow ['DYN_UID']);
+ $oDataset->next();
+ }
+ //Delete the input documents of process
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(InputDocumentPeer::PRO_UID, $sProcessUID);
+ $oDataset = InputDocumentPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ $oInputDocument->remove($aRow ['INP_DOC_UID']);
+ $oDataset->next();
+ }
+ //Delete the output documents of process
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(OutputDocumentPeer::PRO_UID, $sProcessUID);
+ $oDataset = OutputDocumentPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ $oOutputDocument->remove($aRow ['OUT_DOC_UID']);
+ $oDataset->next();
+ }
+
+ //Delete the triggers of process
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(TriggersPeer::PRO_UID, $sProcessUID);
+ $oDataset = TriggersPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ $oTrigger->remove($aRow ['TRI_UID']);
+ $oDataset->next();
+ }
+
+ //Delete the routes of process
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(RoutePeer::PRO_UID, $sProcessUID);
+ $oDataset = RoutePeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ $oRoute->remove($aRow ['ROU_UID']);
+ $oDataset->next();
+ }
+
+ //Delete the gateways of process
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(GatewayPeer::PRO_UID, $sProcessUID);
+ $oDataset = GatewayPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ $oGateway->remove($aRow ['GAT_UID']);
+ $oDataset->next();
+ }
+
+ //Delete the Event of process
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(EventPeer::PRO_UID, $sProcessUID);
+ $oDataset = EventPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ $oEvent->remove($aRow ['EVN_UID']);
+ $oDataset->next();
+ }
+
+ //Delete the swimlanes elements of process
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(SwimlanesElementsPeer::PRO_UID, $sProcessUID);
+ $oDataset = SwimlanesElementsPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ $oSwimlaneElement->remove($aRow ['SWI_UID']);
+ $oDataset->next();
+ }
+ //Delete the configurations of process
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(ConfigurationPeer::PRO_UID, $sProcessUID);
+ $oDataset = ConfigurationPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ $oConfiguration->remove($aRow ['CFG_UID'], $aRow ['OBJ_UID'], $aRow ['PRO_UID'], $aRow ['USR_UID'], $aRow ['APP_UID']);
+ $oDataset->next();
+ }
+ //Delete the DB sources of process
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(DbSourcePeer::PRO_UID, $sProcessUID);
+ $oDataset = DbSourcePeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ /**
+ * note added by gustavo cruz gustavo-at-colosa-dot-com 27-01-2010
+ * in order to solve the bug 0004389, we use the validation function Exists
+ * inside the remove function in order to verify if the DbSource record
+ * exists in the Database, however there is a strange behavior within the
+ * propel engine, when the first record is erased somehow the "_deleted"
+ * attribute of the next row is set to true, so when propel tries to erase
+ * it, obviously it can't and trows an error. With the "Exist" function
+ * we ensure that if there is the record in the database, the _delete attribute must be false.
+ *
+ * note added by gustavo cruz gustavo-at-colosa-dot-com 28-01-2010
+ * I have just identified the source of the issue, when is created a $oDbSource DbSource object
+ * it's used whenever a record is erased or removed in the db, however the problem
+ * it's that the same object is used every time, and the delete method invoked
+ * sets the _deleted attribute to true when its called, of course as we use
+ * the same object, the first time works fine but trowns an error with the
+ * next record, cos it's the same object and the delete method checks if the _deleted
+ * attribute it's true or false, the attrib _deleted is setted to true the
+ * first time and later is never changed, the issue seems to be part of
+ * every remove function in the model classes, not only DbSource
+ * i recommend that a more general solution must be achieved to resolve
+ * this issue in every model class, to prevent future problems.
+ * */
+ $oDbSource->remove($aRow ['DBS_UID'], $sProcessUID);
+ $oDataset->next();
+ }
+ //Delete the supervisors
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(ProcessUserPeer::PRO_UID, $sProcessUID);
+ ProcessUserPeer::doDelete($oCriteria);
+ //Delete the object permissions
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(ObjectPermissionPeer::PRO_UID, $sProcessUID);
+ ObjectPermissionPeer::doDelete($oCriteria);
+ //Delete the step supervisors
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(StepSupervisorPeer::PRO_UID, $sProcessUID);
+ StepSupervisorPeer::doDelete($oCriteria);
+ //Delete the report tables
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(ReportTablePeer::PRO_UID, $sProcessUID);
+ $oDataset = ReportTablePeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ $oReportTable->deleteReportTable($aRow ['REP_TAB_UID']);
+ $oDataset->next();
+ }
+ //Delete case tracker configuration
+ $oCaseTracker->remove($sProcessUID);
+ //Delete case tracker objects
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(CaseTrackerObjectPeer::PRO_UID, $sProcessUID);
+ ProcessUserPeer::doDelete($oCriteria);
+ //Delete the process
+ try {
+ $oProcess->remove($sProcessUID);
+ } catch (Exception $oError) { //nada
+ }
+ return true;
+ } catch (Exception $oError) {
throw ($oError);
}
}
- /*
- * Delete a Process
- * @param string $sProcessUID
- * @return boolean
- */
-
- function deleteProcess($sProcessUID) {
- try {
- G::LoadClass('case');
- G::LoadClass('reportTables');
- //Instance all classes necesaries
- $oProcess = new Process ( );
- $oDynaform = new Dynaform ( );
- $oInputDocument = new InputDocument ( );
- $oOutputDocument = new OutputDocument ( );
- $oTrigger = new Triggers ( );
- $oRoute = new Route ( );
- $oGateway = new Gateway ( );
- $oEvent = new Event ( );
- $oSwimlaneElement = new SwimlanesElements ( );
- $oConfiguration = new Configuration ( );
- $oDbSource = new DbSource ( );
- $oReportTable = new ReportTables ( );
- $oCaseTracker = new CaseTracker ( );
- $oCaseTrackerObject = new CaseTrackerObject ( );
- //Delete the applications of process
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(ApplicationPeer::PRO_UID, $sProcessUID);
- $oDataset = ApplicationPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- $oCase = new Cases ( );
- while ($aRow = $oDataset->getRow()) {
- $oCase->removeCase($aRow ['APP_UID']);
- $oDataset->next();
- }
- //Delete the tasks of process
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(TaskPeer::PRO_UID, $sProcessUID);
- $oDataset = TaskPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
- $this->deleteTask($aRow ['TAS_UID']);
- $oDataset->next();
- }
- //Delete the dynaforms of process
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(DynaformPeer::PRO_UID, $sProcessUID);
- $oDataset = DynaformPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
- $oDynaform->remove($aRow ['DYN_UID']);
- $oDataset->next();
- }
- //Delete the input documents of process
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(InputDocumentPeer::PRO_UID, $sProcessUID);
- $oDataset = InputDocumentPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
- $oInputDocument->remove($aRow ['INP_DOC_UID']);
- $oDataset->next();
- }
- //Delete the output documents of process
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(OutputDocumentPeer::PRO_UID, $sProcessUID);
- $oDataset = OutputDocumentPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
- $oOutputDocument->remove($aRow ['OUT_DOC_UID']);
- $oDataset->next();
- }
-
- //Delete the triggers of process
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(TriggersPeer::PRO_UID, $sProcessUID);
- $oDataset = TriggersPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
- $oTrigger->remove($aRow ['TRI_UID']);
- $oDataset->next();
- }
-
- //Delete the routes of process
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(RoutePeer::PRO_UID, $sProcessUID);
- $oDataset = RoutePeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
- $oRoute->remove($aRow ['ROU_UID']);
- $oDataset->next();
- }
-
- //Delete the gateways of process
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(GatewayPeer::PRO_UID, $sProcessUID);
- $oDataset = GatewayPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
- $oGateway->remove($aRow ['GAT_UID']);
- $oDataset->next();
- }
-
- //Delete the Event of process
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(EventPeer::PRO_UID, $sProcessUID);
- $oDataset = EventPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
- $oEvent->remove($aRow ['EVN_UID']);
- $oDataset->next();
- }
-
- //Delete the swimlanes elements of process
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(SwimlanesElementsPeer::PRO_UID, $sProcessUID);
- $oDataset = SwimlanesElementsPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
- $oSwimlaneElement->remove($aRow ['SWI_UID']);
- $oDataset->next();
- }
- //Delete the configurations of process
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(ConfigurationPeer::PRO_UID, $sProcessUID);
- $oDataset = ConfigurationPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
- $oConfiguration->remove($aRow ['CFG_UID'], $aRow ['OBJ_UID'], $aRow ['PRO_UID'], $aRow ['USR_UID'], $aRow ['APP_UID']);
- $oDataset->next();
- }
- //Delete the DB sources of process
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(DbSourcePeer::PRO_UID, $sProcessUID);
- $oDataset = DbSourcePeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
-
- /**
- * note added by gustavo cruz gustavo-at-colosa-dot-com 27-01-2010
- * in order to solve the bug 0004389, we use the validation function Exists
- * inside the remove function in order to verify if the DbSource record
- * exists in the Database, however there is a strange behavior within the
- * propel engine, when the first record is erased somehow the "_deleted"
- * attribute of the next row is set to true, so when propel tries to erase
- * it, obviously it can't and trows an error. With the "Exist" function
- * we ensure that if there is the record in the database, the _delete attribute must be false.
- *
- * note added by gustavo cruz gustavo-at-colosa-dot-com 28-01-2010
- * I have just identified the source of the issue, when is created a $oDbSource DbSource object
- * it's used whenever a record is erased or removed in the db, however the problem
- * it's that the same object is used every time, and the delete method invoked
- * sets the _deleted attribute to true when its called, of course as we use
- * the same object, the first time works fine but trowns an error with the
- * next record, cos it's the same object and the delete method checks if the _deleted
- * attribute it's true or false, the attrib _deleted is setted to true the
- * first time and later is never changed, the issue seems to be part of
- * every remove function in the model classes, not only DbSource
- * i recommend that a more general solution must be achieved to resolve
- * this issue in every model class, to prevent future problems.
- * */
- $oDbSource->remove($aRow ['DBS_UID'], $sProcessUID);
- $oDataset->next();
- }
- //Delete the supervisors
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(ProcessUserPeer::PRO_UID, $sProcessUID);
- ProcessUserPeer::doDelete($oCriteria);
- //Delete the object permissions
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(ObjectPermissionPeer::PRO_UID, $sProcessUID);
- ObjectPermissionPeer::doDelete($oCriteria);
- //Delete the step supervisors
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(StepSupervisorPeer::PRO_UID, $sProcessUID);
- StepSupervisorPeer::doDelete($oCriteria);
- //Delete the report tables
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(ReportTablePeer::PRO_UID, $sProcessUID);
- $oDataset = ReportTablePeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
- $oReportTable->deleteReportTable($aRow ['REP_TAB_UID']);
- $oDataset->next();
- }
- //Delete case tracker configuration
- $oCaseTracker->remove($sProcessUID);
- //Delete case tracker objects
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(CaseTrackerObjectPeer::PRO_UID, $sProcessUID);
- ProcessUserPeer::doDelete($oCriteria);
- //Delete the process
- try {
- $oProcess->remove($sProcessUID);
- } catch (Exception $oError) { //nada
- }
- return true;
- } catch (Exception $oError) {
- throw ($oError);
+ /*
+ * Save the process title position
+ * @param string sProcessUID
+ * @param integer $iX
+ * @param integer $iY
+ * @return boolean
+ */
+ public function saveTitlePosition($sProcessUID = '', $iX = 0, $iY = 0)
+ {
+ try {
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($sProcessUID);
+ $aFields ['PRO_UID'] = $sProcessUID;
+ $aFields ['PRO_TITLE_X'] = $iX;
+ $aFields ['PRO_TITLE_Y'] = $iY;
+ $oProcess->update($aFields);
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
}
- }
- /*
- * Save the process title position
- * @param string sProcessUID
- * @param integer $iX
- * @param integer $iY
- * @return boolean
- */
-
- function saveTitlePosition($sProcessUID = '', $iX = 0, $iY = 0) {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($sProcessUID);
- $aFields ['PRO_UID'] = $sProcessUID;
- $aFields ['PRO_TITLE_X'] = $iX;
- $aFields ['PRO_TITLE_Y'] = $iY;
- $oProcess->update($aFields);
- return true;
- } catch (Exception $oError) {
- throw ($oError);
+ /*
+ * Steps of Tasks
+ * @param string $sProcessUID
+ * @param string $sTaskUID
+ * @return boolean
+ */
+ public function steps($sProcessUID = '', $sTaskUID = '')
+ {
+ try {
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($sProcessUID);
+ $oTask = new Task ( );
+ $aFields = $oTask->load($sTaskUID);
+ $aFields = array();
+ $aFields ['PROCESS'] = $sProcessUID;
+ $aFields ['TASK'] = $sTaskUID;
+ $aFields ['CONFIRM'] = G::LoadTranslation('ID_MSG_CONFIRM_DELETE_STEP');
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'steps/steps_List', $this->getStepsCriteria($sTaskUID), $aFields);
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
}
- }
- /*
- * Steps of Tasks
- * @param string $sProcessUID
- * @param string $sTaskUID
- * @return boolean
- */
-
- function steps($sProcessUID = '', $sTaskUID = '') {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($sProcessUID);
- $oTask = new Task ( );
- $aFields = $oTask->load($sTaskUID);
- $aFields = array();
- $aFields ['PROCESS'] = $sProcessUID;
- $aFields ['TASK'] = $sTaskUID;
- $aFields ['CONFIRM'] = G::LoadTranslation('ID_MSG_CONFIRM_DELETE_STEP');
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'steps/steps_List', $this->getStepsCriteria($sTaskUID), $aFields);
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Return the steps list criteria object
- * @param string $sTaskUID
- * @return array
- */
-
- function getStepsCriteria($sTaskUID = '') {
+ /*
+ * Return the steps list criteria object
+ * @param string $sTaskUID
+ * @return array
+ */
+ public function getStepsCriteria($sTaskUID = '')
+ {
try {
//call plugin
$oPluginRegistry = &PMPluginRegistry::getSingleton ();
@@ -764,7 +764,7 @@ class processMap {
case 'INPUT_DOCUMENT' :
$oInputDocument = new InputDocument ( );
$aFields = $oInputDocument->getByUid($aRow ['STEP_UID_OBJ']);
- if( $aFields === false )
+ if ( $aFields === false )
continue;
$sTitle = $aFields ['INP_DOC_TITLE'];
break;
@@ -772,7 +772,7 @@ class processMap {
$oOutputDocument = new OutputDocument ( );
$aFields = $oOutputDocument->getByUid($aRow ['STEP_UID_OBJ']);
- if( $aFields === false )
+ if ( $aFields === false )
continue;
$sTitle = $aFields ['OUT_DOC_TITLE'];
break;
@@ -810,1562 +810,1437 @@ class processMap {
}
}
- /*
- * Return the step triggers list criteria object
- * @param string $sStepUID
- * @param string $sTaskUID
- * @param string $sType
- * @return object
- */
-
- function getStepTriggersCriteria($sStepUID = '', $sTaskUID = '', $sType = '') {
- $sDelimiter = DBAdapter::getStringDelimiter ();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn('C.CON_VALUE');
- $oCriteria->addSelectColumn('STEP_UID');
- $oCriteria->addSelectColumn('TRI_UID');
- $oCriteria->addSelectColumn('ST_TYPE');
- $oCriteria->addSelectColumn(StepTriggerPeer::ST_POSITION);
- $oCriteria->addAsColumn('TRI_TITLE', 'C.CON_VALUE');
- $oCriteria->addAlias('C', 'CONTENT');
- $aConditions = array();
- $aConditions [] = array(StepTriggerPeer::TRI_UID, 'C.CON_ID');
- $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'TRI_TITLE' . $sDelimiter);
- $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(StepTriggerPeer::STEP_UID, $sStepUID);
- $oCriteria->add(StepTriggerPeer::TAS_UID, $sTaskUID);
- $oCriteria->add(StepTriggerPeer::ST_TYPE, $sType);
- $oCriteria->addAscendingOrderByColumn(StepTriggerPeer::ST_POSITION);
- return $oCriteria;
- }
-
- /*
- * Return the available building blocks list criteria object
- * @param string $sProcessUID
- * @param string $sTaskUID
- * @return object
- */
-
- function getAvailableBBCriteria($sProcessUID = '', $sTaskUID = '') {
- try {
- $oTasks = new Tasks ( );
- $aSteps = $oTasks->getStepsOfTask($sTaskUID);
- $sUIDs = array();
- foreach ($aSteps as $aStep) {
- $sUIDs [] = $aStep ['STEP_UID_OBJ'];
- }
- $aBB = array();
- $aBB [] = array('STEP_UID' => 'char', 'STEP_TITLE' => 'char', 'STEP_TYPE_OBJ' => 'char', 'STEP_MODE' => 'char');
- $sDelimiter = DBAdapter::getStringDelimiter ();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(DynaformPeer::DYN_UID);
- $oCriteria->addAsColumn('DYN_TITLE', 'C.CON_VALUE');
- $oCriteria->addAlias('C', 'CONTENT');
- $aConditions = array();
- $aConditions [] = array(DynaformPeer::DYN_UID, 'C.CON_ID');
- $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'DYN_TITLE' . $sDelimiter);
- $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(DynaformPeer::PRO_UID, $sProcessUID);
- $oCriteria->add(DynaformPeer::DYN_UID, $sUIDs, Criteria::NOT_IN);
- $oCriteria->add(DynaformPeer::DYN_TYPE, 'xmlform');
- $oDataset = DynaformPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- $i = 0;
- while ($aRow = $oDataset->getRow()) {
- $i++;
- if (($aRow ['DYN_TITLE'] == NULL) || ($aRow ['DYN_TITLE'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
- $aRow ['DYN_TITLE'] = Content::Load("DYN_TITLE", "", $aRow ['DYN_UID'], SYS_LANG);
- }
- $aBB [] = array('STEP_UID' => $aRow ['DYN_UID'], 'STEP_TITLE' => $aRow ['DYN_TITLE'], 'STEP_TYPE_OBJ' => 'DYNAFORM', 'STEP_MODE' => '');
- $oDataset->next();
- }
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(InputDocumentPeer::INP_DOC_UID);
- $oCriteria->addAsColumn('INP_DOC_TITLE', 'C.CON_VALUE');
- $oCriteria->addAlias('C', 'CONTENT');
- $aConditions = array();
- $aConditions [] = array(InputDocumentPeer::INP_DOC_UID, 'C.CON_ID');
- $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter);
- $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(InputDocumentPeer::PRO_UID, $sProcessUID);
- $oCriteria->add(InputDocumentPeer::INP_DOC_UID, $sUIDs, Criteria::NOT_IN);
- $oDataset = InputDocumentPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
-
- if (($aRow ['INP_DOC_TITLE'] == NULL) || ($aRow ['INP_DOC_TITLE'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
- $aRow ['INP_DOC_TITLE'] = Content::Load("INP_DOC_TITLE", "", $aRow ['INP_DOC_UID'], SYS_LANG);
- }
- $aBB [] = array('STEP_UID' => $aRow ['INP_DOC_UID'], 'STEP_TITLE' => $aRow ['INP_DOC_TITLE'], 'STEP_TYPE_OBJ' => 'INPUT_DOCUMENT', 'STEP_MODE' => '');
- $oDataset->next();
- }
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_UID);
- $oCriteria->addAsColumn('OUT_DOC_TITLE', 'C.CON_VALUE');
- $oCriteria->addAlias('C', 'CONTENT');
- $aConditions = array();
- $aConditions [] = array(OutputDocumentPeer::OUT_DOC_UID, 'C.CON_ID');
- $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'OUT_DOC_TITLE' . $sDelimiter);
- $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(OutputDocumentPeer::PRO_UID, $sProcessUID);
- $oCriteria->add(OutputDocumentPeer::OUT_DOC_UID, $sUIDs, Criteria::NOT_IN);
- $oDataset = OutputDocumentPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
-
- if (($aRow ['OUT_DOC_TITLE'] == NULL) || ($aRow ['OUT_DOC_TITLE'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
- $aRow ['OUT_DOC_TITLE'] = Content::Load("OUT_DOC_TITLE", "", $aRow ['OUT_DOC_UID'], SYS_LANG);
- }
- $aBB [] = array('STEP_UID' => $aRow ['OUT_DOC_UID'], 'STEP_TITLE' => $aRow ['OUT_DOC_TITLE'], 'STEP_TYPE_OBJ' => 'OUTPUT_DOCUMENT', 'STEP_MODE' => '');
- $oDataset->next();
- }
-
- //call plugin
- $oPluginRegistry = &PMPluginRegistry::getSingleton ();
- $externalSteps = $oPluginRegistry->getSteps();
- if (is_array($externalSteps) && count($externalSteps) > 0) {
- foreach ($externalSteps as $key => $stepVar) {
- $aBB [] = array('STEP_UID' => $stepVar->sStepId, 'STEP_TITLE' => $stepVar->sStepTitle, 'STEP_TYPE_OBJ' => 'EXTERNAL', 'STEP_MODE' => '');
- }
- }
- global $_DBArray;
- $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
- $_DBArray ['availableBB'] = $aBB;
- $_SESSION ['_DBArray'] = $_DBArray;
- G::LoadClass('ArrayPeer');
- $oCriteria = new Criteria('dbarray');
- $oCriteria->setDBArrayTable('availableBB');
- $oCriteria->addAscendingOrderByColumn('STEP_TYPE_OBJ');
- $oCriteria->addAscendingOrderByColumn('STEP_TITLE');
- return $oCriteria;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Users assigned to Tasks
- * @param string $sProcessUID
- * @param string $sTaskUID
- * @return boolean
- */
-
- function users($sProcessUID = '', $sTaskUID = '') {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($sProcessUID);
- $oTask = new Task ( );
- $aFields = $oTask->load($sTaskUID);
-
- $_SESSION ['iType'] = 1;
-
- $aFields ['TASK'] = $sTaskUID;
- $aFields ['TYPE'] = $_SESSION ['iType'];
- $aFields ['OF_TO_ASSIGN'] = G::LoadTranslation('ID_DE_ASSIGN');
- $aFields ['CONFIRM'] = G::LoadTranslation('ID_MSG_CONFIRM_DEASIGN_USER_GROUP_MESSAGE');
- $aFields ['UIDS'] = "'0'";
-
- $oTasks = new Tasks ( );
- $oGroups = new Groups ( );
- $aAux1 = $oTasks->getGroupsOfTask($sTaskUID, $_SESSION ['iType']);
- foreach ($aAux1 as $aGroup) {
- $aAux2 = $oGroups->getUsersOfGroup($aGroup ['GRP_UID']);
- foreach ($aAux2 as $aUser) {
- $aFields ['UIDS'] .= ",'" . $aUser ['USR_UID'] . "'";
- }
- }
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $oTask = new Task ( );
- $aTask = $oTask->load($sTaskUID);
-
- if ($aFields ['TAS_TYPE'] == 'TRUE') {
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'users/users_ShortList', $this->getTaskUsersCriteria($sTaskUID, $_SESSION ['iType']), $aFields);
- } else {
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'users/users_ShortList2', $this->getTaskUsersCriteria($sTaskUID, $_SESSION ['iType']), $aFields);
- }
-
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Users Adhoc assigned to Tasks
- * @param string $sProcessUID
- * @param string $sTaskUID
- * @return boolean
- */
-
- function users_adhoc($sProcessUID = '', $sTaskUID = '') {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($sProcessUID);
- $oTask = new Task ( );
- $aFields = $oTask->load($sTaskUID);
-
- $_SESSION ['iType'] = 2;
-
- $aFields ['TASK'] = $sTaskUID;
- $aFields ['TYPE'] = $_SESSION ['iType'];
- $aFields ['OF_TO_ASSIGN'] = G::LoadTranslation('ID_DE_ASSIGN');
- $aFields ['CONFIRM'] = G::LoadTranslation('ID_MSG_CONFIRM_DEASIGN_USER_GROUP_MESSAGE');
- $aFields ['UIDS'] = "'0'";
-
- $oTasks = new Tasks ( );
- $oGroups = new Groups ( );
- $aAux1 = $oTasks->getGroupsOfTask($sTaskUID, $_SESSION ['iType']);
- foreach ($aAux1 as $aGroup) {
- $aAux2 = $oGroups->getUsersOfGroup($aGroup ['GRP_UID']);
- foreach ($aAux2 as $aUser) {
- $aFields ['UIDS'] .= ",'" . $aUser ['USR_UID'] . "'";
- }
- }
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $oTask = new Task ( );
- $aTask = $oTask->load($sTaskUID);
-
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'users/users_ShortListAdhoc', $this->getTaskUsersCriteria($sTaskUID, $_SESSION ['iType']), $aFields);
-
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Return the tasks users list criteria object
- * @param string $sTaskUID
- * @param integer $iType
- * @return array
- */
-
- function getTaskUsersCriteria($sTaskUID = '', $iType = 1) {
- try {
- $aUsers = array();
- $aUsers [] = array('LABEL' => 'char', 'TAS_UID' => 'char', 'USR_UID' => 'char', 'TU_TYPE' => 'integer', 'TU_RELATION' => 'integer');
- $sDelimiter = DBAdapter::getStringDelimiter ();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addAsColumn('GRP_TITLE', 'C.CON_VALUE');
- $oCriteria->addSelectColumn(TaskUserPeer::TAS_UID);
- $oCriteria->addSelectColumn(TaskUserPeer::USR_UID);
- $oCriteria->addSelectColumn(TaskUserPeer::TU_TYPE);
- $oCriteria->addSelectColumn(TaskUserPeer::TU_RELATION);
- $oCriteria->addAlias('C', 'CONTENT');
- $aConditions = array();
- $aConditions [] = array(TaskUserPeer::USR_UID, 'C.CON_ID');
- $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter);
- $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(TaskUserPeer::TAS_UID, $sTaskUID);
- $oCriteria->add(TaskUserPeer::TU_TYPE, $iType);
- $oCriteria->add(TaskUserPeer::TU_RELATION, 2);
- $oDataset = TaskUserPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- $c = 0;
- while ($aRow = $oDataset->getRow()) {
- $c++;
- $oGroup = new Groupwf ( );
- $aFields = $oGroup->load($aRow ['USR_UID']);
- if ($aFields ['GRP_STATUS'] == 'ACTIVE') {
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER');
- $oCriteria->add(GroupUserPeer::GRP_UID, $aRow ['USR_UID']);
- $oDataset2 = GroupUserPeer::doSelectRS($oCriteria);
- $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset2->next();
- $aRow2 = $oDataset2->getRow();
- } else {
- $aRow2 ['GROUP_INACTIVE'] = '(' . G::LoadTranslation('ID_GROUP_INACTIVE') . ')';
- }
- $aUsers [] = array('LABEL' => (!isset($aRow2 ['GROUP_INACTIVE']) ? $aRow ['GRP_TITLE'] . ' (' . $aRow2 ['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2 ['MEMBERS_NUMBER'] == 1 ? G::LoadTranslation('ID_USER') : G::LoadTranslation('ID_USERS')) . ')
' : $aRow ['GRP_TITLE'] . ' ' . $aRow2 ['GROUP_INACTIVE']), 'TAS_UID' => $aRow ['TAS_UID'], 'USR_UID' => $aRow ['USR_UID'], 'TU_TYPE' => $aRow ['TU_TYPE'], 'TU_RELATION' => $aRow ['TU_RELATION']);
- $oDataset->next();
- }
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
- $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
- $oCriteria->addSelectColumn(TaskUserPeer::TAS_UID);
- $oCriteria->addSelectColumn(TaskUserPeer::USR_UID);
- $oCriteria->addSelectColumn(TaskUserPeer::TU_TYPE);
- $oCriteria->addSelectColumn(TaskUserPeer::TU_RELATION);
- $oCriteria->addJoin(TaskUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
- $oCriteria->add(TaskUserPeer::TAS_UID, $sTaskUID);
- $oCriteria->add(TaskUserPeer::TU_TYPE, $iType);
- $oCriteria->add(TaskUserPeer::TU_RELATION, 1);
- $oDataset = TaskUserPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
- $aUsers [] = array('LABEL' => $aRow ['USR_FIRSTNAME'] . ' ' . $aRow ['USR_LASTNAME'], 'TAS_UID' => $aRow ['TAS_UID'], 'USR_UID' => $aRow ['USR_UID'], 'TU_TYPE' => $aRow ['TU_TYPE'], 'TU_RELATION' => $aRow ['TU_RELATION']);
- $oDataset->next();
- }
- global $_DBArray;
- $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
- $_DBArray ['taskUsers'] = $aUsers;
- $_SESSION ['_DBArray'] = $_DBArray;
- G::LoadClass('ArrayPeer');
- $oCriteria = new Criteria('dbarray');
- $oCriteria->setDBArrayTable('taskUsers');
- $oCriteria->addDescendingOrderByColumn(TaskUserPeer::TU_RELATION);
- $oCriteria->addAscendingOrderByColumn('LABEL');
- return $oCriteria;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Return the available users and users groups list criteria object
- * @param string $sTaskUID
- * @param integer $iType
- * @return object
- */
-
- function getAvailableUsersCriteria($sTaskUID = '', $iType = 1) {
- try {
- $oTasks = new Tasks ( );
- $aAux = $oTasks->getGroupsOfTask($sTaskUID, $iType);
- $aUIDS1 = array();
- $aUIDS2 = array();
- foreach ($aAux as $aGroup) {
- $aUIDS1 [] = $aGroup ['GRP_UID'];
- }
- $aAux = $oTasks->getUsersOfTask($sTaskUID, $iType);
- foreach ($aAux as $aUser) {
- $aUIDS2 [] = $aUser ['USR_UID'];
- }
- $aUsers = array();
- $aUsers [] = array('LABEL' => 'char', 'TAS_UID' => 'char', 'USR_UID' => 'char', 'TU_TYPE' => 'integer', 'TU_RELATION' => 'integer');
- $sDelimiter = DBAdapter::getStringDelimiter ();
- $groups = new Groupwf();
- $start = '';
- $limit = '';
- $filter = '';
- $result = $groups->getAllGroup($start,$limit,$filter);
- $c = 0;
- foreach ($result['rows'] as $results) {
- $c++;
+ /*
+ * Return the step triggers list criteria object
+ * @param string $sStepUID
+ * @param string $sTaskUID
+ * @param string $sType
+ * @return object
+ */
+ public function getStepTriggersCriteria($sStepUID = '', $sTaskUID = '', $sType = '')
+ {
+ $sDelimiter = DBAdapter::getStringDelimiter ();
$oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER');
- $oCriteria->add(GroupUserPeer::GRP_UID, $results ['GRP_UID']);
- $oDataset2 = GroupUserPeer::doSelectRS($oCriteria);
- $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset2->next();
- $aRow2 = $oDataset2->getRow();
- $aUsers [] = array ('LABEL' => $results ['GRP_TITLE'] .' (' . $aRow2 ['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2 ['MEMBERS_NUMBER'] == 1 ? G::LoadTranslation('ID_USER') : G::LoadTranslation('ID_USERS')) . ')
', 'TAS_UID' => $sTaskUID, 'USR_UID' => $results ['GRP_UID'], 'TU_TYPE' => $iType, 'TU_RELATION' => 2);
- }
- $sDelimiter = DBAdapter::getStringDelimiter ();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(UsersPeer::USR_UID);
- $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
- $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
- $oCriteria->add(UsersPeer::USR_STATUS, 'ACTIVE');
- $oCriteria->add(UsersPeer::USR_UID, $aUIDS2, Criteria::NOT_IN);
- $oDataset = UsersPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
- $aUsers [] = array('LABEL' => $aRow ['USR_FIRSTNAME'] . ' ' . $aRow ['USR_LASTNAME'], 'TAS_UID' => $sTaskUID, 'USR_UID' => $aRow ['USR_UID'], 'TU_TYPE' => $iType, 'TU_RELATION' => 1);
- $oDataset->next();
- }
- global $_DBArray;
- $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
- $_DBArray ['availableUsers'] = $aUsers;
- $_SESSION ['_DBArray'] = $_DBArray;
- G::LoadClass('ArrayPeer');
- $oCriteria = new Criteria('dbarray');
- $oCriteria->setDBArrayTable('availableUsers');
- $oCriteria->addDescendingOrderByColumn(TaskUserPeer::TU_RELATION);
- $oCriteria->addAscendingOrderByColumn('LABEL');
- return $oCriteria;
- } catch (Exception $oError) {
- throw ($oError);
+ $oCriteria->addSelectColumn('C.CON_VALUE');
+ $oCriteria->addSelectColumn('STEP_UID');
+ $oCriteria->addSelectColumn('TRI_UID');
+ $oCriteria->addSelectColumn('ST_TYPE');
+ $oCriteria->addSelectColumn(StepTriggerPeer::ST_POSITION);
+ $oCriteria->addAsColumn('TRI_TITLE', 'C.CON_VALUE');
+ $oCriteria->addAlias('C', 'CONTENT');
+ $aConditions = array();
+ $aConditions [] = array(StepTriggerPeer::TRI_UID, 'C.CON_ID');
+ $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'TRI_TITLE' . $sDelimiter);
+ $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(StepTriggerPeer::STEP_UID, $sStepUID);
+ $oCriteria->add(StepTriggerPeer::TAS_UID, $sTaskUID);
+ $oCriteria->add(StepTriggerPeer::ST_TYPE, $sType);
+ $oCriteria->addAscendingOrderByColumn(StepTriggerPeer::ST_POSITION);
+ return $oCriteria;
}
- }
- /*
- * Conditions of the steps
- * @param string $sProcessUID
- * @param string $sTaskUID
- * @return boolean
- */
-
- function stepsConditions($sProcessUID = '', $sTaskUID = '') {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($sProcessUID);
- $oTask = new Task ( );
- $aFields = $oTask->load($sTaskUID);
-
- $aFields ['PROCESS'] = $sProcessUID;
- $aFields ['TASK'] = $sTaskUID;
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'steps/conditions_List', $this->getStepsCriteria($sTaskUID), $aFields);
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Triggers of the steps
- * @param string $sProcessUID
- * @param string $sTaskUID
- * @return boolean
- */
-
- function stepsTriggers($sProcessUID = '', $sTaskUID = '') {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($sProcessUID);
- $oTask = new Task ( );
- $aFields = $oTask->load($sTaskUID);
-
- $_SESSION ['PROCESS'] = $sProcessUID;
- $_SESSION ['TASK'] = $sTaskUID;
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('view', 'steps/triggers_Tree');
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Add a new task
- * @param string $sProcessUID
- * @param integer $iX
- * @param integer $iY
- * @return string
- */
-
- function addTask($sProcessUID = '', $iX = 0, $iY = 0, $iWidth = 165, $iHeight = 40) {
- try {
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn('TAS_UID');
- $oCriteria->add(TaskPeer::PRO_UID, $sProcessUID);
- $oDataset = TaskPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
-
- $aTasks = array();
- $iTaskNumber = 0;
-
- while ($oDataset->next()) {
- $aRow = $oDataset->getRow();
-
- $aTasks[] = $aRow ["TAS_UID"];
- $iTaskNumber = $iTaskNumber + 1;
- }
-
- if ($iTaskNumber > 0) {
- $criteria = new Criteria("workflow");
-
- $criteria->addSelectColumn(ContentPeer::CON_LANG);
- $criteria->addSelectColumn(ContentPeer::CON_VALUE);
- $criteria->add(ContentPeer::CON_ID, $aTasks, Criteria::IN);
- $criteria->add(ContentPeer::CON_CATEGORY, "TAS_TITLE");
-
- $rsSQLCON = ContentPeer::doSelectRS($criteria);
- $rsSQLCON->setFetchmode(ResultSet::FETCHMODE_ASSOC);
-
- $numMaxLang = 0;
- $numMax = 0;
-
- while ($rsSQLCON->next()) {
- $row = $rsSQLCON->getRow();
-
- $conLang = $row["CON_LANG"];
- $conValue = $row["CON_VALUE"];
-
- if (preg_match("/^\S+\s(\d+)$/", $conValue, $matches)) {
- $n = intval($matches[1]);
-
- if ($conLang == SYS_LANG) {
- if ($n > $numMaxLang) {
- $numMaxLang = $n;
- }
+ /*
+ * Return the available building blocks list criteria object
+ * @param string $sProcessUID
+ * @param string $sTaskUID
+ * @return object
+ */
+ public function getAvailableBBCriteria($sProcessUID = '', $sTaskUID = '')
+ {
+ try {
+ $oTasks = new Tasks ( );
+ $aSteps = $oTasks->getStepsOfTask($sTaskUID);
+ $sUIDs = array();
+ foreach ($aSteps as $aStep) {
+ $sUIDs [] = $aStep ['STEP_UID_OBJ'];
}
- else {
- if ($n > $numMax) {
- $numMax = $n;
- }
+ $aBB = array();
+ $aBB [] = array('STEP_UID' => 'char', 'STEP_TITLE' => 'char', 'STEP_TYPE_OBJ' => 'char', 'STEP_MODE' => 'char');
+ $sDelimiter = DBAdapter::getStringDelimiter ();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(DynaformPeer::DYN_UID);
+ $oCriteria->addAsColumn('DYN_TITLE', 'C.CON_VALUE');
+ $oCriteria->addAlias('C', 'CONTENT');
+ $aConditions = array();
+ $aConditions [] = array(DynaformPeer::DYN_UID, 'C.CON_ID');
+ $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'DYN_TITLE' . $sDelimiter);
+ $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(DynaformPeer::PRO_UID, $sProcessUID);
+ $oCriteria->add(DynaformPeer::DYN_UID, $sUIDs, Criteria::NOT_IN);
+ $oCriteria->add(DynaformPeer::DYN_TYPE, 'xmlform');
+ $oDataset = DynaformPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ $i = 0;
+ while ($aRow = $oDataset->getRow()) {
+ $i++;
+ if (($aRow ['DYN_TITLE'] == NULL) || ($aRow ['DYN_TITLE'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
+ $aRow ['DYN_TITLE'] = Content::Load("DYN_TITLE", "", $aRow ['DYN_UID'], SYS_LANG);
+ }
+ $aBB [] = array('STEP_UID' => $aRow ['DYN_UID'], 'STEP_TITLE' => $aRow ['DYN_TITLE'], 'STEP_TYPE_OBJ' => 'DYNAFORM', 'STEP_MODE' => '');
+ $oDataset->next();
}
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(InputDocumentPeer::INP_DOC_UID);
+ $oCriteria->addAsColumn('INP_DOC_TITLE', 'C.CON_VALUE');
+ $oCriteria->addAlias('C', 'CONTENT');
+ $aConditions = array();
+ $aConditions [] = array(InputDocumentPeer::INP_DOC_UID, 'C.CON_ID');
+ $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter);
+ $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(InputDocumentPeer::PRO_UID, $sProcessUID);
+ $oCriteria->add(InputDocumentPeer::INP_DOC_UID, $sUIDs, Criteria::NOT_IN);
+ $oDataset = InputDocumentPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ if (($aRow ['INP_DOC_TITLE'] == NULL) || ($aRow ['INP_DOC_TITLE'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
+ $aRow ['INP_DOC_TITLE'] = Content::Load("INP_DOC_TITLE", "", $aRow ['INP_DOC_UID'], SYS_LANG);
+ }
+ $aBB [] = array('STEP_UID' => $aRow ['INP_DOC_UID'], 'STEP_TITLE' => $aRow ['INP_DOC_TITLE'], 'STEP_TYPE_OBJ' => 'INPUT_DOCUMENT', 'STEP_MODE' => '');
+ $oDataset->next();
+ }
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_UID);
+ $oCriteria->addAsColumn('OUT_DOC_TITLE', 'C.CON_VALUE');
+ $oCriteria->addAlias('C', 'CONTENT');
+ $aConditions = array();
+ $aConditions [] = array(OutputDocumentPeer::OUT_DOC_UID, 'C.CON_ID');
+ $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'OUT_DOC_TITLE' . $sDelimiter);
+ $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(OutputDocumentPeer::PRO_UID, $sProcessUID);
+ $oCriteria->add(OutputDocumentPeer::OUT_DOC_UID, $sUIDs, Criteria::NOT_IN);
+ $oDataset = OutputDocumentPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ if (($aRow ['OUT_DOC_TITLE'] == NULL) || ($aRow ['OUT_DOC_TITLE'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
+ $aRow ['OUT_DOC_TITLE'] = Content::Load("OUT_DOC_TITLE", "", $aRow ['OUT_DOC_UID'], SYS_LANG);
+ }
+ $aBB [] = array('STEP_UID' => $aRow ['OUT_DOC_UID'], 'STEP_TITLE' => $aRow ['OUT_DOC_TITLE'], 'STEP_TYPE_OBJ' => 'OUTPUT_DOCUMENT', 'STEP_MODE' => '');
+ $oDataset->next();
+ }
+
+ //call plugin
+ $oPluginRegistry = &PMPluginRegistry::getSingleton ();
+ $externalSteps = $oPluginRegistry->getSteps();
+ if (is_array($externalSteps) && count($externalSteps) > 0) {
+ foreach ($externalSteps as $key => $stepVar) {
+ $aBB [] = array('STEP_UID' => $stepVar->sStepId, 'STEP_TITLE' => $stepVar->sStepTitle, 'STEP_TYPE_OBJ' => 'EXTERNAL', 'STEP_MODE' => '');
+ }
+ }
+ global $_DBArray;
+ $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
+ $_DBArray ['availableBB'] = $aBB;
+ $_SESSION ['_DBArray'] = $_DBArray;
+ G::LoadClass('ArrayPeer');
+ $oCriteria = new Criteria('dbarray');
+ $oCriteria->setDBArrayTable('availableBB');
+ $oCriteria->addAscendingOrderByColumn('STEP_TYPE_OBJ');
+ $oCriteria->addAscendingOrderByColumn('STEP_TITLE');
+ return $oCriteria;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Users assigned to Tasks
+ * @param string $sProcessUID
+ * @param string $sTaskUID
+ * @return boolean
+ */
+ public function users($sProcessUID = '', $sTaskUID = '')
+ {
+ try {
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($sProcessUID);
+ $oTask = new Task ( );
+ $aFields = $oTask->load($sTaskUID);
+
+ $_SESSION ['iType'] = 1;
+
+ $aFields ['TASK'] = $sTaskUID;
+ $aFields ['TYPE'] = $_SESSION ['iType'];
+ $aFields ['OF_TO_ASSIGN'] = G::LoadTranslation('ID_DE_ASSIGN');
+ $aFields ['CONFIRM'] = G::LoadTranslation('ID_MSG_CONFIRM_DEASIGN_USER_GROUP_MESSAGE');
+ $aFields ['UIDS'] = "'0'";
+
+ $oTasks = new Tasks ( );
+ $oGroups = new Groups ( );
+ $aAux1 = $oTasks->getGroupsOfTask($sTaskUID, $_SESSION ['iType']);
+ foreach ($aAux1 as $aGroup) {
+ $aAux2 = $oGroups->getUsersOfGroup($aGroup ['GRP_UID']);
+ foreach ($aAux2 as $aUser) {
+ $aFields ['UIDS'] .= ",'" . $aUser ['USR_UID'] . "'";
}
}
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $oTask = new Task ( );
+ $aTask = $oTask->load($sTaskUID);
- if ($numMaxLang > 0) {
- $numMax = $numMaxLang;
+ if ($aFields ['TAS_TYPE'] == 'TRUE') {
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'users/users_ShortList', $this->getTaskUsersCriteria($sTaskUID, $_SESSION ['iType']), $aFields);
+ } else {
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'users/users_ShortList2', $this->getTaskUsersCriteria($sTaskUID, $_SESSION ['iType']), $aFields);
}
- if ($numMax > 0 && $numMax > $iTaskNumber) {
- $iTaskNumber = $numMax + 1;
- }
- else {
- $iTaskNumber = $iTaskNumber + 1;
- }
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
}
- else {
- $iTaskNumber = 1;
- }
-
- $oTask = new Task();
- $oNewTask->label = G::LoadTranslation('ID_TASK') . ' ' . $iTaskNumber;
- $oNewTask->uid = $oTask->create(array('PRO_UID' => $sProcessUID, 'TAS_TITLE' => $oNewTask->label, 'TAS_POSX' => $iX, 'TAS_POSY' => $iY, 'TAS_WIDTH' => $iWidth, 'TAS_HEIGHT' => $iHeight));
- $oNewTask->statusIcons = array();
- $oNewTask->statusIcons[] = array('label' => '', 'icon' => '/images/alert.gif', 'message' => '', 'url' => '');
- $oJSON = new Services_JSON();
-
- return $oJSON->encode($oNewTask);
}
- catch (Exception $oError) {
- throw ($oError);
- }
- }
- /*
- * Edit the task properties
- * @param string $sTaskUID
- * @return boolean
- */
+ /*
+ * Users Adhoc assigned to Tasks
+ * @param string $sProcessUID
+ * @param string $sTaskUID
+ * @return boolean
+ */
+ public function users_adhoc($sProcessUID = '', $sTaskUID = '')
+ {
+ try {
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($sProcessUID);
+ $oTask = new Task ( );
+ $aFields = $oTask->load($sTaskUID);
- function editTaskProperties($sTaskUID = '', $iForm = 1, $iIndex = 0) {
- $sw_template=false;
- try {
- switch ($iForm) {
- case 1 :
- $sFilename = 'tasks/tasks_Definition.xml';
- break;
- case 2 :
- $sFilename = 'tasks/tasks_AssignmentRules.xml';
- break;
- case 3 :
- $sFilename = 'tasks/tasks_TimingControl.xml';
- break;
- case 4 :
- $sFilename = 'tasks/tasks_Owner.xml';
- break;
- case 5 :
- $sFilename = 'tasks/tasks_Permissions.xml';
- break;
- case 6 :
- $sFilename = 'tasks/tasks_Labels.xml';
- break;
- case 7 :
- $sFilename = 'tasks/tasks_Notifications.xml';
- break;
- default:
- //if the $iForm is not one of the defaults then search under Plugins for an extended property. By JHL Jan 18, 2011
- $oPluginRegistry =& PMPluginRegistry::getSingleton();
- $activePluginsForTaskProperties=$oPluginRegistry->getTaskExtendedProperties();
- $oPM->taskOptions = array();
- foreach($activePluginsForTaskProperties as $key => $taskPropertiesInfo){
- $id=$taskPropertiesInfo->sNamespace."--".$taskPropertiesInfo->sName;
- if($id==$iForm){
- $sFilename=$taskPropertiesInfo->sPage;
- $sw_template=true;
- }
- }
+ $_SESSION ['iType'] = 2;
- //$sFilename = 'tasks/tasks_Owner.xml';
- break;
- }
- $oTask = new Task ( );
- $aFields = $oTask->load($sTaskUID);
- $aFields ['INDEX'] = $iIndex;
- $aFields ['IFORM'] = $iForm;
- $aFields ['LANG'] = SYS_LANG;
+ $aFields ['TASK'] = $sTaskUID;
+ $aFields ['TYPE'] = $_SESSION ['iType'];
+ $aFields ['OF_TO_ASSIGN'] = G::LoadTranslation('ID_DE_ASSIGN');
+ $aFields ['CONFIRM'] = G::LoadTranslation('ID_MSG_CONFIRM_DEASIGN_USER_GROUP_MESSAGE');
+ $aFields ['UIDS'] = "'0'";
- /** Task Notifications **/
- if($iForm == 7 || $iForm == 1 ) {
- G::loadClass('processes');
- $files = Processes::getProcessFiles($aFields['PRO_UID'], 'mail');
-
- $templates = array();
- $templates[] = 'dummy';
-
- foreach ($files as $file) {
- $templates[] = array('FILE' => $file['filename'], 'NAME' => $file['filename']);
- }
-
- global $_DBArray;
- $_DBArray['_TEMPLATES1'] = $templates;
- $_SESSION['_DBArray'] = $_DBArray;
-
- if ($iForm == 7) {
- // Additional configuration
- G::loadClass('configuration');
- $oConf = new Configurations;
- $oConf->loadConfig($x, 'TAS_EXTRA_PROPERTIES', $aFields['TAS_UID'], '', '');
- $conf = $oConf->aConfig;
- if( isset($conf['TAS_DEF_MESSAGE_TYPE']) && isset($conf['TAS_DEF_MESSAGE_TYPE'])) {
- $aFields['TAS_DEF_MESSAGE_TYPE'] = $conf['TAS_DEF_MESSAGE_TYPE'];
- $aFields['TAS_DEF_MESSAGE_TEMPLATE'] = $conf['TAS_DEF_MESSAGE_TEMPLATE'];
- }
- }
- }
-
- if ($iForm == 3) { //Load Calendar Information
- $calendar = new Calendar ( );
- $calendarObj = $calendar->getCalendarList(true, true);
-
- global $_DBArray;
-
- $_DBArray ['availableCalendars'] = $calendarObj ['array'];
-
- $_SESSION ['_DBArray'] = $_DBArray;
-
- $calendarInfo = $calendar->getCalendarFor($sTaskUID, $sTaskUID, $sTaskUID);
-
- //If the function returns a DEFAULT calendar it means that this object doesn't have assigned any calendar
- $aFields ['TAS_CALENDAR'] = $calendarInfo ['CALENDAR_APPLIED'] != 'DEFAULT' ? $calendarInfo ['CALENDAR_UID'] : "";
- }
- global $G_PUBLISH;
- G::LoadClass('xmlfield_InputPM');
- $G_PUBLISH = new Publisher ( );
- if($sw_template){
- $G_PUBLISH->AddContent('view', $sFilename);
- }else{
- $G_PUBLISH->AddContent('xmlform', 'xmlform', $sFilename, '', $aFields);
- }
-
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Save the tasks positions
- * @param string $sTaskUID
- * @param integer $iX
- * @param integer $iY
- * @return integer
- */
-
- function saveTaskPosition($sTaskUID = '', $iX = 0, $iY = 0) {
- try {
- $oTask = new Task ( );
- $aFields = $oTask->load($sTaskUID);
-
- $aFields ['TAS_UID'] = $sTaskUID;
- $aFields ['TAS_POSX'] = $iX;
- $aFields ['TAS_POSY'] = $iY;
- return $oTask->update($aFields);
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Delete a task
- * @param string $sTaskUID
- * @return boolean
- */
-
- function deleteTask($sTaskUID = '') {
- try {
- $oTasks = new Tasks ( );
- $oTasks->deleteTask($sTaskUID);
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Delete a gateway
- * @param string $sProcessUID
- * @param string $sGatewayUID
- * @return boolean
- */
-
- function deleteGateway($sProcessUID = '', $sGatewayUID = '') {
- try {
- //First get all routes information related to $sGatewayUID
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn('ROU_UID');
- $oCriteria->add(RoutePeer::PRO_UID, $sProcessUID);
- $oCriteria->add(RoutePeer::GAT_UID, $sGatewayUID);
- $oDataset = RoutePeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while($aRow = $oDataset->getRow()){
- $aRoutes [] = $aRow ['ROU_UID'];
- $oDataset->next();
- }
-
- $oGateway = new Gateway ( );
- if($oGateway->gatewayExists($sGatewayUID))
- {
$oTasks = new Tasks ( );
- $res = $oGateway->remove($sGatewayUID);
- if($res){
- $oRoute = new Route( );
- foreach($aRoutes as $sRouteId){
- $oRoute->remove($sRouteId);
- }
+ $oGroups = new Groups ( );
+ $aAux1 = $oTasks->getGroupsOfTask($sTaskUID, $_SESSION ['iType']);
+ foreach ($aAux1 as $aGroup) {
+ $aAux2 = $oGroups->getUsersOfGroup($aGroup ['GRP_UID']);
+ foreach ($aAux2 as $aUser) {
+ $aFields ['UIDS'] .= ",'" . $aUser ['USR_UID'] . "'";
+ }
}
- }
- return;
- } catch (Exception $oError) {
- throw ($oError);
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $oTask = new Task ( );
+ $aTask = $oTask->load($sTaskUID);
+
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'users/users_ShortListAdhoc', $this->getTaskUsersCriteria($sTaskUID, $_SESSION ['iType']), $aFields);
+
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
}
- }
- /*
- * Add a gateway
- * @param string $sProcessUID
- * @param string $sGatewayUID
- * @return boolean
- */
+ /*
+ * Return the tasks users list criteria object
+ * @param string $sTaskUID
+ * @param integer $iType
+ * @return array
+ */
+ public function getTaskUsersCriteria($sTaskUID = '', $iType = 1)
+ {
+ try {
+ $aUsers = array();
+ $aUsers [] = array('LABEL' => 'char', 'TAS_UID' => 'char', 'USR_UID' => 'char', 'TU_TYPE' => 'integer', 'TU_RELATION' => 'integer');
+ $sDelimiter = DBAdapter::getStringDelimiter ();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addAsColumn('GRP_TITLE', 'C.CON_VALUE');
+ $oCriteria->addSelectColumn(TaskUserPeer::TAS_UID);
+ $oCriteria->addSelectColumn(TaskUserPeer::USR_UID);
+ $oCriteria->addSelectColumn(TaskUserPeer::TU_TYPE);
+ $oCriteria->addSelectColumn(TaskUserPeer::TU_RELATION);
+ $oCriteria->addAlias('C', 'CONTENT');
+ $aConditions = array();
+ $aConditions [] = array(TaskUserPeer::USR_UID, 'C.CON_ID');
+ $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter);
+ $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(TaskUserPeer::TAS_UID, $sTaskUID);
+ $oCriteria->add(TaskUserPeer::TU_TYPE, $iType);
+ $oCriteria->add(TaskUserPeer::TU_RELATION, 2);
+ $oDataset = TaskUserPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ $c = 0;
+ while ($aRow = $oDataset->getRow()) {
+ $c++;
+ $oGroup = new Groupwf ( );
+ $aFields = $oGroup->load($aRow ['USR_UID']);
+ if ($aFields ['GRP_STATUS'] == 'ACTIVE') {
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER');
+ $oCriteria->add(GroupUserPeer::GRP_UID, $aRow ['USR_UID']);
+ $oDataset2 = GroupUserPeer::doSelectRS($oCriteria);
+ $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset2->next();
+ $aRow2 = $oDataset2->getRow();
+ } else {
+ $aRow2 ['GROUP_INACTIVE'] = '(' . G::LoadTranslation('ID_GROUP_INACTIVE') . ')';
+ }
+ $aUsers [] = array('LABEL' => (!isset($aRow2 ['GROUP_INACTIVE']) ? $aRow ['GRP_TITLE'] . ' (' . $aRow2 ['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2 ['MEMBERS_NUMBER'] == 1 ? G::LoadTranslation('ID_USER') : G::LoadTranslation('ID_USERS')) . ')
' : $aRow ['GRP_TITLE'] . ' ' . $aRow2 ['GROUP_INACTIVE']), 'TAS_UID' => $aRow ['TAS_UID'], 'USR_UID' => $aRow ['USR_UID'], 'TU_TYPE' => $aRow ['TU_TYPE'], 'TU_RELATION' => $aRow ['TU_RELATION']);
+ $oDataset->next();
+ }
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
+ $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
+ $oCriteria->addSelectColumn(TaskUserPeer::TAS_UID);
+ $oCriteria->addSelectColumn(TaskUserPeer::USR_UID);
+ $oCriteria->addSelectColumn(TaskUserPeer::TU_TYPE);
+ $oCriteria->addSelectColumn(TaskUserPeer::TU_RELATION);
+ $oCriteria->addJoin(TaskUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
+ $oCriteria->add(TaskUserPeer::TAS_UID, $sTaskUID);
+ $oCriteria->add(TaskUserPeer::TU_TYPE, $iType);
+ $oCriteria->add(TaskUserPeer::TU_RELATION, 1);
+ $oDataset = TaskUserPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ $aUsers [] = array('LABEL' => $aRow ['USR_FIRSTNAME'] . ' ' . $aRow ['USR_LASTNAME'], 'TAS_UID' => $aRow ['TAS_UID'], 'USR_UID' => $aRow ['USR_UID'], 'TU_TYPE' => $aRow ['TU_TYPE'], 'TU_RELATION' => $aRow ['TU_RELATION']);
+ $oDataset->next();
+ }
+ global $_DBArray;
+ $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
+ $_DBArray ['taskUsers'] = $aUsers;
+ $_SESSION ['_DBArray'] = $_DBArray;
+ G::LoadClass('ArrayPeer');
+ $oCriteria = new Criteria('dbarray');
+ $oCriteria->setDBArrayTable('taskUsers');
+ $oCriteria->addDescendingOrderByColumn(TaskUserPeer::TU_RELATION);
+ $oCriteria->addAscendingOrderByColumn('LABEL');
+ return $oCriteria;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
- function addGateway($oData) {
- try {
- $oGateway = new Gateway ( );
- $aData = array();
- $aData['PRO_UID'] = $oData->pro_uid;
- $aData['GAT_X'] = $oData->position->x;
- $aData['GAT_Y'] = $oData->position->y;
- $aData['GAT_TYPE'] = $oData->gat_type;
- $sGat_uid = $oData->gat_uid;
- $oGatewayData = GatewayPeer::retrieveByPK($sGat_uid);
- if (is_null($oGatewayData)) {
- $sGat_uid = $oGateway->create($aData);
- }else{
- $aData['GAT_UID'] = $sGat_uid;
- if (isset($oData->tas_from))
- $aData['TAS_UID'] = $oData->tas_from;
- if (isset($oData->tas_to))
- $aData['GAT_NEXT_TASK'] = $oData->tas_to;
- $oGateway->update($aData);
- }
- $oEncode->uid = $sGat_uid;
+ /*
+ * Return the available users and users groups list criteria object
+ * @param string $sTaskUID
+ * @param integer $iType
+ * @return object
+ */
+ public function getAvailableUsersCriteria($sTaskUID = '', $iType = 1)
+ {
+ try {
+ $oTasks = new Tasks ( );
+ $aAux = $oTasks->getGroupsOfTask($sTaskUID, $iType);
+ $aUIDS1 = array();
+ $aUIDS2 = array();
+ foreach ($aAux as $aGroup) {
+ $aUIDS1 [] = $aGroup ['GRP_UID'];
+ }
+ $aAux = $oTasks->getUsersOfTask($sTaskUID, $iType);
+ foreach ($aAux as $aUser) {
+ $aUIDS2 [] = $aUser ['USR_UID'];
+ }
+ $aUsers = array();
+ $aUsers [] = array('LABEL' => 'char', 'TAS_UID' => 'char', 'USR_UID' => 'char', 'TU_TYPE' => 'integer', 'TU_RELATION' => 'integer');
+ $sDelimiter = DBAdapter::getStringDelimiter ();
+ $groups = new Groupwf();
+ $start = '';
+ $limit = '';
+ $filter = '';
+ $result = $groups->getAllGroup($start,$limit,$filter);
+ $c = 0;
+ foreach ($result['rows'] as $results) {
+ $c++;
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER');
+ $oCriteria->add(GroupUserPeer::GRP_UID, $results ['GRP_UID']);
+ $oDataset2 = GroupUserPeer::doSelectRS($oCriteria);
+ $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset2->next();
+ $aRow2 = $oDataset2->getRow();
+ $aUsers [] = array ('LABEL' => $results ['GRP_TITLE'] .' (' . $aRow2 ['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2 ['MEMBERS_NUMBER'] == 1 ? G::LoadTranslation('ID_USER') : G::LoadTranslation('ID_USERS')) . ')
', 'TAS_UID' => $sTaskUID, 'USR_UID' => $results ['GRP_UID'], 'TU_TYPE' => $iType, 'TU_RELATION' => 2);
+ }
+ $sDelimiter = DBAdapter::getStringDelimiter ();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(UsersPeer::USR_UID);
+ $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
+ $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
+ $oCriteria->add(UsersPeer::USR_STATUS, 'ACTIVE');
+ $oCriteria->add(UsersPeer::USR_UID, $aUIDS2, Criteria::NOT_IN);
+ $oDataset = UsersPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ $aUsers [] = array('LABEL' => $aRow ['USR_FIRSTNAME'] . ' ' . $aRow ['USR_LASTNAME'], 'TAS_UID' => $sTaskUID, 'USR_UID' => $aRow ['USR_UID'], 'TU_TYPE' => $iType, 'TU_RELATION' => 1);
+ $oDataset->next();
+ }
+ global $_DBArray;
+ $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
+ $_DBArray ['availableUsers'] = $aUsers;
+ $_SESSION ['_DBArray'] = $_DBArray;
+ G::LoadClass('ArrayPeer');
+ $oCriteria = new Criteria('dbarray');
+ $oCriteria->setDBArrayTable('availableUsers');
+ $oCriteria->addDescendingOrderByColumn(TaskUserPeer::TU_RELATION);
+ $oCriteria->addAscendingOrderByColumn('LABEL');
+ return $oCriteria;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Conditions of the steps
+ * @param string $sProcessUID
+ * @param string $sTaskUID
+ * @return boolean
+ */
+
+ public function stepsConditions($sProcessUID = '', $sTaskUID = '')
+ {
+ try {
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($sProcessUID);
+ $oTask = new Task ( );
+ $aFields = $oTask->load($sTaskUID);
+
+ $aFields ['PROCESS'] = $sProcessUID;
+ $aFields ['TASK'] = $sTaskUID;
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'steps/conditions_List', $this->getStepsCriteria($sTaskUID), $aFields);
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Triggers of the steps
+ * @param string $sProcessUID
+ * @param string $sTaskUID
+ * @return boolean
+ */
+ public function stepsTriggers($sProcessUID = '', $sTaskUID = '')
+ {
+ try {
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($sProcessUID);
+ $oTask = new Task ( );
+ $aFields = $oTask->load($sTaskUID);
+
+ $_SESSION ['PROCESS'] = $sProcessUID;
+ $_SESSION ['TASK'] = $sTaskUID;
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $G_PUBLISH->AddContent('view', 'steps/triggers_Tree');
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Add a new task
+ * @param string $sProcessUID
+ * @param integer $iX
+ * @param integer $iY
+ * @return string
+ */
+ public function addTask($sProcessUID = '', $iX = 0, $iY = 0, $iWidth = 165, $iHeight = 40)
+ {
+ try {
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn('TAS_UID');
+ $oCriteria->add(TaskPeer::PRO_UID, $sProcessUID);
+ $oDataset = TaskPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+
+ $aTasks = array();
+ $iTaskNumber = 0;
+
+ while ($oDataset->next()) {
+ $aRow = $oDataset->getRow();
+ $aTasks[] = $aRow ["TAS_UID"];
+ $iTaskNumber = $iTaskNumber + 1;
+ }
+
+ if ($iTaskNumber > 0) {
+ $criteria = new Criteria("workflow");
+ $criteria->addSelectColumn(ContentPeer::CON_LANG);
+ $criteria->addSelectColumn(ContentPeer::CON_VALUE);
+ $criteria->add(ContentPeer::CON_ID, $aTasks, Criteria::IN);
+ $criteria->add(ContentPeer::CON_CATEGORY, "TAS_TITLE");
+
+ $rsSQLCON = ContentPeer::doSelectRS($criteria);
+ $rsSQLCON->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+
+ $numMaxLang = 0;
+ $numMax = 0;
+
+ while ($rsSQLCON->next()) {
+ $row = $rsSQLCON->getRow();
+
+ $conLang = $row["CON_LANG"];
+ $conValue = $row["CON_VALUE"];
+
+ if (preg_match("/^\S+\s(\d+)$/", $conValue, $matches)) {
+ $n = intval($matches[1]);
+
+ if ($conLang == SYS_LANG) {
+ if ($n > $numMaxLang) {
+ $numMaxLang = $n;
+ }
+ } else {
+ if ($n > $numMax) {
+ $numMax = $n;
+ }
+ }
+ }
+ }
+
+ if ($numMaxLang > 0) {
+ $numMax = $numMaxLang;
+ }
+
+ if ($numMax > 0 && $numMax > $iTaskNumber) {
+ $iTaskNumber = $numMax + 1;
+ } else {
+ $iTaskNumber = $iTaskNumber + 1;
+ }
+ } else {
+ $iTaskNumber = 1;
+ }
+
+ $oTask = new Task();
+ $oNewTask->label = G::LoadTranslation('ID_TASK') . ' ' . $iTaskNumber;
+ $oNewTask->uid = $oTask->create(array('PRO_UID' => $sProcessUID, 'TAS_TITLE' => $oNewTask->label, 'TAS_POSX' => $iX, 'TAS_POSY' => $iY, 'TAS_WIDTH' => $iWidth, 'TAS_HEIGHT' => $iHeight));
+ $oNewTask->statusIcons = array();
+ $oNewTask->statusIcons[] = array('label' => '', 'icon' => '/images/alert.gif', 'message' => '', 'url' => '');
+ $oJSON = new Services_JSON();
+
+ return $oJSON->encode($oNewTask);
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Edit the task properties
+ * @param string $sTaskUID
+ * @return boolean
+ */
+ public function editTaskProperties($sTaskUID = '', $iForm = 1, $iIndex = 0)
+ {
+ $sw_template=false;
+ try {
+ switch ($iForm) {
+ case 1 :
+ $sFilename = 'tasks/tasks_Definition.xml';
+ break;
+ case 2 :
+ $sFilename = 'tasks/tasks_AssignmentRules.xml';
+ break;
+ case 3 :
+ $sFilename = 'tasks/tasks_TimingControl.xml';
+ break;
+ case 4 :
+ $sFilename = 'tasks/tasks_Owner.xml';
+ break;
+ case 5 :
+ $sFilename = 'tasks/tasks_Permissions.xml';
+ break;
+ case 6 :
+ $sFilename = 'tasks/tasks_Labels.xml';
+ break;
+ case 7 :
+ $sFilename = 'tasks/tasks_Notifications.xml';
+ break;
+ default:
+ //if the $iForm is not one of the defaults then search under Plugins for an extended property. By JHL Jan 18, 2011
+ $oPluginRegistry =& PMPluginRegistry::getSingleton();
+ $activePluginsForTaskProperties=$oPluginRegistry->getTaskExtendedProperties();
+ $oPM->taskOptions = array();
+ foreach($activePluginsForTaskProperties as $key => $taskPropertiesInfo){
+ $id=$taskPropertiesInfo->sNamespace."--".$taskPropertiesInfo->sName;
+ if ($id==$iForm){
+ $sFilename=$taskPropertiesInfo->sPage;
+ $sw_template=true;
+ }
+ }
+
+ //$sFilename = 'tasks/tasks_Owner.xml';
+ break;
+ }
+ $oTask = new Task ( );
+ $aFields = $oTask->load($sTaskUID);
+ $aFields ['INDEX'] = $iIndex;
+ $aFields ['IFORM'] = $iForm;
+ $aFields ['LANG'] = SYS_LANG;
+
+ /** Task Notifications **/
+ if ($iForm == 7 || $iForm == 1 ) {
+ G::loadClass('processes');
+ $files = Processes::getProcessFiles($aFields['PRO_UID'], 'mail');
+
+ $templates = array();
+ $templates[] = 'dummy';
+
+ foreach ($files as $file) {
+ $templates[] = array('FILE' => $file['filename'], 'NAME' => $file['filename']);
+ }
+
+ global $_DBArray;
+ $_DBArray['_TEMPLATES1'] = $templates;
+ $_SESSION['_DBArray'] = $_DBArray;
+
+ if ($iForm == 7) {
+ // Additional configuration
+ G::loadClass('configuration');
+ $oConf = new Configurations;
+ $oConf->loadConfig($x, 'TAS_EXTRA_PROPERTIES', $aFields['TAS_UID'], '', '');
+ $conf = $oConf->aConfig;
+ if ( isset($conf['TAS_DEF_MESSAGE_TYPE']) && isset($conf['TAS_DEF_MESSAGE_TYPE'])) {
+ $aFields['TAS_DEF_MESSAGE_TYPE'] = $conf['TAS_DEF_MESSAGE_TYPE'];
+ $aFields['TAS_DEF_MESSAGE_TEMPLATE'] = $conf['TAS_DEF_MESSAGE_TEMPLATE'];
+ }
+ }
+ }
+
+ if ($iForm == 3) { //Load Calendar Information
+ $calendar = new Calendar ( );
+ $calendarObj = $calendar->getCalendarList(true, true);
+
+ global $_DBArray;
+
+ $_DBArray ['availableCalendars'] = $calendarObj ['array'];
+
+ $_SESSION ['_DBArray'] = $_DBArray;
+
+ $calendarInfo = $calendar->getCalendarFor($sTaskUID, $sTaskUID, $sTaskUID);
+
+ //If the function returns a DEFAULT calendar it means that this object doesn't have assigned any calendar
+ $aFields ['TAS_CALENDAR'] = $calendarInfo ['CALENDAR_APPLIED'] != 'DEFAULT' ? $calendarInfo ['CALENDAR_UID'] : "";
+ }
+ global $G_PUBLISH;
+ G::LoadClass('xmlfield_InputPM');
+ $G_PUBLISH = new Publisher ( );
+ if ($sw_template){
+ $G_PUBLISH->AddContent('view', $sFilename);
+ } else {
+ $G_PUBLISH->AddContent('xmlform', 'xmlform', $sFilename, '', $aFields);
+ }
+
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Save the tasks positions
+ * @param string $sTaskUID
+ * @param integer $iX
+ * @param integer $iY
+ * @return integer
+ */
+ public function saveTaskPosition($sTaskUID = '', $iX = 0, $iY = 0)
+ {
+ try {
+ $oTask = new Task ( );
+ $aFields = $oTask->load($sTaskUID);
+
+ $aFields ['TAS_UID'] = $sTaskUID;
+ $aFields ['TAS_POSX'] = $iX;
+ $aFields ['TAS_POSY'] = $iY;
+ return $oTask->update($aFields);
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Delete a task
+ * @param string $sTaskUID
+ * @return boolean
+ */
+ public function deleteTask($sTaskUID = '')
+ {
+ try {
+ $oTasks = new Tasks ( );
+ $oTasks->deleteTask($sTaskUID);
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Delete a gateway
+ * @param string $sProcessUID
+ * @param string $sGatewayUID
+ * @return boolean
+ */
+ public function deleteGateway($sProcessUID = '', $sGatewayUID = '')
+ {
+ try {
+ //First get all routes information related to $sGatewayUID
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn('ROU_UID');
+ $oCriteria->add(RoutePeer::PRO_UID, $sProcessUID);
+ $oCriteria->add(RoutePeer::GAT_UID, $sGatewayUID);
+ $oDataset = RoutePeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while($aRow = $oDataset->getRow()){
+ $aRoutes [] = $aRow ['ROU_UID'];
+ $oDataset->next();
+ }
+
+ $oGateway = new Gateway ( );
+ if ($oGateway->gatewayExists($sGatewayUID))
+ {
+ $oTasks = new Tasks ( );
+ $res = $oGateway->remove($sGatewayUID);
+ if ($res){
+ $oRoute = new Route( );
+ foreach($aRoutes as $sRouteId){
+ $oRoute->remove($sRouteId);
+ }
+ }
+ }
+ return;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Add a gateway
+ * @param string $sProcessUID
+ * @param string $sGatewayUID
+ * @return boolean
+ */
+ public function addGateway($oData)
+ {
+ try {
+ $oGateway = new Gateway ( );
+ $aData = array();
+ $aData['PRO_UID'] = $oData->pro_uid;
+ $aData['GAT_X'] = $oData->position->x;
+ $aData['GAT_Y'] = $oData->position->y;
+ $aData['GAT_TYPE'] = $oData->gat_type;
+ $sGat_uid = $oData->gat_uid;
+ $oGatewayData = GatewayPeer::retrieveByPK($sGat_uid);
+ if (is_null($oGatewayData)) {
+ $sGat_uid = $oGateway->create($aData);
+ } else {
+ $aData['GAT_UID'] = $sGat_uid;
+ if (isset($oData->tas_from)) {
+ $aData['TAS_UID'] = $oData->tas_from;
+ }
+ if (isset($oData->tas_to)) {
+ $aData['GAT_NEXT_TASK'] = $oData->tas_to;
+ }
+ $oGateway->update($aData);
+ }
+ $oEncode->uid = $sGat_uid;
+ $oJSON = new Services_JSON ( );
+ return $oJSON->encode($oEncode);
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Add a new guide
+ * @param string $sProcessUID
+ * @param integer $iPosition
+ * @param string $sDirection
+ * @return string
+ */
+ public function addGuide($sProcessUID = '', $iPosition = 0, $sDirection = 'vertical')
+ {
+ try {
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($sProcessUID);
+ $oSL = new SwimlanesElements ( );
+ switch ($sDirection) {
+ case 'vertical' :
+ $oNewGuide->uid = $oSL->create(array('PRO_UID' => $sProcessUID, 'SWI_TYPE' => 'LINE', 'SWI_X' => $iPosition, 'SWI_Y' => 0));
+ break;
+ case 'horizontal' :
+ $oNewGuide->uid = $oSL->create(array('PRO_UID' => $sProcessUID, 'SWI_TYPE' => 'LINE', 'SWI_X' => 0, 'SWI_Y' => $iPosition));
+ break;
+ }
+ $oJSON = new Services_JSON ( );
+ return $oJSON->encode($oNewGuide);
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Save the guide position
+ * @param string $sSEUID
+ * @param integer $iPosition
+ * @param string $sDirection
+ * @return integer
+ */
+ public function saveGuidePosition($sSEUID = '', $iPosition = 0, $sDirection = 'vertical')
+ {
+ try {
+ $oSL = new SwimlanesElements ( );
+ $aFields = $oSL->load($sSEUID);
+ switch ($sDirection) {
+ case 'vertical' :
+ return $oSL->update(array('SWI_UID' => $sSEUID, 'SWI_X' => $iPosition));
+ break;
+ case 'horizontal' :
+ return $oSL->update(array('SWI_UID' => $sSEUID, 'SWI_Y' => $iPosition));
+ break;
+ }
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Delete a guide
+ * @param string $sUID
+ * @return boolean
+ */
+ public function deleteGuide($sSEUID = '')
+ {
+ try {
+ $oSL = new SwimlanesElements ( );
+ $aFields = $oSL->load($sSEUID);
+ $oSL->remove($sSEUID);
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Delete all guides
+ * @param string $sProcessUID
+ * @return boolean
+ */
+ public function deleteGuides($sProcessUID = '')
+ {
+ try {
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($sProcessUID);
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(SwimlanesElementsPeer::PRO_UID, $sProcessUID);
+ $oCriteria->add(SwimlanesElementsPeer::SWI_TYPE, 'LINE');
+ SwimlanesElementsPeer::doDelete($oCriteria);
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Add a new text
+ * @param string $sProcessUID
+ * @param string $sLabel
+ * @param integer $iX
+ * @param integer $iY
+ * @return string
+ */
+ public function addText($sProcessUID = '', $sLabel = '', $iX = 0, $iY = 0 , $sNext_uid = '')
+ {
+ try {
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($sProcessUID);
+ $oSL = new SwimlanesElements ( );
+ $oNewText->uid = $oSL->create(array('PRO_UID' => $sProcessUID, 'SWI_TYPE' => 'TEXT', 'SWI_TEXT' => $sLabel, 'SWI_X' => $iX, 'SWI_Y' => $iY,'SWI_NEXT_UID' => $sNext_uid));
$oJSON = new Services_JSON ( );
- return $oJSON->encode($oEncode);
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Add a new guide
- * @param string $sProcessUID
- * @param integer $iPosition
- * @param string $sDirection
- * @return string
- */
-
- function addGuide($sProcessUID = '', $iPosition = 0, $sDirection = 'vertical') {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($sProcessUID);
- $oSL = new SwimlanesElements ( );
- switch ($sDirection) {
- case 'vertical' :
- $oNewGuide->uid = $oSL->create(array('PRO_UID' => $sProcessUID, 'SWI_TYPE' => 'LINE', 'SWI_X' => $iPosition, 'SWI_Y' => 0));
- break;
- case 'horizontal' :
- $oNewGuide->uid = $oSL->create(array('PRO_UID' => $sProcessUID, 'SWI_TYPE' => 'LINE', 'SWI_X' => 0, 'SWI_Y' => $iPosition));
- break;
- }
- $oJSON = new Services_JSON ( );
- return $oJSON->encode($oNewGuide);
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Save the guide position
- * @param string $sSEUID
- * @param integer $iPosition
- * @param string $sDirection
- * @return integer
- */
-
- function saveGuidePosition($sSEUID = '', $iPosition = 0, $sDirection = 'vertical') {
- try {
- $oSL = new SwimlanesElements ( );
- $aFields = $oSL->load($sSEUID);
- switch ($sDirection) {
- case 'vertical' :
- return $oSL->update(array('SWI_UID' => $sSEUID, 'SWI_X' => $iPosition));
- break;
- case 'horizontal' :
- return $oSL->update(array('SWI_UID' => $sSEUID, 'SWI_Y' => $iPosition));
- break;
- }
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Delete a guide
- * @param string $sUID
- * @return boolean
- */
-
- function deleteGuide($sSEUID = '') {
- try {
- $oSL = new SwimlanesElements ( );
- $aFields = $oSL->load($sSEUID);
- $oSL->remove($sSEUID);
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Delete all guides
- * @param string $sProcessUID
- * @return boolean
- */
-
- function deleteGuides($sProcessUID = '') {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($sProcessUID);
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(SwimlanesElementsPeer::PRO_UID, $sProcessUID);
- $oCriteria->add(SwimlanesElementsPeer::SWI_TYPE, 'LINE');
- SwimlanesElementsPeer::doDelete($oCriteria);
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Add a new text
- * @param string $sProcessUID
- * @param string $sLabel
- * @param integer $iX
- * @param integer $iY
- * @return string
- */
-
- function addText($sProcessUID = '', $sLabel = '', $iX = 0, $iY = 0 , $sNext_uid = '') {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($sProcessUID);
- $oSL = new SwimlanesElements ( );
- $oNewText->uid = $oSL->create(array('PRO_UID' => $sProcessUID, 'SWI_TYPE' => 'TEXT', 'SWI_TEXT' => $sLabel, 'SWI_X' => $iX, 'SWI_Y' => $iY,'SWI_NEXT_UID' => $sNext_uid));
- $oJSON = new Services_JSON ( );
- return $oJSON->encode($oNewText);
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Update a text
- * @param string $sSEUID
- * @param string $sLabel
- * @return integer
- */
-
- function updateText($sSEUID = '', $sLabel = '' , $sNext_uid = '') {
- try {
- $oSL = new SwimlanesElements ( );
- $aFields = $oSL->load($sSEUID);
- return $oSL->update(array('SWI_UID' => $sSEUID, 'SWI_TEXT' => $sLabel,'SWI_NEXT_UID' => $sNext_uid));
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Save the text position
- * @param string $sSEUID
- * @param integer $iX
- * @param integer $iY
- * @return integer
- */
-
- function saveTextPosition($sSEUID = '', $iX = 0, $iY = 0) {
- try {
- $oSL = new SwimlanesElements ( );
- $aFields = $oSL->load($sSEUID);
- return $oSL->update(array('SWI_UID' => $sSEUID, 'SWI_X' => $iX, 'SWI_Y' => $iY));
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Delete a text
- * @param string $sSEUID
- * @return boolean
- */
-
- function deleteText($sSEUID = '') {
- try {
- $oSL = new SwimlanesElements ( );
- $aFields = $oSL->load($sSEUID);
- $oSL->remove($sSEUID);
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Save the gateways positions
- * @param string $sGatewayUID
- * @param integer $iX
- * @param integer $iY
- * @return integer
- */
-
- function saveGatewayPosition($sGatewayUID = '', $iX = 0, $iY = 0) {
- try {
- $oGateway = new Gateway ( );
- $aFields = $oGateway->load($sGatewayUID);
-
- $aFields ['GAT_UID'] = $sGatewayUID;
- $aFields ['GAT_X'] = $iX;
- $aFields ['GAT_Y'] = $iY;
- return $oGateway->update($aFields);
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Presents a small list of dynaforms of the process
- * @param string $sProcessUID
- * @return boolean
- */
-
- function dynaformsList($sProcessUID = '') {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($sProcessUID);
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'dynaforms/dynaforms_ShortList', $this->getDynaformsCriteria($sProcessUID), $aFields);
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Return the dynaforms list criteria object
- * @param string $sProcessUID
- * @return object
- */
-
- function getDynaformsCriteria($sProcessUID = '') {
- $sDelimiter = DBAdapter::getStringDelimiter ();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(DynaformPeer::DYN_UID);
- $oCriteria->addSelectColumn(DynaformPeer::PRO_UID);
- $oCriteria->addSelectColumn(DynaformPeer::DYN_TYPE);
- $oCriteria->addAsColumn('DYN_TITLE', 'C1.CON_VALUE');
- $oCriteria->addAsColumn('DYN_DESCRIPTION', 'C2.CON_VALUE');
- $oCriteria->addAlias('C1', 'CONTENT');
- $oCriteria->addAlias('C2', 'CONTENT');
- $aConditions = array();
- $aConditions [] = array(DynaformPeer::DYN_UID, 'C1.CON_ID');
- $aConditions [] = array('C1.CON_CATEGORY', $sDelimiter . 'DYN_TITLE' . $sDelimiter);
- $aConditions [] = array('C1.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $aConditions = array();
- $aConditions [] = array(DynaformPeer::DYN_UID, 'C2.CON_ID');
- $aConditions [] = array('C2.CON_CATEGORY', $sDelimiter . 'DYN_DESCRIPTION' . $sDelimiter);
- $aConditions [] = array('C2.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(DynaformPeer::PRO_UID, $sProcessUID);
-
- $oDataset = DynaformPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- $dynaformArray = array();
- $dynaformArray [] = array('d' => 'char');
- while ($aRow = $oDataset->getRow()) {
- if (($aRow ['DYN_TITLE'] == NULL) || ($aRow ['DYN_TITLE'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
- $aRow ['DYN_TITLE'] = Content::Load("DYN_TITLE", "", $aRow ['DYN_UID'], SYS_LANG);
- }
- if (($aRow ['DYN_DESCRIPTION'] == NULL) || ($aRow ['DYN_DESCRIPTION'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
- $aRow ['DYN_DESCRIPTION'] = Content::Load("DYN_DESCRIPTION", "", $aRow ['DYN_UID'], SYS_LANG);
- }
- $dynaformArray [] = $aRow;
- $oDataset->next();
+ return $oJSON->encode($oNewText);
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
}
-
- return $oCriteria;
+ /*
+ * Update a text
+ * @param string $sSEUID
+ * @param string $sLabel
+ * @return integer
+ */
+ public function updateText($sSEUID = '', $sLabel = '' , $sNext_uid = '')
+ {
+ try {
+ $oSL = new SwimlanesElements ( );
+ $aFields = $oSL->load($sSEUID);
+ return $oSL->update(array('SWI_UID' => $sSEUID, 'SWI_TEXT' => $sLabel,'SWI_NEXT_UID' => $sNext_uid));
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
}
- /**
- * getDynaformsList
- *
- * @param string $sProcessUID
- * @return array $dynaformArray
- */
- function getDynaformsList($sProcessUID = '') {
- $sDelimiter = DBAdapter::getStringDelimiter ();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(DynaformPeer::DYN_UID);
- $oCriteria->addSelectColumn(DynaformPeer::PRO_UID);
- $oCriteria->addSelectColumn(DynaformPeer::DYN_TYPE);
- $oCriteria->addAsColumn('DYN_TITLE', 'C1.CON_VALUE');
- $oCriteria->addAsColumn('DYN_DESCRIPTION', 'C2.CON_VALUE');
- $oCriteria->addAlias('C1', 'CONTENT');
- $oCriteria->addAlias('C2', 'CONTENT');
- $aConditions = array();
- $aConditions [] = array(DynaformPeer::DYN_UID, 'C1.CON_ID');
- $aConditions [] = array('C1.CON_CATEGORY', $sDelimiter . 'DYN_TITLE' . $sDelimiter);
- $aConditions [] = array('C1.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $aConditions = array();
- $aConditions [] = array(DynaformPeer::DYN_UID, 'C2.CON_ID');
- $aConditions [] = array('C2.CON_CATEGORY', $sDelimiter . 'DYN_DESCRIPTION' . $sDelimiter);
- $aConditions [] = array('C2.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(DynaformPeer::PRO_UID, $sProcessUID);
-
- $oDataset = DynaformPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- $dynaformArray = array();
- while ($aRow = $oDataset->getRow()) {
- if (($aRow ['DYN_TITLE'] == NULL) || ($aRow ['DYN_TITLE'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
- $aRow ['DYN_TITLE'] = Content::Load("DYN_TITLE", "", $aRow ['DYN_UID'], SYS_LANG);
- }
- if (($aRow ['DYN_DESCRIPTION'] == NULL) || ($aRow ['DYN_DESCRIPTION'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
- $aRow ['DYN_DESCRIPTION'] = Content::Load("DYN_DESCRIPTION", "", $aRow ['DYN_UID'], SYS_LANG);
- }
- $dynaformArray [] = $aRow;
- $oDataset->next();
+ /*
+ * Save the text position
+ * @param string $sSEUID
+ * @param integer $iX
+ * @param integer $iY
+ * @return integer
+ */
+ public function saveTextPosition($sSEUID = '', $iX = 0, $iY = 0)
+ {
+ try {
+ $oSL = new SwimlanesElements ( );
+ $aFields = $oSL->load($sSEUID);
+ return $oSL->update(array('SWI_UID' => $sSEUID, 'SWI_X' => $iX, 'SWI_Y' => $iY));
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
}
- return $dynaformArray;
- }
-
- /*
- * Presents a small list of output documents of the process
- * @param string $sProcessUID
- * @return boolean
- */
-
- function outputdocsList($sProcessUID = '') {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($sProcessUID);
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'outputdocs/outputdocs_ShortList', $this->getOutputDocumentsCriteria($sProcessUID), $aFields);
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Return the output documents list criteria object
- * @param string $sProcessUID
- * @return object
- */
-
- function getOutputDocumentsCriteria($sProcessUID = '') {
- $sDelimiter = DBAdapter::getStringDelimiter ();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_UID);
- $oCriteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_TYPE);
- $oCriteria->addSelectColumn(OutputDocumentPeer::PRO_UID);
- $oCriteria->addAsColumn('OUT_DOC_TITLE', 'C1.CON_VALUE');
- $oCriteria->addAsColumn('OUT_DOC_DESCRIPTION', 'C2.CON_VALUE');
- $oCriteria->addAlias('C1', 'CONTENT');
- $oCriteria->addAlias('C2', 'CONTENT');
- $aConditions = array();
- $aConditions [] = array(OutputDocumentPeer::OUT_DOC_UID, 'C1.CON_ID');
- $aConditions [] = array('C1.CON_CATEGORY', $sDelimiter . 'OUT_DOC_TITLE' . $sDelimiter);
- $aConditions [] = array('C1.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $aConditions = array();
- $aConditions [] = array(OutputDocumentPeer::OUT_DOC_UID, 'C2.CON_ID');
- $aConditions [] = array('C2.CON_CATEGORY', $sDelimiter . 'OUT_DOC_DESCRIPTION' . $sDelimiter);
- $aConditions [] = array('C2.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(OutputDocumentPeer::PRO_UID, $sProcessUID);
-
- $oDataset = OutputDocumentPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- $outputDocArray = array();
- $outputDocArray [] = array('d' => 'char');
- while ($aRow = $oDataset->getRow()) {
- if (($aRow ['OUT_DOC_TITLE'] == NULL) || ($aRow ['OUT_DOC_TITLE'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
- $outputDocument = new OutputDocument ( );
- $outputDocumentObj = $outputDocument->load($aRow ['OUT_DOC_UID']);
- $aRow ['OUT_DOC_TITLE'] = $outputDocumentObj ['OUT_DOC_TITLE'];
- $aRow ['OUT_DOC_DESCRIPTION'] = $outputDocumentObj ['OUT_DOC_DESCRIPTION'];
- }
- $outputDocArray [] = $aRow;
- $oDataset->next();
- }
- global $_DBArray;
- $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
- $_DBArray ['outputDocArray'] = $outputDocArray;
- $_SESSION ['_DBArray'] = $_DBArray;
- G::LoadClass('ArrayPeer');
- $oCriteria = new Criteria('dbarray');
- $oCriteria->setDBArrayTable('outputDocArray');
-
- return $oCriteria;
- }
-
- /*
- * Presents a small list of input documents of the process
- * @param string $sProcessUID Process UID
- * @return void
- */
-
- function inputdocsList($sProcessUID = '') {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($sProcessUID);
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'inputdocs/inputdocs_ShortList', $this->getInputDocumentsCriteria($sProcessUID), $aFields);
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Return the input documents list criteria object
- * @param string $sProcessUID
- * @return object
- */
-
- function getInputDocumentsCriteria($sProcessUID = '') {
- $sDelimiter = DBAdapter::getStringDelimiter ();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(InputDocumentPeer::INP_DOC_UID);
- $oCriteria->addSelectColumn(InputDocumentPeer::PRO_UID);
- $oCriteria->addAsColumn('INP_DOC_TITLE', 'C1.CON_VALUE');
- $oCriteria->addAsColumn('INP_DOC_DESCRIPTION', 'C2.CON_VALUE');
- $oCriteria->addAlias('C1', 'CONTENT');
- $oCriteria->addAlias('C2', 'CONTENT');
- $aConditions = array();
- $aConditions [] = array(InputDocumentPeer::INP_DOC_UID, 'C1.CON_ID');
- $aConditions [] = array('C1.CON_CATEGORY', $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter);
- $aConditions [] = array('C1.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $aConditions = array();
- $aConditions [] = array(InputDocumentPeer::INP_DOC_UID, 'C2.CON_ID');
- $aConditions [] = array('C2.CON_CATEGORY', $sDelimiter . 'INP_DOC_DESCRIPTION' . $sDelimiter);
- $aConditions [] = array('C2.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(InputDocumentPeer::PRO_UID, $sProcessUID);
-
- $oDataset = InputDocumentPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- $inputDocArray = "";
- $inputDocArray [] = array('INP_DOC_UID' => 'char', 'PRO_UID' => 'char', 'INP_DOC_TITLE' => 'char', 'INP_DOC_DESCRIPTION' => 'char');
- while ($aRow = $oDataset->getRow()) {
- if (($aRow ['INP_DOC_TITLE'] == NULL) || ($aRow ['INP_DOC_TITLE'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
- $inputDocument = new InputDocument ( );
- $inputDocumentObj = $inputDocument->load($aRow ['INP_DOC_UID']);
- $aRow ['INP_DOC_TITLE'] = $inputDocumentObj ['INP_DOC_TITLE'];
- $aRow ['INP_DOC_DESCRIPTION'] = $inputDocumentObj ['INP_DOC_DESCRIPTION'];
- }
- $inputDocArray [] = $aRow;
- $oDataset->next();
- }
- global $_DBArray;
- $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
-
- $_DBArray ['inputDocArrayMain'] = $inputDocArray;
- $_SESSION ['_DBArray'] = $_DBArray;
- G::LoadClass('ArrayPeer');
- $oCriteria = new Criteria('dbarray');
- $oCriteria->setDBArrayTable('inputDocArrayMain');
-
- return $oCriteria;
- }
-
- /*
- * Presents a small list of triggers of the process
- * @param string $sProcessUID
- * @return void
- */
-
- function triggersList($sProcessUID = '') {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($sProcessUID);
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'triggers/triggers_ShortList', $this->getTriggersCriteria($sProcessUID), $aFields);
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Return the triggers list criteria object
- * @param string $sProcessUID
- * @return object
- */
-
- function getTriggersCriteria($sProcessUID = '') {
- $sDelimiter = DBAdapter::getStringDelimiter ();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(TriggersPeer::TRI_UID);
- $oCriteria->addSelectColumn(TriggersPeer::PRO_UID);
- $oCriteria->addAsColumn('TRI_TITLE', 'C1.CON_VALUE');
- $oCriteria->addAsColumn('TRI_DESCRIPTION', 'C2.CON_VALUE');
- $oCriteria->addAlias('C1', 'CONTENT');
- $oCriteria->addAlias('C2', 'CONTENT');
- $aConditions = array();
- $aConditions [] = array(TriggersPeer::TRI_UID, 'C1.CON_ID');
- $aConditions [] = array('C1.CON_CATEGORY', $sDelimiter . 'TRI_TITLE' . $sDelimiter);
- $aConditions [] = array('C1.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $aConditions = array();
- $aConditions [] = array(TriggersPeer::TRI_UID, 'C2.CON_ID');
- $aConditions [] = array('C2.CON_CATEGORY', $sDelimiter . 'TRI_TITLE' . $sDelimiter);
- $aConditions [] = array('C2.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(TriggersPeer::PRO_UID, $sProcessUID);
- $oCriteria->addAscendingOrderByColumn('TRI_TITLE');
-
-
- $oDataset = TriggersPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- $triggersArray = "";
- $triggersArray [] = array('TRI_UID' => 'char', 'PRO_UID' => 'char', 'TRI_TITLE' => 'char', 'TRI_DESCRIPTION' => 'char');
- while ($aRow = $oDataset->getRow()) {
-
- if (($aRow ['TRI_TITLE'] == NULL) || ($aRow ['TRI_TITLE'] == "")) { // There is no transaltion for this Trigger name, try to get/regenerate the label
- $triggerO = new Triggers ( );
- $triggerObj = $triggerO->load($aRow ['TRI_UID']);
- $aRow ['TRI_TITLE'] = $triggerObj ['TRI_TITLE'];
- $aRow ['TRI_DESCRIPTION'] = $triggerObj ['TRI_DESCRIPTION'];
- }
- $triggersArray [] = $aRow;
- $oDataset->next();
+ /*
+ * Delete a text
+ * @param string $sSEUID
+ * @return boolean
+ */
+ public function deleteText($sSEUID = '')
+ {
+ try {
+ $oSL = new SwimlanesElements ( );
+ $aFields = $oSL->load($sSEUID);
+ $oSL->remove($sSEUID);
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
}
+ /*
+ * Save the gateways positions
+ * @param string $sGatewayUID
+ * @param integer $iX
+ * @param integer $iY
+ * @return integer
+ */
+ public function saveGatewayPosition($sGatewayUID = '', $iX = 0, $iY = 0)
+ {
+ try {
+ $oGateway = new Gateway ( );
+ $aFields = $oGateway->load($sGatewayUID);
- return $oCriteria;
- }
+ $aFields ['GAT_UID'] = $sGatewayUID;
+ $aFields ['GAT_X'] = $iX;
+ $aFields ['GAT_Y'] = $iY;
+ return $oGateway->update($aFields);
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
- /*
- * Return the triggers list in a array
- * @param string $sProcessUID
- * @return array
- */
+ /*
+ * Presents a small list of dynaforms of the process
+ * @param string $sProcessUID
+ * @return boolean
+ */
+ public function dynaformsList($sProcessUID = '')
+ {
+ try {
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($sProcessUID);
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'dynaforms/dynaforms_ShortList', $this->getDynaformsCriteria($sProcessUID), $aFields);
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
- function getTriggers($sProcessUID = '') {
- $aTriggers = Array();
- $oCriteria = $this->getTriggersCriteria($sProcessUID);
+ /*
+ * Return the dynaforms list criteria object
+ * @param string $sProcessUID
+ * @return object
+ */
+ public function getDynaformsCriteria($sProcessUID = '')
+ {
+ $sDelimiter = DBAdapter::getStringDelimiter ();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(DynaformPeer::DYN_UID);
+ $oCriteria->addSelectColumn(DynaformPeer::PRO_UID);
+ $oCriteria->addSelectColumn(DynaformPeer::DYN_TYPE);
+ $oCriteria->addAsColumn('DYN_TITLE', 'C1.CON_VALUE');
+ $oCriteria->addAsColumn('DYN_DESCRIPTION', 'C2.CON_VALUE');
+ $oCriteria->addAlias('C1', 'CONTENT');
+ $oCriteria->addAlias('C2', 'CONTENT');
+ $aConditions = array();
+ $aConditions [] = array(DynaformPeer::DYN_UID, 'C1.CON_ID');
+ $aConditions [] = array('C1.CON_CATEGORY', $sDelimiter . 'DYN_TITLE' . $sDelimiter);
+ $aConditions [] = array('C1.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $aConditions = array();
+ $aConditions [] = array(DynaformPeer::DYN_UID, 'C2.CON_ID');
+ $aConditions [] = array('C2.CON_CATEGORY', $sDelimiter . 'DYN_DESCRIPTION' . $sDelimiter);
+ $aConditions [] = array('C2.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(DynaformPeer::PRO_UID, $sProcessUID);
- $oDataset = RoutePeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset = DynaformPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ $dynaformArray = array();
+ $dynaformArray [] = array('d' => 'char');
+ while ($aRow = $oDataset->getRow()) {
+ if (($aRow ['DYN_TITLE'] == NULL) || ($aRow ['DYN_TITLE'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
+ $aRow ['DYN_TITLE'] = Content::Load("DYN_TITLE", "", $aRow ['DYN_UID'], SYS_LANG);
+ }
+ if (($aRow ['DYN_DESCRIPTION'] == NULL) || ($aRow ['DYN_DESCRIPTION'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
+ $aRow ['DYN_DESCRIPTION'] = Content::Load("DYN_DESCRIPTION", "", $aRow ['DYN_UID'], SYS_LANG);
+ }
+ $dynaformArray [] = $aRow;
+ $oDataset->next();
+ }
+ return $oCriteria;
+ }
- while ($oDataset->next())
- array_push($aTriggers, $oDataset->getRow());
+ /**
+ * getDynaformsList
+ *
+ * @param string $sProcessUID
+ * @return array $dynaformArray
+ */
+ public function getDynaformsList($sProcessUID = '')
+ {
+ $sDelimiter = DBAdapter::getStringDelimiter ();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(DynaformPeer::DYN_UID);
+ $oCriteria->addSelectColumn(DynaformPeer::PRO_UID);
+ $oCriteria->addSelectColumn(DynaformPeer::DYN_TYPE);
+ $oCriteria->addAsColumn('DYN_TITLE', 'C1.CON_VALUE');
+ $oCriteria->addAsColumn('DYN_DESCRIPTION', 'C2.CON_VALUE');
+ $oCriteria->addAlias('C1', 'CONTENT');
+ $oCriteria->addAlias('C2', 'CONTENT');
+ $aConditions = array();
+ $aConditions [] = array(DynaformPeer::DYN_UID, 'C1.CON_ID');
+ $aConditions [] = array('C1.CON_CATEGORY', $sDelimiter . 'DYN_TITLE' . $sDelimiter);
+ $aConditions [] = array('C1.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $aConditions = array();
+ $aConditions [] = array(DynaformPeer::DYN_UID, 'C2.CON_ID');
+ $aConditions [] = array('C2.CON_CATEGORY', $sDelimiter . 'DYN_DESCRIPTION' . $sDelimiter);
+ $aConditions [] = array('C2.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(DynaformPeer::PRO_UID, $sProcessUID);
- return $aTriggers;
- }
+ $oDataset = DynaformPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ $dynaformArray = array();
+ while ($aRow = $oDataset->getRow()) {
+ if (($aRow ['DYN_TITLE'] == NULL) || ($aRow ['DYN_TITLE'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
+ $aRow ['DYN_TITLE'] = Content::Load("DYN_TITLE", "", $aRow ['DYN_UID'], SYS_LANG);
+ }
+ if (($aRow ['DYN_DESCRIPTION'] == NULL) || ($aRow ['DYN_DESCRIPTION'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
+ $aRow ['DYN_DESCRIPTION'] = Content::Load("DYN_DESCRIPTION", "", $aRow ['DYN_UID'], SYS_LANG);
+ }
+ $dynaformArray [] = $aRow;
+ $oDataset->next();
+ }
+ return $dynaformArray;
+ }
- /*
- * Presents a small list of Scheduled Tasks of the process
- * @param string $sProcessUID
- * @return void
- */
+ /*
+ * Presents a small list of output documents of the process
+ * @param string $sProcessUID
+ * @return boolean
+ */
+ public function outputdocsList($sProcessUID = '')
+ {
+ try {
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($sProcessUID);
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'outputdocs/outputdocs_ShortList', $this->getOutputDocumentsCriteria($sProcessUID), $aFields);
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
- function caseSchedulerList($sProcessUID = '') {
- try {
- /* $oCaseScheduler = new CaseScheduler();
- $aRows = $oCaseScheduler->getAll();
-
- //$oCaseScheduler->caseSchedulerCron();
- // g::pr($aRows); die;
-
- $fieldNames = Array(
- 'SCH_UID' => 'char',
- 'SCH_NAME' => 'char',
- 'PRO_UID' => 'char',
- 'TAS_UID' => 'char',
- 'SCH_TIME_NEXT_RUN' => 'char',
- 'SCH_LAST_RUN_TIME' => 'char',
- 'SCH_STATE' => 'char',
- 'SCH_LAST_STATE' => 'char',
- 'USR_UID' => 'char',
- 'SCH_OPTION' => 'char',
- 'SCH_START_TIME' => 'char',
- 'SCH_START_DATE' => 'char',
- 'SCH_DAYS_PERFORM_TASK' => 'char',
- 'SCH_EVERY_DAYS' => 'char',
- 'SCH_WEEK_DAYS' => 'char',
- 'SCH_START_DAY' => 'char',
- 'SCH_MONTHS' => 'char',
- 'SCH_END_DATE' => 'char',
- 'SCH_REPEAT_EVERY' => 'char',
- 'SCH_REPEAT_UNTIL' => 'char',
- 'SCH_REPEAT_STOP_IF_RUNNING' => 'char',
- 'PRO_PARENT' => 'char',
- 'PRO_TIME' => 'char',
- 'PRO_TIMEUNIT' => 'char',
- 'PRO_STATUS' => 'char',
- 'PRO_TYPE_DAY' => 'char',
- 'PRO_TYPE' => 'char',
- 'PRO_ASSIGNMENT' => 'char',
- 'PRO_SHOW_MAP' => 'char',
- 'PRO_SHOW_MESSAGE' => 'char',
- 'PRO_SHOW_DELEGATE' => 'char',
- 'PRO_SHOW_DYNAFORM' => 'char',
- 'PRO_CATEGORY' => 'char',
- 'PRO_SUB_CATEGORY' => 'char',
- 'PRO_INDUSTRY' => 'char',
- 'PRO_UPDATE_DATE' => 'char',
- 'PRO_CREATE_DATE' => 'char',
- 'PRO_CREATE_USER' => 'char',
- 'PRO_HEIGHT' => 'char',
- 'PRO_WIDTH' => 'char',
- 'PRO_TITLE_X' => 'char',
- 'PRO_TITLE_Y' => 'char',
- 'PRO_DEBUG' => 'char',
- 'PRO_TITLE' => 'char',
- 'PRO_DESCRIPTION' => 'char',
- 'TAS_TYPE' => 'char',
- 'TAS_DURATION' => 'char',
- 'TAS_DELAY_TYPE' => 'char',
- 'TAS_TEMPORIZER' => 'char',
- 'TAS_TYPE_DAY' => 'char',
- 'TAS_TIMEUNIT' => 'char',
- 'TAS_ALERT' => 'char',
- 'TAS_PRIORITY_VARIABLE' => 'char',
- 'TAS_ASSIGN_TYPE' => 'char',
- 'TAS_ASSIGN_VARIABLE' => 'char',
- 'TAS_ASSIGN_LOCATION' => 'char',
- 'TAS_ASSIGN_LOCATION_ADHOC' => 'char',
- 'TAS_TRANSFER_FLY' => 'char',
- 'TAS_LAST_ASSIGNED' => 'char',
- 'TAS_USER' => 'char',
- 'TAS_CAN_UPLOAD' => 'char',
- 'TAS_VIEW_UPLOAD' => 'char',
- 'TAS_VIEW_ADDITIONAL_DOCUMENTATION' => 'char',
- 'TAS_CAN_CANCEL' => 'char',
- 'TAS_OWNER_APP' => 'char',
- 'STG_UID' => 'char',
- 'TAS_CAN_PAUSE' => 'char',
- 'TAS_CAN_SEND_MESSAGE' => 'char',
- 'TAS_CAN_DELETE_DOCS' => 'char',
- 'TAS_SELF_SERVICE' => 'char',
- 'TAS_START' => 'char',
- 'TAS_TO_LAST_USER' => 'char',
- 'TAS_SEND_LAST_EMAIL' => 'char',
- 'TAS_DERIVATION' => 'char',
- 'TAS_POSX' => 'char',
- 'TAS_POSY' => 'char',
- 'TAS_COLOR' => 'char',
- 'TAS_TITLE' => 'char',
- 'TAS_DESCRIPTION' => 'char',
- 'TAS_DEF_TITLE' => 'char',
- 'TAS_DEF_DESCRIPTION' => 'char',
- 'TAS_DEF_PROC_CODE' => 'char',
- 'TAS_DEF_MESSAGE' => 'char'
- );
-
-
- $aRows = array_merge(Array($fieldNames), $aRows);
-
- // g::pr($aRows); die;
+ /*
+ * Return the output documents list criteria object
+ * @param string $sProcessUID
+ * @return object
+ */
+ public function getOutputDocumentsCriteria($sProcessUID = '')
+ {
+ $sDelimiter = DBAdapter::getStringDelimiter ();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_UID);
+ $oCriteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_TYPE);
+ $oCriteria->addSelectColumn(OutputDocumentPeer::PRO_UID);
+ $oCriteria->addAsColumn('OUT_DOC_TITLE', 'C1.CON_VALUE');
+ $oCriteria->addAsColumn('OUT_DOC_DESCRIPTION', 'C2.CON_VALUE');
+ $oCriteria->addAlias('C1', 'CONTENT');
+ $oCriteria->addAlias('C2', 'CONTENT');
+ $aConditions = array();
+ $aConditions [] = array(OutputDocumentPeer::OUT_DOC_UID, 'C1.CON_ID');
+ $aConditions [] = array('C1.CON_CATEGORY', $sDelimiter . 'OUT_DOC_TITLE' . $sDelimiter);
+ $aConditions [] = array('C1.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $aConditions = array();
+ $aConditions [] = array(OutputDocumentPeer::OUT_DOC_UID, 'C2.CON_ID');
+ $aConditions [] = array('C2.CON_CATEGORY', $sDelimiter . 'OUT_DOC_DESCRIPTION' . $sDelimiter);
+ $aConditions [] = array('C2.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(OutputDocumentPeer::PRO_UID, $sProcessUID);
+ $oDataset = OutputDocumentPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ $outputDocArray = array();
+ $outputDocArray [] = array('d' => 'char');
+ while ($aRow = $oDataset->getRow()) {
+ if (($aRow ['OUT_DOC_TITLE'] == NULL) || ($aRow ['OUT_DOC_TITLE'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
+ $outputDocument = new OutputDocument ( );
+ $outputDocumentObj = $outputDocument->load($aRow ['OUT_DOC_UID']);
+ $aRow ['OUT_DOC_TITLE'] = $outputDocumentObj ['OUT_DOC_TITLE'];
+ $aRow ['OUT_DOC_DESCRIPTION'] = $outputDocumentObj ['OUT_DOC_DESCRIPTION'];
+ }
+ $outputDocArray [] = $aRow;
+ $oDataset->next();
+ }
global $_DBArray;
- $_DBArray['cases_scheduler'] = $aRows;
- $_SESSION['_DBArray'] = $_DBArray;
+ $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
+ $_DBArray ['outputDocArray'] = $outputDocArray;
+ $_SESSION ['_DBArray'] = $_DBArray;
G::LoadClass('ArrayPeer');
$oCriteria = new Criteria('dbarray');
- $oCriteria->setDBArrayTable('cases_scheduler');
- $G_PUBLISH = new Publisher;
+ $oCriteria->setDBArrayTable('outputDocArray');
- $G_PUBLISH->AddContent('propeltable', 'paged-table', '/cases/cases_Scheduler_List', $oCriteria, array('CONFIRM' => G::LoadTranslation('ID_MSG_CONFIRM_DELETE_CASE_SCHEDULER')));
- G::RenderPage('publish');
- //return true; */
- $schedulerPath = SYS_URI . "cases/cases_Scheduler_List";
- $html = "";
- echo $html;
- } catch (Exception $oError) {
- throw ($oError);
+ return $oCriteria;
}
- }
- /*
- * Presents a small list of Scheduled Task Logs of the process
- * @param string $sProcessUID
- * @return void
- */
-
- function logCaseSchedulerList($sProcessUID = '') {
- try {
- $oLogCaseScheduler = new LogCasesScheduler();
- $aRows = $oLogCaseScheduler->getAll();
-
- $fieldNames = Array(
- 'PRO_UID' => 'char',
- 'TAS_UID' => 'char',
- 'USR_NAME' => 'char',
- 'EXEC_DATE' => 'char',
- 'EXEC_HOUR' => 'char',
- 'RESULT' => 'char',
- 'SCH_UID' => 'char',
- 'WS_CREATE_CASE_STATUS' => 'char',
- 'WS_ROUTE_CASE_STATUS' => 'char',
- );
-
- $aRows = array_merge(Array($fieldNames), $aRows);
-
- $_DBArray['log_cases_scheduler'] = $aRows;
- $_SESSION['_DBArray'] = $_DBArray;
-
- $oCriteria = new Criteria('dbarray');
- $oCriteria->setDBArrayTable('log_cases_scheduler');
-
- $G_PUBLISH = new Publisher;
- $G_PUBLISH->ROWS_PER_PAGE = 10;
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'cases/cases_Scheduler_Log', $oCriteria);
- $G_PUBLISH->oPropelTable->rowsPerPage = 10;
- G::RenderPage('publish', 'blank');
- } catch (Exception $oError) {
- throw ($oError);
+ /*
+ * Presents a small list of input documents of the process
+ * @param string $sProcessUID Process UID
+ * @return void
+ */
+ public function inputdocsList($sProcessUID = '')
+ {
+ try {
+ return true;
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($sProcessUID);
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'inputdocs/inputdocs_ShortList', $this->getInputDocumentsCriteria($sProcessUID), $aFields);
+ G::RenderPage('publish', 'raw');
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
}
- }
- /*
- * Presents a small list of messages of the process
- * @param string $sProcessUID
- * @return void
- */
+ /*
+ * Return the input documents list criteria object
+ * @param string $sProcessUID
+ * @return object
+ */
+ public function getInputDocumentsCriteria($sProcessUID = '')
+ {
+ $sDelimiter = DBAdapter::getStringDelimiter ();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(InputDocumentPeer::INP_DOC_UID);
+ $oCriteria->addSelectColumn(InputDocumentPeer::PRO_UID);
+ $oCriteria->addAsColumn('INP_DOC_TITLE', 'C1.CON_VALUE');
+ $oCriteria->addAsColumn('INP_DOC_DESCRIPTION', 'C2.CON_VALUE');
+ $oCriteria->addAlias('C1', 'CONTENT');
+ $oCriteria->addAlias('C2', 'CONTENT');
+ $aConditions = array();
+ $aConditions [] = array(InputDocumentPeer::INP_DOC_UID, 'C1.CON_ID');
+ $aConditions [] = array('C1.CON_CATEGORY', $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter);
+ $aConditions [] = array('C1.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $aConditions = array();
+ $aConditions [] = array(InputDocumentPeer::INP_DOC_UID, 'C2.CON_ID');
+ $aConditions [] = array('C2.CON_CATEGORY', $sDelimiter . 'INP_DOC_DESCRIPTION' . $sDelimiter);
+ $aConditions [] = array('C2.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(InputDocumentPeer::PRO_UID, $sProcessUID);
- function messagesList($sProcessUID = '') {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($sProcessUID);
- global $G_PUBLISH;
- $aFields ['PRO_UID'] = $sProcessUID;
- $aFields ['SYS_LANG'] = SYS_LANG;
- $G_PUBLISH = new Publisher ( );
- //$G_PUBLISH->AddContent('pagedtable', 'paged-table', 'messages/messages_ShortList', $this->getMessagesCriteria($sProcessUID));
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
+ $oDataset = InputDocumentPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ $inputDocArray = "";
+ $inputDocArray [] = array('INP_DOC_UID' => 'char', 'PRO_UID' => 'char', 'INP_DOC_TITLE' => 'char', 'INP_DOC_DESCRIPTION' => 'char');
+ while ($aRow = $oDataset->getRow()) {
+ if (($aRow ['INP_DOC_TITLE'] == NULL) || ($aRow ['INP_DOC_TITLE'] == "")) { // There is no transaltion for this Document name, try to get/regenerate the label
+ $inputDocument = new InputDocument ( );
+ $inputDocumentObj = $inputDocument->load($aRow ['INP_DOC_UID']);
+ $aRow ['INP_DOC_TITLE'] = $inputDocumentObj ['INP_DOC_TITLE'];
+ $aRow ['INP_DOC_DESCRIPTION'] = $inputDocumentObj ['INP_DOC_DESCRIPTION'];
+ }
+ $inputDocArray [] = $aRow;
+ $oDataset->next();
+ }
+ global $_DBArray;
+ $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
+
+ $_DBArray ['inputDocArrayMain'] = $inputDocArray;
+ $_SESSION ['_DBArray'] = $_DBArray;
+ G::LoadClass('ArrayPeer');
+ $oCriteria = new Criteria('dbarray');
+ $oCriteria->setDBArrayTable('inputDocArrayMain');
+
+ return $oCriteria;
}
- }
- /*
- * Presents a small list of report tables of the process
- * @param string $sProcessUID
- * @return void
- */
-
- function reportTablesList($sProcessUID = '') {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($sProcessUID);
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'reportTables/reportTables_ShortList', $this->getReportTablesCriteria($sProcessUID), $aFields);
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
+ /*
+ * Presents a small list of triggers of the process
+ * @param string $sProcessUID
+ * @return void
+ */
+ public function triggersList($sProcessUID = '')
+ {
+ try {
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($sProcessUID);
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'triggers/triggers_ShortList', $this->getTriggersCriteria($sProcessUID), $aFields);
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
}
- }
- /*
- * Return the report tables list criteria object
- * @param string $sProcessUID
- * @return object
- */
+ /*
+ * Return the triggers list criteria object
+ * @param string $sProcessUID
+ * @return object
+ */
+ public function getTriggersCriteria($sProcessUID = '')
+ {
+ $sDelimiter = DBAdapter::getStringDelimiter ();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(TriggersPeer::TRI_UID);
+ $oCriteria->addSelectColumn(TriggersPeer::PRO_UID);
+ $oCriteria->addAsColumn('TRI_TITLE', 'C1.CON_VALUE');
+ $oCriteria->addAsColumn('TRI_DESCRIPTION', 'C2.CON_VALUE');
+ $oCriteria->addAlias('C1', 'CONTENT');
+ $oCriteria->addAlias('C2', 'CONTENT');
+ $aConditions = array();
+ $aConditions [] = array(TriggersPeer::TRI_UID, 'C1.CON_ID');
+ $aConditions [] = array('C1.CON_CATEGORY', $sDelimiter . 'TRI_TITLE' . $sDelimiter);
+ $aConditions [] = array('C1.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $aConditions = array();
+ $aConditions [] = array(TriggersPeer::TRI_UID, 'C2.CON_ID');
+ $aConditions [] = array('C2.CON_CATEGORY', $sDelimiter . 'TRI_TITLE' . $sDelimiter);
+ $aConditions [] = array('C2.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(TriggersPeer::PRO_UID, $sProcessUID);
+ $oCriteria->addAscendingOrderByColumn('TRI_TITLE');
- function getReportTablesCriteria($sProcessUID = '') {
- $sDelimiter = DBAdapter::getStringDelimiter ();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(ReportTablePeer::REP_TAB_UID);
- $oCriteria->addSelectColumn(ReportTablePeer::PRO_UID);
- $oCriteria->addSelectColumn(ReportTablePeer::REP_TAB_NAME);
- $oCriteria->addSelectColumn(ReportTablePeer::REP_TAB_TYPE);
- $oCriteria->addSelectColumn(ReportTablePeer::REP_TAB_CONNECTION);
- // $oCriteria->addAsColumn ( 'REP_TAB_TITLE', 'C.CON_VALUE' );
- $oCriteria->addAsColumn('REP_TAB_TITLE', "CASE WHEN C.CON_VALUE IS NULL THEN (SELECT DISTINCT MAX(A.CON_VALUE) FROM CONTENT A WHERE A.CON_ID = REPORT_TABLE.REP_TAB_UID ) ELSE C.CON_VALUE END ");
- $oCriteria->addAlias('C', 'CONTENT');
- $aConditions = array();
- $aConditions [] = array(ReportTablePeer::REP_TAB_UID, 'C.CON_ID');
- $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'REP_TAB_TITLE' . $sDelimiter);
- $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(ReportTablePeer::PRO_UID, $sProcessUID);
- return $oCriteria;
- }
+ $oDataset = TriggersPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ $triggersArray = "";
+ $triggersArray [] = array('TRI_UID' => 'char', 'PRO_UID' => 'char', 'TRI_TITLE' => 'char', 'TRI_DESCRIPTION' => 'char');
+ while ($aRow = $oDataset->getRow()) {
+ if (($aRow ['TRI_TITLE'] == NULL) || ($aRow ['TRI_TITLE'] == "")) { // There is no transaltion for this Trigger name, try to get/regenerate the label
+ $triggerO = new Triggers ( );
+ $triggerObj = $triggerO->load($aRow ['TRI_UID']);
+ $aRow ['TRI_TITLE'] = $triggerObj ['TRI_TITLE'];
+ $aRow ['TRI_DESCRIPTION'] = $triggerObj ['TRI_DESCRIPTION'];
+ }
+ $triggersArray [] = $aRow;
+ $oDataset->next();
+ }
+ return $oCriteria;
+ }
- /*
- * Show the current pattern
- * @param string $sProcessUID
- * @param string $sTaskUID
- * @return boolean
- */
+ /*
+ * Return the triggers list in a array
+ * @param string $sProcessUID
+ * @return array
+ */
+ public function getTriggers($sProcessUID = '')
+ {
+ $aTriggers = Array();
+ $oCriteria = $this->getTriggersCriteria($sProcessUID);
- function currentPattern($sProcessUID, $sTaskUID) {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($sProcessUID);
- $oTask = new Task ( );
- $aFields = $oTask->load($sTaskUID);
- $aFields = array();
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(RoutePeer::PRO_UID, $sProcessUID);
- $oCriteria->add(RoutePeer::TAS_UID, $sTaskUID);
- $oCriteria->addAscendingOrderByColumn(RoutePeer::ROU_CASE);
- $oDataset = RoutePeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- $aRow = $oDataset->getRow();
- $params = array();
-// $sql = BasePeer::createSelectSql($oCriteria, $params);
-// echo $sProcessUID."-".$sTaskUID."-";
-// echo $sql;
-// var_dump($aRow);
-// die();
+ $oDataset = RoutePeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ while ($oDataset->next()) {
+ array_push($aTriggers, $oDataset->getRow());
+ }
+ return $aTriggers;
+ }
+
+ /*
+ * Presents a small list of Scheduled Tasks of the process
+ * @param string $sProcessUID
+ * @return void
+ */
+ public function caseSchedulerList($sProcessUID = '')
+ {
+ try {
+ $schedulerPath = SYS_URI . "cases/cases_Scheduler_List";
+ $html = "";
+ echo $html;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Presents a small list of Scheduled Task Logs of the process
+ * @param string $sProcessUID
+ * @return void
+ */
+ public function logCaseSchedulerList($sProcessUID = '')
+ {
+ try {
+ $oLogCaseScheduler = new LogCasesScheduler();
+ $aRows = $oLogCaseScheduler->getAll();
+
+ $fieldNames = Array(
+ 'PRO_UID' => 'char',
+ 'TAS_UID' => 'char',
+ 'USR_NAME' => 'char',
+ 'EXEC_DATE' => 'char',
+ 'EXEC_HOUR' => 'char',
+ 'RESULT' => 'char',
+ 'SCH_UID' => 'char',
+ 'WS_CREATE_CASE_STATUS' => 'char',
+ 'WS_ROUTE_CASE_STATUS' => 'char',
+ );
+
+ $aRows = array_merge(Array($fieldNames), $aRows);
+
+ $_DBArray['log_cases_scheduler'] = $aRows;
+ $_SESSION['_DBArray'] = $_DBArray;
+
+ $oCriteria = new Criteria('dbarray');
+ $oCriteria->setDBArrayTable('log_cases_scheduler');
+
+ $G_PUBLISH = new Publisher;
+ $G_PUBLISH->ROWS_PER_PAGE = 10;
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'cases/cases_Scheduler_Log', $oCriteria);
+ $G_PUBLISH->oPropelTable->rowsPerPage = 10;
+ G::RenderPage('publish', 'blank');
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Presents a small list of messages of the process
+ * @param string $sProcessUID
+ * @return void
+ */
+ public function messagesList($sProcessUID = '')
+ {
+ try {
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($sProcessUID);
+ global $G_PUBLISH;
+ $aFields ['PRO_UID'] = $sProcessUID;
+ $aFields ['SYS_LANG'] = SYS_LANG;
+ $G_PUBLISH = new Publisher ( );
+ //$G_PUBLISH->AddContent('pagedtable', 'paged-table', 'messages/messages_ShortList', $this->getMessagesCriteria($sProcessUID));
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Presents a small list of report tables of the process
+ * @param string $sProcessUID
+ * @return void
+ */
+ public function reportTablesList($sProcessUID = '')
+ {
+ try {
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($sProcessUID);
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'reportTables/reportTables_ShortList', $this->getReportTablesCriteria($sProcessUID), $aFields);
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Return the report tables list criteria object
+ * @param string $sProcessUID
+ * @return object
+ */
+ public function getReportTablesCriteria($sProcessUID = '')
+ {
+ $sDelimiter = DBAdapter::getStringDelimiter ();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(ReportTablePeer::REP_TAB_UID);
+ $oCriteria->addSelectColumn(ReportTablePeer::PRO_UID);
+ $oCriteria->addSelectColumn(ReportTablePeer::REP_TAB_NAME);
+ $oCriteria->addSelectColumn(ReportTablePeer::REP_TAB_TYPE);
+ $oCriteria->addSelectColumn(ReportTablePeer::REP_TAB_CONNECTION);
+ // $oCriteria->addAsColumn ( 'REP_TAB_TITLE', 'C.CON_VALUE' );
+ $oCriteria->addAsColumn('REP_TAB_TITLE', "CASE WHEN C.CON_VALUE IS NULL THEN (SELECT DISTINCT MAX(A.CON_VALUE) FROM CONTENT A WHERE A.CON_ID = REPORT_TABLE.REP_TAB_UID ) ELSE C.CON_VALUE END ");
+ $oCriteria->addAlias('C', 'CONTENT');
+ $aConditions = array();
+ $aConditions [] = array(ReportTablePeer::REP_TAB_UID, 'C.CON_ID');
+ $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'REP_TAB_TITLE' . $sDelimiter);
+ $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(ReportTablePeer::PRO_UID, $sProcessUID);
+ return $oCriteria;
+ }
+
+ /*
+ * Show the current pattern
+ * @param string $sProcessUID
+ * @param string $sTaskUID
+ * @return boolean
+ */
+ public function currentPattern($sProcessUID, $sTaskUID)
+ {
+ try {
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($sProcessUID);
+ $oTask = new Task ( );
+ $aFields = $oTask->load($sTaskUID);
+ $aFields = array();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(RoutePeer::PRO_UID, $sProcessUID);
+ $oCriteria->add(RoutePeer::TAS_UID, $sTaskUID);
+ $oCriteria->addAscendingOrderByColumn(RoutePeer::ROU_CASE);
+ $oDataset = RoutePeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ $aRow = $oDataset->getRow();
+ $params = array();
if (is_array($aRow)) {
$aFields ['ROU_TYPE'] = $aRow ['ROU_TYPE'];
@@ -2453,916 +2328,904 @@ class processMap {
}
}
- $aFields ['action'] = 'savePattern';
- $aFields ['LANG'] = SYS_LANG;
- $aFields ['PROCESS'] = $sProcessUID;
- $aFields ['TASK'] = $sTaskUID;
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('xmlform', 'xmlform', 'patterns/' . $sXmlform, '', $aFields, '../patterns/patterns_Ajax');
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher();
- $aMessage = array();
- $aMessage['MESSAGE'] = $oError->getMessage();
- $G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', $aMessage );
- G::RenderPage( 'publish','blank');
- die;
- }
- }
-
- /*
- * Show the new pattern form
- * @param string $sProcessUID
- * @param string $sTaskUID
- * @param string $sNextTask
- * @param string $sType
- * @return boolean
- */
-
- function newPattern($sProcessUID, $sTaskUID, $sNextTask, $sType) {
- try {
- $oProcess = new Process ( );
- $aFields = $oProcess->load($sProcessUID);
- $oTask = new Task ( );
- $aFields = $oTask->load($sTaskUID);
- $aFields = array();
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(RoutePeer::PRO_UID, $sProcessUID);
- $oCriteria->add(RoutePeer::TAS_UID, $sTaskUID);
- $oCriteria->addAscendingOrderByColumn(RoutePeer::ROU_CASE);
- $oDataset = RoutePeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- $aRow = $oDataset->getRow();
- if (is_array($aRow)) {
- $aFields ['ROU_TYPE_OLD'] = $aRow ['ROU_TYPE'];
- if ($sType == $aFields ['ROU_TYPE_OLD']) {
- switch ($sType) {
- case 'SELECT' :
- $aFields ['GRID_SELECT_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
- $aFields ['GRID_SELECT_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
- $aFields ['GRID_SELECT_TYPE'] ['ROU_CONDITION'] [$aRow ['ROU_CASE']] = $aRow ['ROU_CONDITION'];
- $aFields ['GRID_SELECT_TYPE'] ['ROU_TO_LAST_USER'] [$aRow ['ROU_CASE']] = $aRow ['ROU_TO_LAST_USER'];
- while ($aRow = $oDataset->getRow()) {
- $aFields ['GRID_SELECT_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
- $aFields ['GRID_SELECT_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
- $aFields ['GRID_SELECT_TYPE'] ['ROU_CONDITION'] [$aRow ['ROU_CASE']] = $aRow ['ROU_CONDITION'];
- $aFields ['GRID_SELECT_TYPE'] ['ROU_TO_LAST_USER'] [$aRow ['ROU_CASE']] = $aRow ['ROU_TO_LAST_USER'];
- $oDataset->next();
- }
- break;
- case 'EVALUATE' :
- $aFields ['GRID_EVALUATE_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
- $aFields ['GRID_EVALUATE_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
- $aFields ['GRID_EVALUATE_TYPE'] ['ROU_CONDITION'] [$aRow ['ROU_CASE']] = $aRow ['ROU_CONDITION'];
- $aFields ['GRID_EVALUATE_TYPE'] ['ROU_TO_LAST_USER'] [$aRow ['ROU_CASE']] = $aRow ['ROU_TO_LAST_USER'];
- while ($aRow = $oDataset->getRow()) {
- $aFields ['GRID_EVALUATE_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
- $aFields ['GRID_EVALUATE_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
- $aFields ['GRID_EVALUATE_TYPE'] ['ROU_CONDITION'] [$aRow ['ROU_CASE']] = $aRow ['ROU_CONDITION'];
- $aFields ['GRID_EVALUATE_TYPE'] ['ROU_TO_LAST_USER'] [$aRow ['ROU_CASE']] = $aRow ['ROU_TO_LAST_USER'];
- $oDataset->next();
- }
- break;
- case 'PARALLEL' :
- $aFields ['GRID_PARALLEL_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
- $aFields ['GRID_PARALLEL_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
- while ($aRow = $oDataset->getRow()) {
- $aFields ['GRID_PARALLEL_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
- $aFields ['GRID_PARALLEL_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
- $oDataset->next();
- }
- break;
- case 'PARALLEL-BY-EVALUATION' :
- $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
- $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
- $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_CONDITION'] [$aRow ['ROU_CASE']] = $aRow ['ROU_CONDITION'];
- while ($aRow = $oDataset->getRow()) {
- $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
- $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
- $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_CONDITION'] [$aRow ['ROU_CASE']] = $aRow ['ROU_CONDITION'];
- $oDataset->next();
- }
- break;
- case 'DISCRIMINATOR' :
- $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
- $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
- $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_CONDITION'] [$aRow ['ROU_CASE']] = $aRow ['ROU_CONDITION'];
- $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_OPTIONAL'] [$aRow ['ROU_CASE']] = $aRow ['ROU_OPTIONAL'];
- while ( $aRow = $oDataset->getRow () ) {
- $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
- $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
- $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_CONDITION'] [$aRow ['ROU_CASE']] = $aRow ['ROU_CONDITION'];
- $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_OPTIONAL'] [$aRow ['ROU_CASE']] = $aRow ['ROU_OPTIONAL'];
- $oDataset->next ();
- }
- break;
- }
- } else {
-
+ $aFields ['action'] = 'savePattern';
+ $aFields ['LANG'] = SYS_LANG;
+ $aFields ['PROCESS'] = $sProcessUID;
+ $aFields ['TASK'] = $sTaskUID;
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $G_PUBLISH->AddContent('xmlform', 'xmlform', 'patterns/' . $sXmlform, '', $aFields, '../patterns/patterns_Ajax');
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher();
+ $aMessage = array();
+ $aMessage['MESSAGE'] = $oError->getMessage();
+ $G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', $aMessage );
+ G::RenderPage( 'publish','blank');
+ die;
}
- }
- switch ($sType) {
- case 'SEQUENTIAL' :
- case 'SEC-JOIN' :
- $aFields ['ROU_NEXT_TASK'] = $sNextTask;
- break;
- case 'SELECT' :
- $iRow = (isset($aFields ['GRID_SELECT_TYPE']) ? count($aFields ['GRID_SELECT_TYPE'] ['ROU_UID']) + 1 : 0);
- $aFields ['GRID_SELECT_TYPE'] ['ROU_UID'] [$iRow] = '';
- $aFields ['GRID_SELECT_TYPE'] ['ROU_NEXT_TASK'] [$iRow] = $sNextTask;
- $aFields ['GRID_SELECT_TYPE'] ['ROU_CONDITION'] [$iRow] = '';
- $aFields ['GRID_SELECT_TYPE'] ['ROU_TO_LAST_USER'] [$iRow] = '';
- break;
- case 'EVALUATE' :
- $iRow = (isset($aFields ['GRID_PARALLEL_EVALUATION_TYPE']) ? count($aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_UID']) + 1 : 0);
- $aFields ['GRID_EVALUATE_TYPE'] ['ROU_UID'] [$iRow] = '';
- $aFields ['GRID_EVALUATE_TYPE'] ['ROU_NEXT_TASK'] [$iRow] = $sNextTask;
- $aFields ['GRID_EVALUATE_TYPE'] ['ROU_CONDITION'] [$iRow] = '';
- $aFields ['GRID_EVALUATE_TYPE'] ['ROU_TO_LAST_USER'] [$iRow] = '';
- break;
- case 'PARALLEL' :
- $iRow = (isset($aFields ['GRID_PARALLEL_TYPE']) ? count($aFields ['GRID_PARALLEL_TYPE'] ['ROU_UID']) + 1 : 0);
- $aFields ['GRID_PARALLEL_TYPE'] ['ROU_UID'] [$iRow] = '';
- $aFields ['GRID_PARALLEL_TYPE'] ['ROU_NEXT_TASK'] [$iRow] = $sNextTask;
- $aFields ['GRID_PARALLEL_TYPE'] ['ROU_CONDITION'] [$iRow] = '';
- $aFields ['GRID_PARALLEL_TYPE'] ['ROU_TO_LAST_USER'] [$iRow] = '';
- break;
- case 'PARALLEL-BY-EVALUATION' :
- $iRow = (isset($aFields ['GRID_PARALLEL_EVALUATION_TYPE']) ? count($aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_UID']) + 1 : 0);
- $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_UID'] [$iRow] = '';
- $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_NEXT_TASK'] [$iRow] = $sNextTask;
- $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_CONDITION'] [$iRow] = '';
- $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_TO_LAST_USER'] [$iRow] = '';
- break;
- case 'DISCRIMINATOR' :
- $iRow = (isset ( $aFields ['GRID_DISCRIMINATOR_TYPE'] ) ? count ( $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_UID'] ) + 1 : 0);
- $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_UID'] [$iRow] = '';
- $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_NEXT_TASK'] [$iRow] = $sNextTask;
- $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_CONDITION'] [$iRow] = '';
- $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_TO_LAST_USER'] [$iRow] = '';
- break;
- }
- $aFields ['action'] = 'savePattern';
- $aFields ['LANG'] = SYS_LANG;
- $aFields ['PROCESS'] = $sProcessUID;
- $aFields ['TASK'] = $sTaskUID;
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('xmlform', 'xmlform', 'patterns/patterns_Current', '', $aFields, '../patterns/patterns_Ajax');
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
}
- }
- /**
- * getNumberOfRoutes
- *
- * @param string $sProcessUID Default value empty
- * @param string $sTaskUID Default value empty
- * @param string $sNextTask Default value empty
- * @param string $sType Default value empty
- * @return intenger ( int ) $aRow ['ROUTE_NUMBER']
- */
- function getNumberOfRoutes($sProcessUID = '', $sTaskUID = '', $sNextTask = '', $sType = '') {
- try {
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn('COUNT(*) AS ROUTE_NUMBER');
- $oCriteria->add(RoutePeer::PRO_UID, $sProcessUID);
- $oCriteria->add(RoutePeer::TAS_UID, $sTaskUID);
- $oCriteria->add(RoutePeer::ROU_NEXT_TASK, $sNextTask);
- $oCriteria->add(RoutePeer::ROU_TYPE, $sType);
- $oDataset = RoutePeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- $aRow = $oDataset->getRow();
- return (int) $aRow ['ROUTE_NUMBER'];
- } catch (Exception $oError) {
- throw ($oError);
+ /*
+ * Show the new pattern form
+ * @param string $sProcessUID
+ * @param string $sTaskUID
+ * @param string $sNextTask
+ * @param string $sType
+ * @return boolean
+ */
+ public function newPattern($sProcessUID, $sTaskUID, $sNextTask, $sType)
+ {
+ try {
+ $oProcess = new Process ( );
+ $aFields = $oProcess->load($sProcessUID);
+ $oTask = new Task ( );
+ $aFields = $oTask->load($sTaskUID);
+ $aFields = array();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(RoutePeer::PRO_UID, $sProcessUID);
+ $oCriteria->add(RoutePeer::TAS_UID, $sTaskUID);
+ $oCriteria->addAscendingOrderByColumn(RoutePeer::ROU_CASE);
+ $oDataset = RoutePeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ $aRow = $oDataset->getRow();
+ if (is_array($aRow)) {
+ $aFields ['ROU_TYPE_OLD'] = $aRow ['ROU_TYPE'];
+ if ($sType == $aFields ['ROU_TYPE_OLD']) {
+ switch ($sType) {
+ case 'SELECT' :
+ $aFields ['GRID_SELECT_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
+ $aFields ['GRID_SELECT_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
+ $aFields ['GRID_SELECT_TYPE'] ['ROU_CONDITION'] [$aRow ['ROU_CASE']] = $aRow ['ROU_CONDITION'];
+ $aFields ['GRID_SELECT_TYPE'] ['ROU_TO_LAST_USER'] [$aRow ['ROU_CASE']] = $aRow ['ROU_TO_LAST_USER'];
+ while ($aRow = $oDataset->getRow()) {
+ $aFields ['GRID_SELECT_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
+ $aFields ['GRID_SELECT_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
+ $aFields ['GRID_SELECT_TYPE'] ['ROU_CONDITION'] [$aRow ['ROU_CASE']] = $aRow ['ROU_CONDITION'];
+ $aFields ['GRID_SELECT_TYPE'] ['ROU_TO_LAST_USER'] [$aRow ['ROU_CASE']] = $aRow ['ROU_TO_LAST_USER'];
+ $oDataset->next();
+ }
+ break;
+ case 'EVALUATE' :
+ $aFields ['GRID_EVALUATE_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
+ $aFields ['GRID_EVALUATE_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
+ $aFields ['GRID_EVALUATE_TYPE'] ['ROU_CONDITION'] [$aRow ['ROU_CASE']] = $aRow ['ROU_CONDITION'];
+ $aFields ['GRID_EVALUATE_TYPE'] ['ROU_TO_LAST_USER'] [$aRow ['ROU_CASE']] = $aRow ['ROU_TO_LAST_USER'];
+ while ($aRow = $oDataset->getRow()) {
+ $aFields ['GRID_EVALUATE_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
+ $aFields ['GRID_EVALUATE_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
+ $aFields ['GRID_EVALUATE_TYPE'] ['ROU_CONDITION'] [$aRow ['ROU_CASE']] = $aRow ['ROU_CONDITION'];
+ $aFields ['GRID_EVALUATE_TYPE'] ['ROU_TO_LAST_USER'] [$aRow ['ROU_CASE']] = $aRow ['ROU_TO_LAST_USER'];
+ $oDataset->next();
+ }
+ break;
+ case 'PARALLEL' :
+ $aFields ['GRID_PARALLEL_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
+ $aFields ['GRID_PARALLEL_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
+ while ($aRow = $oDataset->getRow()) {
+ $aFields ['GRID_PARALLEL_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
+ $aFields ['GRID_PARALLEL_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
+ $oDataset->next();
+ }
+ break;
+ case 'PARALLEL-BY-EVALUATION' :
+ $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
+ $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
+ $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_CONDITION'] [$aRow ['ROU_CASE']] = $aRow ['ROU_CONDITION'];
+ while ($aRow = $oDataset->getRow()) {
+ $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
+ $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
+ $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_CONDITION'] [$aRow ['ROU_CASE']] = $aRow ['ROU_CONDITION'];
+ $oDataset->next();
+ }
+ break;
+ case 'DISCRIMINATOR' :
+ $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
+ $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
+ $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_CONDITION'] [$aRow ['ROU_CASE']] = $aRow ['ROU_CONDITION'];
+ $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_OPTIONAL'] [$aRow ['ROU_CASE']] = $aRow ['ROU_OPTIONAL'];
+ while ( $aRow = $oDataset->getRow () ) {
+ $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_UID'] [$aRow ['ROU_CASE']] = $aRow ['ROU_UID'];
+ $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_NEXT_TASK'] [$aRow ['ROU_CASE']] = $aRow ['ROU_NEXT_TASK'];
+ $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_CONDITION'] [$aRow ['ROU_CASE']] = $aRow ['ROU_CONDITION'];
+ $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_OPTIONAL'] [$aRow ['ROU_CASE']] = $aRow ['ROU_OPTIONAL'];
+ $oDataset->next ();
+ }
+ break;
+ }
+ } else {
+
+ }
+ }
+ switch ($sType) {
+ case 'SEQUENTIAL' :
+ case 'SEC-JOIN' :
+ $aFields ['ROU_NEXT_TASK'] = $sNextTask;
+ break;
+ case 'SELECT' :
+ $iRow = (isset($aFields ['GRID_SELECT_TYPE']) ? count($aFields ['GRID_SELECT_TYPE'] ['ROU_UID']) + 1 : 0);
+ $aFields ['GRID_SELECT_TYPE'] ['ROU_UID'] [$iRow] = '';
+ $aFields ['GRID_SELECT_TYPE'] ['ROU_NEXT_TASK'] [$iRow] = $sNextTask;
+ $aFields ['GRID_SELECT_TYPE'] ['ROU_CONDITION'] [$iRow] = '';
+ $aFields ['GRID_SELECT_TYPE'] ['ROU_TO_LAST_USER'] [$iRow] = '';
+ break;
+ case 'EVALUATE' :
+ $iRow = (isset($aFields ['GRID_PARALLEL_EVALUATION_TYPE']) ? count($aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_UID']) + 1 : 0);
+ $aFields ['GRID_EVALUATE_TYPE'] ['ROU_UID'] [$iRow] = '';
+ $aFields ['GRID_EVALUATE_TYPE'] ['ROU_NEXT_TASK'] [$iRow] = $sNextTask;
+ $aFields ['GRID_EVALUATE_TYPE'] ['ROU_CONDITION'] [$iRow] = '';
+ $aFields ['GRID_EVALUATE_TYPE'] ['ROU_TO_LAST_USER'] [$iRow] = '';
+ break;
+ case 'PARALLEL' :
+ $iRow = (isset($aFields ['GRID_PARALLEL_TYPE']) ? count($aFields ['GRID_PARALLEL_TYPE'] ['ROU_UID']) + 1 : 0);
+ $aFields ['GRID_PARALLEL_TYPE'] ['ROU_UID'] [$iRow] = '';
+ $aFields ['GRID_PARALLEL_TYPE'] ['ROU_NEXT_TASK'] [$iRow] = $sNextTask;
+ $aFields ['GRID_PARALLEL_TYPE'] ['ROU_CONDITION'] [$iRow] = '';
+ $aFields ['GRID_PARALLEL_TYPE'] ['ROU_TO_LAST_USER'] [$iRow] = '';
+ break;
+ case 'PARALLEL-BY-EVALUATION' :
+ $iRow = (isset($aFields ['GRID_PARALLEL_EVALUATION_TYPE']) ? count($aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_UID']) + 1 : 0);
+ $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_UID'] [$iRow] = '';
+ $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_NEXT_TASK'] [$iRow] = $sNextTask;
+ $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_CONDITION'] [$iRow] = '';
+ $aFields ['GRID_PARALLEL_EVALUATION_TYPE'] ['ROU_TO_LAST_USER'] [$iRow] = '';
+ break;
+ case 'DISCRIMINATOR' :
+ $iRow = (isset ( $aFields ['GRID_DISCRIMINATOR_TYPE'] ) ? count ( $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_UID'] ) + 1 : 0);
+ $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_UID'] [$iRow] = '';
+ $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_NEXT_TASK'] [$iRow] = $sNextTask;
+ $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_CONDITION'] [$iRow] = '';
+ $aFields ['GRID_DISCRIMINATOR_TYPE'] ['ROU_TO_LAST_USER'] [$iRow] = '';
+ break;
+ }
+ $aFields ['action'] = 'savePattern';
+ $aFields ['LANG'] = SYS_LANG;
+ $aFields ['PROCESS'] = $sProcessUID;
+ $aFields ['TASK'] = $sTaskUID;
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $G_PUBLISH->AddContent('xmlform', 'xmlform', 'patterns/patterns_Current', '', $aFields, '../patterns/patterns_Ajax');
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
}
- }
- /**
- * saveNewPattern
- *
- * @param string $sProcessUID Default value empty
- * @param string $sTaskUID Default value empty
- * @param string $sNextTask Default value empty
- * @param string $sType Default value empty
- * @param boolean $sDelete
- * @return array void
- */
- function saveNewPattern($sProcessUID = '', $sTaskUID = '', $sNextTask = '', $sType = '', $sDelete='') {
- try {
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn('COUNT(*) AS ROUTE_NUMBER');
- $oCriteria->addSelectColumn('GAT_UID AS GATEWAY_UID');
- $oCriteria->add(RoutePeer::PRO_UID, $sProcessUID);
- $oCriteria->add(RoutePeer::TAS_UID, $sTaskUID);
- $oCriteria->add(RoutePeer::ROU_TYPE, $sType);
- $oDataset = RoutePeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- $aRow = $oDataset->getRow();
- $aFields ['PRO_UID'] = $sProcessUID;
- $aFields ['TAS_UID'] = $sTaskUID;
- $aFields ['ROU_NEXT_TASK'] = $sNextTask;
- $aFields ['ROU_TYPE'] = $sType;
- $aFields ['ROU_CASE'] = (int) $aRow ['ROUTE_NUMBER'] + 1;
-
- $sGatewayUID = $aRow['GATEWAY_UID'];
-
- if($sDelete && $sGatewayUID != ''){
- $oGateway = new Gateway ( );
- $oGateway->remove($sGatewayUID);
- }
- //Getting Gateway UID after saving gateway
- //if($sType != 'SEQUENTIAL' && $sGatewayUID == '' && $sDelete == '1')
- if($sType != 'SEQUENTIAL')
- {
- $oProcessMap = new processMap();
- $sGatewayUID = $oProcessMap->saveNewGateway($sProcessUID, $sTaskUID, $sNextTask);
- }
-
- $aFields ['GAT_UID'] = (isset($sGatewayUID))?$sGatewayUID:'';
- $oRoute = new Route ( );
- $oRoute->create($aFields);
- } catch (Exception $oError) {
- throw ($oError);
+ /**
+ * getNumberOfRoutes
+ *
+ * @param string $sProcessUID Default value empty
+ * @param string $sTaskUID Default value empty
+ * @param string $sNextTask Default value empty
+ * @param string $sType Default value empty
+ * @return intenger ( int ) $aRow ['ROUTE_NUMBER']
+ */
+ public function getNumberOfRoutes($sProcessUID = '', $sTaskUID = '', $sNextTask = '', $sType = '')
+ {
+ try {
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn('COUNT(*) AS ROUTE_NUMBER');
+ $oCriteria->add(RoutePeer::PRO_UID, $sProcessUID);
+ $oCriteria->add(RoutePeer::TAS_UID, $sTaskUID);
+ $oCriteria->add(RoutePeer::ROU_NEXT_TASK, $sNextTask);
+ $oCriteria->add(RoutePeer::ROU_TYPE, $sType);
+ $oDataset = RoutePeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ $aRow = $oDataset->getRow();
+ return (int) $aRow ['ROUTE_NUMBER'];
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
}
- }
- /**
- * saveNewGateway
- *
- * @param string $sProcessUID Default value empty
- * @param string $sTaskUID Default value empty
- * @param string $sNextTask Default value empty
- * @param string $sType Default value empty (Route Type)
- * @return string $sGatewayUID
- */
- function saveNewGateway($sProcessUID = '', $sTaskUID = '', $sNextTask = '', $sType = '') {
- try {
- $oTask = new Task();
- $aTaskDetails = $oTask->load($sTaskUID);
- $aFields ['PRO_UID'] = $sProcessUID;
- $aFields ['TAS_UID'] = $sTaskUID;
- $aFields ['GAT_NEXT_TASK'] = $sNextTask;
- $aFields ['GAT_X'] = $aTaskDetails['TAS_POSX'] + $aTaskDetails['TAS_WIDTH']/2;
- $aFields ['GAT_Y'] = $aTaskDetails['TAS_POSY'] + $aTaskDetails['TAS_HEIGHT'] + 10;
+ /**
+ * saveNewPattern
+ *
+ * @param string $sProcessUID Default value empty
+ * @param string $sTaskUID Default value empty
+ * @param string $sNextTask Default value empty
+ * @param string $sType Default value empty
+ * @param boolean $sDelete
+ * @return array void
+ */
+ public function saveNewPattern($sProcessUID = '', $sTaskUID = '', $sNextTask = '', $sType = '', $sDelete='')
+ {
+ try {
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn('COUNT(*) AS ROUTE_NUMBER');
+ $oCriteria->addSelectColumn('GAT_UID AS GATEWAY_UID');
+ $oCriteria->add(RoutePeer::PRO_UID, $sProcessUID);
+ $oCriteria->add(RoutePeer::TAS_UID, $sTaskUID);
+ $oCriteria->add(RoutePeer::ROU_TYPE, $sType);
+ $oDataset = RoutePeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ $aRow = $oDataset->getRow();
+ $aFields ['PRO_UID'] = $sProcessUID;
+ $aFields ['TAS_UID'] = $sTaskUID;
+ $aFields ['ROU_NEXT_TASK'] = $sNextTask;
+ $aFields ['ROU_TYPE'] = $sType;
+ $aFields ['ROU_CASE'] = (int) $aRow ['ROUTE_NUMBER'] + 1;
- switch($sType)
- {
- case 'PARALLEL':
- $aFields ['GAT_TYPE'] = 'bpmnGatewayParallel';
- break;
- case 'SEC-JOIN':
- $aFields ['GAT_TYPE'] = 'bpmnGatewayParallel';
- break;
- case 'EVALUATE':
- $aFields ['GAT_TYPE'] = 'bpmnGatewayExclusiveData';
- break;
- case 'PARALLEL-BY-EVALUATION':
- $aFields ['GAT_TYPE'] = 'bpmnGatewayInclusive';
- break;
- case 'SELECT':
- $aFields ['GAT_TYPE'] = 'bpmnGatewayExclusiveData';
- break;
- case 'DISCRIMINATOR':
- $aFields ['GAT_TYPE'] = 'bpmnGatewayComplex';
- break;
- }
+ $sGatewayUID = $aRow['GATEWAY_UID'];
- $oGateway = new Gateway ( );
+ if ($sDelete && $sGatewayUID != ''){
+ $oGateway = new Gateway ( );
+ $oGateway->remove($sGatewayUID);
+ }
+ //Getting Gateway UID after saving gateway
+ //if ($sType != 'SEQUENTIAL' && $sGatewayUID == '' && $sDelete == '1')
+ if ($sType != 'SEQUENTIAL') {
+ $oProcessMap = new processMap();
+ $sGatewayUID = $oProcessMap->saveNewGateway($sProcessUID, $sTaskUID, $sNextTask);
+ }
- $sGatewayUID = $oGateway->create($aFields);
-
- return $sGatewayUID;
-
- } catch (Exception $oError) {
- throw ($oError);
+ $aFields ['GAT_UID'] = (isset($sGatewayUID))?$sGatewayUID:'';
+ $oRoute = new Route ( );
+ $oRoute->create($aFields);
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
}
- }
- /*
- * Delete a derivation rule
- * @param string $sTaskUID
- * @return boolean
- */
+ /**
+ * saveNewGateway
+ *
+ * @param string $sProcessUID Default value empty
+ * @param string $sTaskUID Default value empty
+ * @param string $sNextTask Default value empty
+ * @param string $sType Default value empty (Route Type)
+ * @return string $sGatewayUID
+ */
+ public function saveNewGateway($sProcessUID = '', $sTaskUID = '', $sNextTask = '', $sType = '')
+ {
+ try {
+ $oTask = new Task();
+ $aTaskDetails = $oTask->load($sTaskUID);
+ $aFields ['PRO_UID'] = $sProcessUID;
+ $aFields ['TAS_UID'] = $sTaskUID;
+ $aFields ['GAT_NEXT_TASK'] = $sNextTask;
+ $aFields ['GAT_X'] = $aTaskDetails['TAS_POSX'] + $aTaskDetails['TAS_WIDTH']/2;
+ $aFields ['GAT_Y'] = $aTaskDetails['TAS_POSY'] + $aTaskDetails['TAS_HEIGHT'] + 10;
- function deleteDerivation($sTaskUID = '') {
- try {
- $oTask = new Task ( );
- $aFields = $oTask->load($sTaskUID);
- $oCriteria = new Criteria('workflow');
- $oCriteria->add(RoutePeer::TAS_UID, $sTaskUID);
- RoutePeer::doDelete($oCriteria);
- return true;
- return true;
- } catch (Exception $oError) {
- throw ($oError);
+ switch($sType)
+ {
+ case 'PARALLEL':
+ $aFields ['GAT_TYPE'] = 'bpmnGatewayParallel';
+ break;
+ case 'SEC-JOIN':
+ $aFields ['GAT_TYPE'] = 'bpmnGatewayParallel';
+ break;
+ case 'EVALUATE':
+ $aFields ['GAT_TYPE'] = 'bpmnGatewayExclusiveData';
+ break;
+ case 'PARALLEL-BY-EVALUATION':
+ $aFields ['GAT_TYPE'] = 'bpmnGatewayInclusive';
+ break;
+ case 'SELECT':
+ $aFields ['GAT_TYPE'] = 'bpmnGatewayExclusiveData';
+ break;
+ case 'DISCRIMINATOR':
+ $aFields ['GAT_TYPE'] = 'bpmnGatewayComplex';
+ break;
+ }
+
+ $oGateway = new Gateway ( );
+ $sGatewayUID = $oGateway->create($aFields);
+ return $sGatewayUID;
+
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
}
- }
- /**
- * getConditionProcessList
- *
- * @return object $oCriteria
- */
- function getConditionProcessList() {
- $aProcesses = array();
- $aProcesses [] = array('PRO_UID' => 'char', 'PRO_TITLE' => 'char', 'PRO_DESCRIPTION' => 'char', 'PRO_STATUS' => 'char', 'PRO_CATEGORY' => 'char', 'PRO_CATEGORY_LABEL' => 'char');
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(ProcessPeer::PRO_UID);
- $oCriteria->add(ProcessPeer::PRO_STATUS, 'DISABLED', Criteria::NOT_EQUAL);
- $oDataset = ProcessPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
-
-
-
- $oDataset->next();
- $oProcess = new Process ( );
- while ($aRow = $oDataset->getRow()) {
- $aProcess = $oProcess->load($aRow ['PRO_UID']);
- $aProcesses [] = array('PRO_UID' => $aProcess ['PRO_UID'], 'PRO_TITLE' => $aProcess ['PRO_TITLE'], 'PRO_DESCRIPTION' => $aProcess ['PRO_DESCRIPTION'], 'PRO_STATUS' => ($aProcess ['PRO_STATUS'] == 'ACTIVE' ? G::LoadTranslation('ID_ACTIVE') : G::LoadTranslation('ID_INACTIVE')), 'PRO_CATEGORY' => $aProcess ['PRO_CATEGORY'], 'PRO_CATEGORY_LABEL' => $aProcess ['PRO_CATEGORY_LABEL']);
- $oDataset->next();
+ /*
+ * Delete a derivation rule
+ * @param string $sTaskUID
+ * @return boolean
+ */
+ public function deleteDerivation($sTaskUID = '')
+ {
+ try {
+ $oTask = new Task ( );
+ $aFields = $oTask->load($sTaskUID);
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->add(RoutePeer::TAS_UID, $sTaskUID);
+ RoutePeer::doDelete($oCriteria);
+ return true;
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
}
- global $_DBArray;
- $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
- $_DBArray ['processes'] = $aProcesses;
- $_SESSION ['_DBArray'] = $_DBArray;
- G::LoadClass('ArrayPeer');
- $oCriteria = new Criteria('dbarray');
- $oCriteria->setDBArrayTable('processes');
- return $oCriteria;
- }
- /*
- * Show the dynaforms for the supervisors
- * @param string $sProcessUID
- * @return boolean
- */
+ /**
+ * getConditionProcessList
+ *
+ * @return object $oCriteria
+ */
+ public function getConditionProcessList()
+ {
+ $aProcesses = array();
+ $aProcesses [] = array('PRO_UID' => 'char', 'PRO_TITLE' => 'char', 'PRO_DESCRIPTION' => 'char', 'PRO_STATUS' => 'char', 'PRO_CATEGORY' => 'char', 'PRO_CATEGORY_LABEL' => 'char');
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(ProcessPeer::PRO_UID);
+ $oCriteria->add(ProcessPeer::PRO_STATUS, 'DISABLED', Criteria::NOT_EQUAL);
+ $oDataset = ProcessPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- function supervisorDynaforms($sProcessUID) {
- try {
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'dynaforms/dynaforms_Supervisor', $this->getSupervisorDynaformsCriteria($sProcessUID), array('PRO_UID' => $sProcessUID));
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
+ $oDataset->next();
+ $oProcess = new Process ( );
+ while ($aRow = $oDataset->getRow()) {
+ $aProcess = $oProcess->load($aRow ['PRO_UID']);
+ $aProcesses [] = array('PRO_UID' => $aProcess ['PRO_UID'], 'PRO_TITLE' => $aProcess ['PRO_TITLE'], 'PRO_DESCRIPTION' => $aProcess ['PRO_DESCRIPTION'], 'PRO_STATUS' => ($aProcess ['PRO_STATUS'] == 'ACTIVE' ? G::LoadTranslation('ID_ACTIVE') : G::LoadTranslation('ID_INACTIVE')), 'PRO_CATEGORY' => $aProcess ['PRO_CATEGORY'], 'PRO_CATEGORY_LABEL' => $aProcess ['PRO_CATEGORY_LABEL']);
+ $oDataset->next();
+ }
+ global $_DBArray;
+ $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
+ $_DBArray ['processes'] = $aProcesses;
+ $_SESSION ['_DBArray'] = $_DBArray;
+ G::LoadClass('ArrayPeer');
+ $oCriteria = new Criteria('dbarray');
+ $oCriteria->setDBArrayTable('processes');
+ return $oCriteria;
}
- }
- /**
- * supervisorInputs
- *
- * @param string $sProcessUID
- * @return boolean true
- * throw Exception $oError
- */
- function supervisorInputs($sProcessUID) {
- try {
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'inputdocs/inputdocs_Supervisor', $this->getSupervisorInputsCriteria($sProcessUID), array('PRO_UID' => $sProcessUID));
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
+ /*
+ * Show the dynaforms for the supervisors
+ * @param string $sProcessUID
+ * @return boolean
+ */
+ public function supervisorDynaforms($sProcessUID)
+ {
+ try {
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'dynaforms/dynaforms_Supervisor', $this->getSupervisorDynaformsCriteria($sProcessUID), array('PRO_UID' => $sProcessUID));
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
}
- }
- /**
- * webEntry
- *
- * @param string $sProcessUID
- * @return boolean true
- * throw Exception $oError
- */
- function webEntry($sProcessUID) {
- try {
- global $G_PUBLISH;
- global $G_FORM;
- $G_PUBLISH = new Publisher ( );
+ /**
+ * supervisorInputs
+ *
+ * @param string $sProcessUID
+ * @return boolean true
+ * throw Exception $oError
+ */
+ public function supervisorInputs($sProcessUID)
+ {
+ try {
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'inputdocs/inputdocs_Supervisor', $this->getSupervisorInputsCriteria($sProcessUID), array('PRO_UID' => $sProcessUID));
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
- if (G::is_https ())
- $http = 'https://';
- else
- $http = 'http://';
+ /**
+ * webEntry
+ *
+ * @param string $sProcessUID
+ * @return boolean true
+ * throw Exception $oError
+ */
+ public function webEntry($sProcessUID)
+ {
+ try {
+ global $G_PUBLISH;
+ global $G_FORM;
+ $G_PUBLISH = new Publisher ( );
- $link = $http . $_SERVER ['HTTP_HOST'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/' . $sProcessUID . '/';
+ if (G::is_https ())
+ $http = 'https://';
+ else
+ $http = 'http://';
- $row = array();
- $c = 0;
+ $link = $http . $_SERVER ['HTTP_HOST'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/' . $sProcessUID . '/';
- /*
- $oTask = new Task ( );
- $TaskFields = $oTask->kgetassigType ( $sProcessUID , $tas='');
- */
- $TaskFields ['TAS_ASSIGN_TYPE'] = '';
- $row [] = array('W_TITLE' => '', 'W_DELETE' => '', 'TAS_ASSIGN_TYPE' => $TaskFields ['TAS_ASSIGN_TYPE']);
+ $row = array();
+ $c = 0;
- if (is_dir(PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "public" . PATH_SEP . $sProcessUID)) {
- $dir = opendir(PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "public" . PATH_SEP . $sProcessUID);
- while ($archivo = readdir($dir)) { //print $archivo." ****
";
- if ($archivo != '.') {
- if ($archivo != '..') {
- $one = 0;
- $two = 0;
+ /*
+ $oTask = new Task ( );
+ $TaskFields = $oTask->kgetassigType ( $sProcessUID , $tas='');
+ */
+ $TaskFields ['TAS_ASSIGN_TYPE'] = '';
+ $row [] = array('W_TITLE' => '', 'W_DELETE' => '', 'TAS_ASSIGN_TYPE' => $TaskFields ['TAS_ASSIGN_TYPE']);
- $alink = $link . $archivo;
+ if (is_dir(PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "public" . PATH_SEP . $sProcessUID)) {
+ $dir = opendir(PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "public" . PATH_SEP . $sProcessUID);
+ while ($archivo = readdir($dir)) { //print $archivo." ****
";
+ if ($archivo != '.') {
+ if ($archivo != '..') {
+ $one = 0;
+ $two = 0;
- $one = count(explode('wsClient.php', $archivo));
- $two = count(explode('Post.php', $archivo));
+ $alink = $link . $archivo;
- if ($one == 1 && $two == 1) {
- $arlink = "" . $alink . "";
- $linkdelete = sprintf("delete", $alink, $archivo, $sProcessUID);
- $row [] = array('W_LINK' => $arlink, 'W_FILENAME' => $archivo, 'W_PRO_UID' => $sProcessUID);
+ $one = count(explode('wsClient.php', $archivo));
+ $two = count(explode('Post.php', $archivo));
+
+ if ($one == 1 && $two == 1) {
+ $arlink = "" . $alink . "";
+ $linkdelete = sprintf("delete", $alink, $archivo, $sProcessUID);
+ $row [] = array('W_LINK' => $arlink, 'W_FILENAME' => $archivo, 'W_PRO_UID' => $sProcessUID);
+ }
+ }
}
}
}
+ global $_DBArray;
+ $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
+ $_DBArray ['reports'] = $row;
+ $_SESSION ['_DBArray'] = $_DBArray;
+ G::LoadClass('ArrayPeer');
+ $oCriteria = new Criteria('dbarray');
+ $oCriteria->setDBArrayTable('reports');
+ //if ($TaskFields['TAS_ASSIGN_TYPE'] == 'BALANCED') {
+ //$G_PUBLISH->AddContent('xmlform', 'xmlform', 'dynaforms/dynaforms_WebEntry', '', array('PRO_UID' => $sProcessUID, 'LANG' => SYS_LANG));
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'dynaforms/dynaforms_WebEntryList', $oCriteria, array('PRO_UID' => $sProcessUID, 'LANG' => SYS_LANG));
+ /* }else{
+ $aMessage['MESSAGE'] = G::loadTranslation( 'WEBEN_ONLY_BALANCED' );
+ $G_PUBLISH->AddContent ( 'xmlform', 'xmlform', 'login/showMessage', '',$aMessage );
+
+ } */
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
}
- }
- global $_DBArray;
- $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
- $_DBArray ['reports'] = $row;
- $_SESSION ['_DBArray'] = $_DBArray;
- G::LoadClass('ArrayPeer');
- $oCriteria = new Criteria('dbarray');
- $oCriteria->setDBArrayTable('reports');
- //if ($TaskFields['TAS_ASSIGN_TYPE'] == 'BALANCED') {
- //$G_PUBLISH->AddContent('xmlform', 'xmlform', 'dynaforms/dynaforms_WebEntry', '', array('PRO_UID' => $sProcessUID, 'LANG' => SYS_LANG));
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'dynaforms/dynaforms_WebEntryList', $oCriteria, array('PRO_UID' => $sProcessUID, 'LANG' => SYS_LANG));
- /* }else{
- $aMessage['MESSAGE'] = G::loadTranslation( 'WEBEN_ONLY_BALANCED' );
- $G_PUBLISH->AddContent ( 'xmlform', 'xmlform', 'login/showMessage', '',$aMessage );
-
- } */
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /**
- * webEntry_new
- *
- * @param string $sProcessUID
- * @return boolean true
- * throw Exception $oError
- */
- function webEntry_new($sProcessUID) {
- try {
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('xmlform', 'xmlform', 'dynaforms/dynaforms_WebEntry', '', array('PRO_UID' => $sProcessUID, 'LANG' => SYS_LANG));
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
-/**
- * webEntryByTask
- *
- * @param string $sProcessUID
- * @return boolean true
- * throw Exception $oError
- */
-// function webEntryByTask($sProcessUID, $sEventUID) {
-// $event = new Event();
-// $event->load($sEventUID);
-// $task_uid = $event->getEvnTasUidTo();
-// $tasks = new Tasks();
-// $tasks->get
-// $link = $sProcessUID.'/'.str_replace ( ' ', '_', str_replace ( '/', '_',$task_uid));
-//
-// return $link;
-// }
-
- /*
- * Return the supervisors dynaforms list criteria object
- * @param string $sProcessUID
- * @return object
- */
-
- function getSupervisorDynaformsCriteria($sProcessUID = '') {
- $sDelimiter = DBAdapter::getStringDelimiter ();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(StepSupervisorPeer::STEP_UID);
- $oCriteria->addSelectColumn(StepSupervisorPeer::PRO_UID);
- $oCriteria->addSelectColumn(StepSupervisorPeer::STEP_TYPE_OBJ);
- $oCriteria->addSelectColumn(StepSupervisorPeer::STEP_UID_OBJ);
- $oCriteria->addSelectColumn(StepSupervisorPeer::STEP_POSITION);
- $oCriteria->addAsColumn('DYN_TITLE', 'C.CON_VALUE');
- $oCriteria->addAlias('C', 'CONTENT');
- $aConditions = array();
- $aConditions [] = array(StepSupervisorPeer::STEP_UID_OBJ, DynaformPeer::DYN_UID);
- $aConditions [] = array(StepSupervisorPeer::STEP_TYPE_OBJ, $sDelimiter . 'DYNAFORM' . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $aConditions = array();
- $aConditions [] = array(DynaformPeer::DYN_UID, 'C.CON_ID');
- $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'DYN_TITLE' . $sDelimiter);
- $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(StepSupervisorPeer::PRO_UID, $sProcessUID);
- $oCriteria->add(StepSupervisorPeer::STEP_TYPE_OBJ, 'DYNAFORM');
- $oCriteria->addAscendingOrderByColumn(StepSupervisorPeer::STEP_POSITION);
- return $oCriteria;
- }
-
- /*
- * Return the supervisors dynaforms list criteria object
- * @param string $sProcessUID
- * @return object
- */
-
- function getSupervisorInputsCriteria($sProcessUID = '') {
- $sDelimiter = DBAdapter::getStringDelimiter ();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(StepSupervisorPeer::STEP_UID);
- $oCriteria->addSelectColumn(StepSupervisorPeer::PRO_UID);
- $oCriteria->addSelectColumn(StepSupervisorPeer::STEP_TYPE_OBJ);
- $oCriteria->addSelectColumn(StepSupervisorPeer::STEP_UID_OBJ);
- $oCriteria->addSelectColumn(StepSupervisorPeer::STEP_POSITION);
- $oCriteria->addAsColumn('INP_DOC_TITLE', 'C.CON_VALUE');
- $oCriteria->addAlias('C', 'CONTENT');
- $aConditions = array();
- $aConditions [] = array(StepSupervisorPeer::STEP_UID_OBJ, InputDocumentPeer::INP_DOC_UID);
- $aConditions [] = array(StepSupervisorPeer::STEP_TYPE_OBJ, $sDelimiter . 'INPUT_DOCUMENT' . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $aConditions = array();
- $aConditions [] = array(InputDocumentPeer::INP_DOC_UID, 'C.CON_ID');
- $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter);
- $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(StepSupervisorPeer::PRO_UID, $sProcessUID);
- $oCriteria->add(StepSupervisorPeer::STEP_TYPE_OBJ, 'INPUT_DOCUMENT');
- $oCriteria->addAscendingOrderByColumn(StepSupervisorPeer::STEP_POSITION);
- return $oCriteria;
- }
-
- /*
- * Show the available dynaforms for the supervisors
- * @param string $sProcessUID
- * @return boolean
- */
-
- function availableSupervisorDynaforms($sProcessUID) {
- try {
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'dynaforms/dynaforms_AvailableSupervisorDynaforms', $this->getAvailableSupervisorDynaformsCriteria($sProcessUID), array('PRO_UID' => $sProcessUID));
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Show the available input documents for the supervisors
- * @param string $sProcessUID
- * @return boolean
- */
-
- function availableSupervisorInputs($sProcessUID) {
- try {
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'inputdocs/inputdocs_AvailableSupervisorInputs', $this->getAvailableSupervisorInputsCriteria($sProcessUID), array('PRO_UID' => $sProcessUID));
- G::RenderPage('publish', 'raw');
- return true;
- } catch (Exception $oError) {
- throw ($oError);
- }
- }
-
- /*
- * Return the available supervisors dynaforms list criteria object
- * @param string $sProcessUID
- * @return object
- */
-
- function getAvailableSupervisorDynaformsCriteria($sProcessUID = '') {
- $oCriteria = $this->getSupervisorDynaformsCriteria($sProcessUID);
- $oDataset = StepSupervisorPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- $aUIDS = array();
- while ($aRow = $oDataset->getRow()) {
- $aUIDS [] = $aRow ['STEP_UID_OBJ'];
- $oDataset->next();
- }
- $sDelimiter = DBAdapter::getStringDelimiter ();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(DynaformPeer::DYN_UID);
- $oCriteria->addSelectColumn(DynaformPeer::PRO_UID);
- $oCriteria->addAsColumn('DYN_TITLE', 'C.CON_VALUE');
- $oCriteria->addAlias('C', 'CONTENT');
- $aConditions = array();
- $aConditions [] = array(DynaformPeer::DYN_UID, 'C.CON_ID');
- $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'DYN_TITLE' . $sDelimiter);
- $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(DynaformPeer::PRO_UID, $sProcessUID);
- $oCriteria->add(DynaformPeer::DYN_TYPE, 'xmlform');
- $oCriteria->add(DynaformPeer::DYN_UID, $aUIDS, Criteria::NOT_IN);
- return $oCriteria;
- }
-
- /*
- * Return the available supervisors input documents list criteria object
- * @param string $sProcessUID
- * @return object
- */
-
- function getAvailableSupervisorInputsCriteria($sProcessUID = '') {
- $oCriteria = $this->getSupervisorInputsCriteria($sProcessUID);
- $oDataset = StepSupervisorPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- $aUIDS = array();
- while ($aRow = $oDataset->getRow()) {
- $aUIDS [] = $aRow ['STEP_UID_OBJ'];
- $oDataset->next();
- }
- $sDelimiter = DBAdapter::getStringDelimiter ();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(InputDocumentPeer::INP_DOC_UID);
- $oCriteria->addSelectColumn(InputDocumentPeer::PRO_UID);
- $oCriteria->addAsColumn('INP_DOC_TITLE', 'C.CON_VALUE');
- $oCriteria->addAlias('C', 'CONTENT');
- $aConditions = array();
- $aConditions [] = array(InputDocumentPeer::INP_DOC_UID, 'C.CON_ID');
- $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter);
- $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(InputDocumentPeer::PRO_UID, $sProcessUID);
- $oCriteria->add(InputDocumentPeer::INP_DOC_UID, $aUIDS, Criteria::NOT_IN);
- return $oCriteria;
- }
-
- /**
- * assignSupervisorStep
- *
- * @param string $sProcessUID
- * @param string $sObjType
- * @param string $sObjUID
- * @return void
- */
- function assignSupervisorStep($sProcessUID, $sObjType, $sObjUID) {
- $oStepSupervisor = new StepSupervisor ( );
- $oStepSupervisor->create(array('PRO_UID' => $sProcessUID, 'STEP_TYPE_OBJ' => $sObjType, 'STEP_UID_OBJ' => $sObjUID, 'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, $sObjType)));
- }
-
- /**
- * removeSupervisorStep
- *
- * @param string $sStepUID
- * @param string $sProcessUID
- * @param string $sObjType
- * @param string $sObjUID
- * @param integer $iPosition
- * @return void
- */
- function removeSupervisorStep($sStepUID, $sProcessUID, $sObjType, $sObjUID, $iPosition) {
- $oStepSupervisor = new StepSupervisor ( );
- $oStepSupervisor->remove($sStepUID);
- $oStepSupervisor->reorderPositions($sProcessUID, $iPosition, $sObjType);
- }
-
- /**
- * listProcessesUser
- *
- * @param string $sProcessUID
- * @return object(Criteria) $oCriteria
- */
- function listProcessesUser($sProcessUID) {
- $aResp = array(
- array(
- 'LA_PU_UID' => 'char',
- 'LA_PRO_UID' => 'char',
- 'LA_USR_UID' => 'char',
- 'LA_PU_NAME' => 'char',
- 'LA_PU_TYPE_NAME' => 'char')
- );
-
- // Groups
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(ProcessUserPeer::PU_UID);
- $oCriteria->addSelectColumn(ProcessUserPeer::USR_UID);
- $oCriteria->addSelectColumn(ProcessUserPeer::PRO_UID);
- $oCriteria->addAsColumn('GRP_TITLE', ContentPeer::CON_VALUE);
-
- $aConditions [] = array(ProcessUserPeer::USR_UID, ContentPeer::CON_ID);
- $aConditions [] = array(ContentPeer::CON_CATEGORY, DBAdapter::getStringDelimiter () . 'GRP_TITLE' . DBAdapter::getStringDelimiter ());
- $aConditions [] = array(ContentPeer::CON_LANG, DBAdapter::getStringDelimiter () . SYS_LANG . DBAdapter::getStringDelimiter ());
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
-
- $oCriteria->add(ProcessUserPeer::PU_TYPE, 'GROUP_SUPERVISOR');
- $oCriteria->add(ProcessUserPeer::PRO_UID, $sProcessUID);
- $oCriteria->addAscendingOrderByColumn(ContentPeer::CON_VALUE);
-
- $oDataset = ProcessUserPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
-
- while ($aRow = $oDataset->getRow()) {
- $aResp[] = array(
- 'LA_PU_UID' => $aRow['PU_UID'],
- 'LA_PRO_UID' => $aRow['PRO_UID'],
- 'LA_USR_UID' => $aRow['USR_UID'],
- 'LA_PU_NAME' => $aRow['GRP_TITLE'],
- 'LA_PU_TYPE_NAME' => 'Group');
- $oDataset->next();
}
- // Users
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(ProcessUserPeer::PU_UID);
- $oCriteria->addSelectColumn(ProcessUserPeer::USR_UID);
- $oCriteria->addSelectColumn(ProcessUserPeer::PRO_UID);
- $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
- $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
- $oCriteria->addSelectColumn(UsersPeer::USR_EMAIL);
- $oCriteria->addJoin(ProcessUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
- $oCriteria->add(ProcessUserPeer::PU_TYPE, 'SUPERVISOR');
- $oCriteria->add(ProcessUserPeer::PRO_UID, $sProcessUID);
- $oCriteria->addAscendingOrderByColumn(UsersPeer::USR_FIRSTNAME);
- $oDataset = ProcessUserPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
-
- while ($aRow = $oDataset->getRow()) {
- $aResp[] = array(
- 'LA_PU_UID' => $aRow['PU_UID'],
- 'LA_PRO_UID' => $aRow['PRO_UID'],
- 'LA_USR_UID' => $aRow['USR_UID'],
- 'LA_PU_NAME' => $aRow['USR_FIRSTNAME'] . ' ' . $aRow['USR_LASTNAME'],
- 'LA_PU_TYPE_NAME' => 'User');
- $oDataset->next();
- }
-
- global $_DBArray;
- $_DBArray['data'] = $aResp;
- $_SESSION['_DBArray'] = $_DBArray;
- $LiCriteria = new Criteria('dbarray');
- $LiCriteria->setDBArrayTable('data');
-
- return $LiCriteria;
- }
-
- /**
- * listNoProcessesUser
- *
- * @param string $sProcessUID
- * @return object(Criteria) $oCriteria
- */
- function listNoProcessesUser($sProcessUID) {
- G::LoadSystem('rbac');
- $memcache = & PMmemcached::getSingleton(SYS_SYS);
-
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(ProcessUserPeer::USR_UID);
- $oCriteria->addSelectColumn(ProcessUserPeer::PU_TYPE);
- $oCriteria->add(ProcessUserPeer::PRO_UID, $sProcessUID);
- $oCriteria->add(ProcessUserPeer::PU_TYPE, '%SUPERVISOR%', Criteria::LIKE);
- $oDataset = ProcessUserPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- $aUIDS = array();
- $aGRUS = array();
- while ($aRow = $oDataset->getRow()) {
- if ($aRow['PU_TYPE'] == 'SUPERVISOR') {
- $aUIDS [] = $aRow ['USR_UID'];
- } else {
- $aGRUS [] = $aRow ['USR_UID'];
- }
- $oDataset->next();
- }
-
- $aRespLi = array(
- array(
- 'UID' => 'char',
- 'USER_GROUP' => 'char',
- 'TYPE_UID' => 'char',
- 'PRO_UID' => 'char')
- );
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(GroupwfPeer::GRP_UID);
- $oCriteria->addAsColumn('GRP_TITLE', ContentPeer::CON_VALUE);
-
- $aConditions [] = array(GroupwfPeer::GRP_UID, ContentPeer::CON_ID);
- $aConditions [] = array(ContentPeer::CON_CATEGORY, DBAdapter::getStringDelimiter () . 'GRP_TITLE' . DBAdapter::getStringDelimiter ());
- $aConditions [] = array(ContentPeer::CON_LANG, DBAdapter::getStringDelimiter () . SYS_LANG . DBAdapter::getStringDelimiter ());
-
- $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
- $oCriteria->add(GroupwfPeer::GRP_UID, $aGRUS, Criteria::NOT_IN);
-
- $oCriteria->addAscendingOrderByColumn(ContentPeer::CON_VALUE);
- $oDataset = GroupwfPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
-
- while ($aRow = $oDataset->getRow()) {
- $aRespLi[] = array( 'UID' => $aRow['GRP_UID'],
- 'USER_GROUP' => $aRow['GRP_TITLE'],
- 'TYPE_UID' => 'Group',
- 'PRO_UID' => $sProcessUID);
- $oDataset->next();
- }
-
- $sDelimiter = DBAdapter::getStringDelimiter ();
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(UsersPeer::USR_UID);
- $oCriteria->add(UsersPeer::USR_UID, $aUIDS, Criteria::NOT_IN);
- $oDataset = UsersPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- $aUIDS = array();
- $oRBAC = RBAC::getSingleton ();
- while ($aRow = $oDataset->getRow()) {
- $memKey = 'rbacSession' . session_id();
- if ( ($oRBAC->aUserInfo = $memcache->get($memKey)) === false ) {
- $oRBAC->loadUserRolePermission($oRBAC->sSystem, $aRow ['USR_UID']);
- $memcache->set( $memKey, $oRBAC->aUserInfo, PMmemcached::EIGHT_HOURS );
- }
- $aPermissions = $oRBAC->aUserInfo [$oRBAC->sSystem] ['PERMISSIONS'];
- $bInclude = false;
- foreach ($aPermissions as $aPermission) {
- if ($aPermission ['PER_CODE'] == 'PM_SUPERVISOR') {
- $bInclude = true;
+ /**
+ * webEntry_new
+ *
+ * @param string $sProcessUID
+ * @return boolean true
+ * throw Exception $oError
+ */
+ public function webEntry_new($sProcessUID)
+ {
+ try {
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $G_PUBLISH->AddContent('xmlform', 'xmlform', 'dynaforms/dynaforms_WebEntry', '', array('PRO_UID' => $sProcessUID, 'LANG' => SYS_LANG));
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
}
- }
- if ($bInclude) {
- $aUIDS [] = $aRow ['USR_UID'];
- }
- $oDataset->next();
- }
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(UsersPeer::USR_UID);
- $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
- $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
- $oCriteria->add(UsersPeer::USR_UID, $aUIDS, Criteria::IN);
- $oCriteria->addAscendingOrderByColumn(UsersPeer::USR_FIRSTNAME);
- $oDataset = UsersPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
-
- while ($aRow = $oDataset->getRow()) {
- $aRespLi[] = array('UID' => $aRow['USR_UID'],
- 'USER_GROUP' => $aRow['USR_FIRSTNAME'] . ' ' . $aRow['USR_LASTNAME'],
- 'TYPE_UID' => 'User',
- 'PRO_UID' => $sProcessUID);
- $oDataset->next();
}
- global $_DBArray;
- $_DBArray['data'] = $aRespLi;
- $_SESSION['_DBArray'] = $_DBArray;
- $LsCriteria = new Criteria('dbarray');
- $LsCriteria->setDBArrayTable('data');
-
- return $LsCriteria;
- }
-
- /**
- * assignProcessUser
- *
- * @param string $sProcessUID
- * @param string $sUsrUID
- * @return void
- */
- function assignProcessUser($sProcessUID, $sUsrUID, $sTypeUID) {
- $oProcessUser = new ProcessUser ( );
- $puType = 'SUPERVISOR';
- if ($sTypeUID == 'Group') {
- $puType = 'GROUP_SUPERVISOR';
+ /*
+ * Return the supervisors dynaforms list criteria object
+ * @param string $sProcessUID
+ * @return object
+ */
+ public function getSupervisorDynaformsCriteria($sProcessUID = '')
+ {
+ $sDelimiter = DBAdapter::getStringDelimiter ();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(StepSupervisorPeer::STEP_UID);
+ $oCriteria->addSelectColumn(StepSupervisorPeer::PRO_UID);
+ $oCriteria->addSelectColumn(StepSupervisorPeer::STEP_TYPE_OBJ);
+ $oCriteria->addSelectColumn(StepSupervisorPeer::STEP_UID_OBJ);
+ $oCriteria->addSelectColumn(StepSupervisorPeer::STEP_POSITION);
+ $oCriteria->addAsColumn('DYN_TITLE', 'C.CON_VALUE');
+ $oCriteria->addAlias('C', 'CONTENT');
+ $aConditions = array();
+ $aConditions [] = array(StepSupervisorPeer::STEP_UID_OBJ, DynaformPeer::DYN_UID);
+ $aConditions [] = array(StepSupervisorPeer::STEP_TYPE_OBJ, $sDelimiter . 'DYNAFORM' . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $aConditions = array();
+ $aConditions [] = array(DynaformPeer::DYN_UID, 'C.CON_ID');
+ $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'DYN_TITLE' . $sDelimiter);
+ $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(StepSupervisorPeer::PRO_UID, $sProcessUID);
+ $oCriteria->add(StepSupervisorPeer::STEP_TYPE_OBJ, 'DYNAFORM');
+ $oCriteria->addAscendingOrderByColumn(StepSupervisorPeer::STEP_POSITION);
+ return $oCriteria;
}
- $oProcessUser->create(array('PU_UID' => G::generateUniqueID (), 'PRO_UID' => $sProcessUID, 'USR_UID' => $sUsrUID, 'PU_TYPE' => $puType));
- }
- /**
- * removeProcessUser
- *
- * @param string $sPUUID
- * @return void
- */
- function removeProcessUser($sPUUID) {
- $oProcessUser = new ProcessUser ( );
- $oProcessUser->remove($sPUUID);
- }
+ /*
+ * Return the supervisors dynaforms list criteria object
+ * @param string $sProcessUID
+ * @return object
+ */
+ public function getSupervisorInputsCriteria($sProcessUID = '')
+ {
+ $sDelimiter = DBAdapter::getStringDelimiter ();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(StepSupervisorPeer::STEP_UID);
+ $oCriteria->addSelectColumn(StepSupervisorPeer::PRO_UID);
+ $oCriteria->addSelectColumn(StepSupervisorPeer::STEP_TYPE_OBJ);
+ $oCriteria->addSelectColumn(StepSupervisorPeer::STEP_UID_OBJ);
+ $oCriteria->addSelectColumn(StepSupervisorPeer::STEP_POSITION);
+ $oCriteria->addAsColumn('INP_DOC_TITLE', 'C.CON_VALUE');
+ $oCriteria->addAlias('C', 'CONTENT');
+ $aConditions = array();
+ $aConditions [] = array(StepSupervisorPeer::STEP_UID_OBJ, InputDocumentPeer::INP_DOC_UID);
+ $aConditions [] = array(StepSupervisorPeer::STEP_TYPE_OBJ, $sDelimiter . 'INPUT_DOCUMENT' . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $aConditions = array();
+ $aConditions [] = array(InputDocumentPeer::INP_DOC_UID, 'C.CON_ID');
+ $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter);
+ $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(StepSupervisorPeer::PRO_UID, $sProcessUID);
+ $oCriteria->add(StepSupervisorPeer::STEP_TYPE_OBJ, 'INPUT_DOCUMENT');
+ $oCriteria->addAscendingOrderByColumn(StepSupervisorPeer::STEP_POSITION);
+ return $oCriteria;
+ }
+
+ /*
+ * Show the available dynaforms for the supervisors
+ * @param string $sProcessUID
+ * @return boolean
+ */
+ public function availableSupervisorDynaforms($sProcessUID)
+ {
+ try {
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'dynaforms/dynaforms_AvailableSupervisorDynaforms', $this->getAvailableSupervisorDynaformsCriteria($sProcessUID), array('PRO_UID' => $sProcessUID));
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Show the available input documents for the supervisors
+ * @param string $sProcessUID
+ * @return boolean
+ */
+ public function availableSupervisorInputs($sProcessUID)
+ {
+ try {
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher ( );
+ $G_PUBLISH->AddContent('propeltable', 'paged-table', 'inputdocs/inputdocs_AvailableSupervisorInputs', $this->getAvailableSupervisorInputsCriteria($sProcessUID), array('PRO_UID' => $sProcessUID));
+ G::RenderPage('publish', 'raw');
+ return true;
+ } catch (Exception $oError) {
+ throw ($oError);
+ }
+ }
+
+ /*
+ * Return the available supervisors dynaforms list criteria object
+ * @param string $sProcessUID
+ * @return object
+ */
+ public function getAvailableSupervisorDynaformsCriteria($sProcessUID = '')
+ {
+ $oCriteria = $this->getSupervisorDynaformsCriteria($sProcessUID);
+ $oDataset = StepSupervisorPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ $aUIDS = array();
+ while ($aRow = $oDataset->getRow()) {
+ $aUIDS [] = $aRow ['STEP_UID_OBJ'];
+ $oDataset->next();
+ }
+ $sDelimiter = DBAdapter::getStringDelimiter ();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(DynaformPeer::DYN_UID);
+ $oCriteria->addSelectColumn(DynaformPeer::PRO_UID);
+ $oCriteria->addAsColumn('DYN_TITLE', 'C.CON_VALUE');
+ $oCriteria->addAlias('C', 'CONTENT');
+ $aConditions = array();
+ $aConditions [] = array(DynaformPeer::DYN_UID, 'C.CON_ID');
+ $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'DYN_TITLE' . $sDelimiter);
+ $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(DynaformPeer::PRO_UID, $sProcessUID);
+ $oCriteria->add(DynaformPeer::DYN_TYPE, 'xmlform');
+ $oCriteria->add(DynaformPeer::DYN_UID, $aUIDS, Criteria::NOT_IN);
+ return $oCriteria;
+ }
+
+ /*
+ * Return the available supervisors input documents list criteria object
+ * @param string $sProcessUID
+ * @return object
+ */
+ public function getAvailableSupervisorInputsCriteria($sProcessUID = '')
+ {
+ $oCriteria = $this->getSupervisorInputsCriteria($sProcessUID);
+ $oDataset = StepSupervisorPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ $aUIDS = array();
+ while ($aRow = $oDataset->getRow()) {
+ $aUIDS [] = $aRow ['STEP_UID_OBJ'];
+ $oDataset->next();
+ }
+ $sDelimiter = DBAdapter::getStringDelimiter ();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(InputDocumentPeer::INP_DOC_UID);
+ $oCriteria->addSelectColumn(InputDocumentPeer::PRO_UID);
+ $oCriteria->addAsColumn('INP_DOC_TITLE', 'C.CON_VALUE');
+ $oCriteria->addAlias('C', 'CONTENT');
+ $aConditions = array();
+ $aConditions [] = array(InputDocumentPeer::INP_DOC_UID, 'C.CON_ID');
+ $aConditions [] = array('C.CON_CATEGORY', $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter);
+ $aConditions [] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(InputDocumentPeer::PRO_UID, $sProcessUID);
+ $oCriteria->add(InputDocumentPeer::INP_DOC_UID, $aUIDS, Criteria::NOT_IN);
+ return $oCriteria;
+ }
+
+ /**
+ * assignSupervisorStep
+ * @param string $sProcessUID
+ * @param string $sObjType
+ * @param string $sObjUID
+ * @return void
+ */
+ public function assignSupervisorStep($sProcessUID, $sObjType, $sObjUID)
+ {
+ $oStepSupervisor = new StepSupervisor ( );
+ $oStepSupervisor->create(array('PRO_UID' => $sProcessUID, 'STEP_TYPE_OBJ' => $sObjType, 'STEP_UID_OBJ' => $sObjUID, 'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, $sObjType)));
+ }
+
+ /**
+ * removeSupervisorStep
+ *
+ * @param string $sStepUID
+ * @param string $sProcessUID
+ * @param string $sObjType
+ * @param string $sObjUID
+ * @param integer $iPosition
+ * @return void
+ */
+ public function removeSupervisorStep($sStepUID, $sProcessUID, $sObjType, $sObjUID, $iPosition) {
+ $oStepSupervisor = new StepSupervisor ( );
+ $oStepSupervisor->remove($sStepUID);
+ $oStepSupervisor->reorderPositions($sProcessUID, $iPosition, $sObjType);
+ }
+
+ /**
+ * listProcessesUser
+ *
+ * @param string $sProcessUID
+ * @return object(Criteria) $oCriteria
+ */
+ public function listProcessesUser($sProcessUID)
+ {
+ $aResp = array(
+ array(
+ 'LA_PU_UID' => 'char',
+ 'LA_PRO_UID' => 'char',
+ 'LA_USR_UID' => 'char',
+ 'LA_PU_NAME' => 'char',
+ 'LA_PU_TYPE_NAME' => 'char')
+ );
+
+ // Groups
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(ProcessUserPeer::PU_UID);
+ $oCriteria->addSelectColumn(ProcessUserPeer::USR_UID);
+ $oCriteria->addSelectColumn(ProcessUserPeer::PRO_UID);
+ $oCriteria->addAsColumn('GRP_TITLE', ContentPeer::CON_VALUE);
+
+ $aConditions [] = array(ProcessUserPeer::USR_UID, ContentPeer::CON_ID);
+ $aConditions [] = array(ContentPeer::CON_CATEGORY, DBAdapter::getStringDelimiter () . 'GRP_TITLE' . DBAdapter::getStringDelimiter ());
+ $aConditions [] = array(ContentPeer::CON_LANG, DBAdapter::getStringDelimiter () . SYS_LANG . DBAdapter::getStringDelimiter ());
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+
+ $oCriteria->add(ProcessUserPeer::PU_TYPE, 'GROUP_SUPERVISOR');
+ $oCriteria->add(ProcessUserPeer::PRO_UID, $sProcessUID);
+ $oCriteria->addAscendingOrderByColumn(ContentPeer::CON_VALUE);
+
+ $oDataset = ProcessUserPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+
+ while ($aRow = $oDataset->getRow()) {
+ $aResp[] = array(
+ 'LA_PU_UID' => $aRow['PU_UID'],
+ 'LA_PRO_UID' => $aRow['PRO_UID'],
+ 'LA_USR_UID' => $aRow['USR_UID'],
+ 'LA_PU_NAME' => $aRow['GRP_TITLE'],
+ 'LA_PU_TYPE_NAME' => 'Group');
+ $oDataset->next();
+ }
+
+ // Users
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(ProcessUserPeer::PU_UID);
+ $oCriteria->addSelectColumn(ProcessUserPeer::USR_UID);
+ $oCriteria->addSelectColumn(ProcessUserPeer::PRO_UID);
+ $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
+ $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
+ $oCriteria->addSelectColumn(UsersPeer::USR_EMAIL);
+ $oCriteria->addJoin(ProcessUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
+ $oCriteria->add(ProcessUserPeer::PU_TYPE, 'SUPERVISOR');
+ $oCriteria->add(ProcessUserPeer::PRO_UID, $sProcessUID);
+ $oCriteria->addAscendingOrderByColumn(UsersPeer::USR_FIRSTNAME);
+ $oDataset = ProcessUserPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+
+ while ($aRow = $oDataset->getRow()) {
+ $aResp[] = array(
+ 'LA_PU_UID' => $aRow['PU_UID'],
+ 'LA_PRO_UID' => $aRow['PRO_UID'],
+ 'LA_USR_UID' => $aRow['USR_UID'],
+ 'LA_PU_NAME' => $aRow['USR_FIRSTNAME'] . ' ' . $aRow['USR_LASTNAME'],
+ 'LA_PU_TYPE_NAME' => 'User');
+ $oDataset->next();
+ }
+
+ global $_DBArray;
+ $_DBArray['data'] = $aResp;
+ $_SESSION['_DBArray'] = $_DBArray;
+ $LiCriteria = new Criteria('dbarray');
+ $LiCriteria->setDBArrayTable('data');
+
+ return $LiCriteria;
+ }
+
+ /**
+ * listNoProcessesUser
+ *
+ * @param string $sProcessUID
+ * @return object(Criteria) $oCriteria
+ */
+ public function listNoProcessesUser($sProcessUID)
+ {
+ G::LoadSystem('rbac');
+ $memcache = & PMmemcached::getSingleton(SYS_SYS);
+
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(ProcessUserPeer::USR_UID);
+ $oCriteria->addSelectColumn(ProcessUserPeer::PU_TYPE);
+ $oCriteria->add(ProcessUserPeer::PRO_UID, $sProcessUID);
+ $oCriteria->add(ProcessUserPeer::PU_TYPE, '%SUPERVISOR%', Criteria::LIKE);
+ $oDataset = ProcessUserPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ $aUIDS = array();
+ $aGRUS = array();
+ while ($aRow = $oDataset->getRow()) {
+ if ($aRow['PU_TYPE'] == 'SUPERVISOR') {
+ $aUIDS [] = $aRow ['USR_UID'];
+ } else {
+ $aGRUS [] = $aRow ['USR_UID'];
+ }
+ $oDataset->next();
+ }
+
+ $aRespLi = array(
+ array(
+ 'UID' => 'char',
+ 'USER_GROUP' => 'char',
+ 'TYPE_UID' => 'char',
+ 'PRO_UID' => 'char')
+ );
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(GroupwfPeer::GRP_UID);
+ $oCriteria->addAsColumn('GRP_TITLE', ContentPeer::CON_VALUE);
+
+ $aConditions [] = array(GroupwfPeer::GRP_UID, ContentPeer::CON_ID);
+ $aConditions [] = array(ContentPeer::CON_CATEGORY, DBAdapter::getStringDelimiter () . 'GRP_TITLE' . DBAdapter::getStringDelimiter ());
+ $aConditions [] = array(ContentPeer::CON_LANG, DBAdapter::getStringDelimiter () . SYS_LANG . DBAdapter::getStringDelimiter ());
+
+ $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
+ $oCriteria->add(GroupwfPeer::GRP_UID, $aGRUS, Criteria::NOT_IN);
+
+ $oCriteria->addAscendingOrderByColumn(ContentPeer::CON_VALUE);
+ $oDataset = GroupwfPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+
+ while ($aRow = $oDataset->getRow()) {
+ $aRespLi[] = array( 'UID' => $aRow['GRP_UID'],
+ 'USER_GROUP' => $aRow['GRP_TITLE'],
+ 'TYPE_UID' => 'Group',
+ 'PRO_UID' => $sProcessUID);
+ $oDataset->next();
+ }
+
+ $sDelimiter = DBAdapter::getStringDelimiter ();
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(UsersPeer::USR_UID);
+ $oCriteria->add(UsersPeer::USR_UID, $aUIDS, Criteria::NOT_IN);
+ $oDataset = UsersPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ $aUIDS = array();
+ $oRBAC = RBAC::getSingleton ();
+ while ($aRow = $oDataset->getRow()) {
+ $memKey = 'rbacSession' . session_id();
+ if ( ($oRBAC->aUserInfo = $memcache->get($memKey)) === false ) {
+ $oRBAC->loadUserRolePermission($oRBAC->sSystem, $aRow ['USR_UID']);
+ $memcache->set( $memKey, $oRBAC->aUserInfo, PMmemcached::EIGHT_HOURS );
+ }
+ $aPermissions = $oRBAC->aUserInfo [$oRBAC->sSystem] ['PERMISSIONS'];
+ $bInclude = false;
+ foreach ($aPermissions as $aPermission) {
+ if ($aPermission ['PER_CODE'] == 'PM_SUPERVISOR') {
+ $bInclude = true;
+ }
+ }
+ if ($bInclude) {
+ $aUIDS [] = $aRow ['USR_UID'];
+ }
+ $oDataset->next();
+ }
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(UsersPeer::USR_UID);
+ $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
+ $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
+ $oCriteria->add(UsersPeer::USR_UID, $aUIDS, Criteria::IN);
+ $oCriteria->addAscendingOrderByColumn(UsersPeer::USR_FIRSTNAME);
+ $oDataset = UsersPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+
+ while ($aRow = $oDataset->getRow()) {
+ $aRespLi[] = array('UID' => $aRow['USR_UID'],
+ 'USER_GROUP' => $aRow['USR_FIRSTNAME'] . ' ' . $aRow['USR_LASTNAME'],
+ 'TYPE_UID' => 'User',
+ 'PRO_UID' => $sProcessUID);
+ $oDataset->next();
+ }
+
+ global $_DBArray;
+ $_DBArray['data'] = $aRespLi;
+ $_SESSION['_DBArray'] = $_DBArray;
+ $LsCriteria = new Criteria('dbarray');
+ $LsCriteria->setDBArrayTable('data');
+
+ return $LsCriteria;
+ }
+
+ /**
+ * assignProcessUser
+ *
+ * @param string $sProcessUID
+ * @param string $sUsrUID
+ * @return void
+ */
+ public function assignProcessUser($sProcessUID, $sUsrUID, $sTypeUID)
+ {
+ $oProcessUser = new ProcessUser ( );
+ $puType = 'SUPERVISOR';
+ if ($sTypeUID == 'Group') {
+ $puType = 'GROUP_SUPERVISOR';
+ }
+ $oProcessUser->create(array('PU_UID' => G::generateUniqueID (), 'PRO_UID' => $sProcessUID, 'USR_UID' => $sUsrUID, 'PU_TYPE' => $puType));
+ }
+
+ /**
+ * removeProcessUser
+ *
+ * @param string $sPUUID
+ * @return void
+ */
+ public function removeProcessUser($sPUUID)
+ {
+ $oProcessUser = new ProcessUser ( );
+ $oProcessUser->remove($sPUUID);
+ }
/**
* getObjectsPermissionsCriteria
@@ -3512,59 +3375,62 @@ class processMap {
return $oCriteria;
}
- //new functions
- function getAllObjectPermissionCount(){
- $c = $this->tmpCriteria;
- $c->clearSelectColumns();
- $c->addSelectColumn('COUNT(*)');
- $oDataset = ObjectPermissionPeer::doSelectRS($c);
- $oDataset->next();
- $aRow = $oDataset->getRow();
+ //new functions
+ public function getAllObjectPermissionCount()
+ {
+ $c = $this->tmpCriteria;
+ $c->clearSelectColumns();
+ $c->addSelectColumn('COUNT(*)');
+ $oDataset = ObjectPermissionPeer::doSelectRS($c);
+ $oDataset->next();
+ $aRow = $oDataset->getRow();
- if( is_array($aRow) )
- return $aRow[0];
- else
- return 0;
- }
-
- function getExtObjectsPermissions($start, $limit,$sProcessUID) {
- G::LoadClass('case');
- Cases::verifyTable ();
- $aObjectsPermissions = array();
- //$aObjectsPermissions [] = array('OP_UID' => 'char', 'TASK_TARGET' => 'char', 'GROUP_USER' => 'char', 'TASK_SOURCE' => 'char', 'OBJECT_TYPE' => 'char', 'OBJECT' => 'char', 'PARTICIPATED' => 'char', 'ACTION' => 'char', 'OP_CASE_STATUS' => 'char');
- $oCriteria = new Criteria('workflow');
- $oCriteria->addSelectColumn(ObjectPermissionPeer::OP_UID);
- $oCriteria->addSelectColumn(ObjectPermissionPeer::TAS_UID);
- $oCriteria->addSelectColumn(ObjectPermissionPeer::USR_UID);
- $oCriteria->addSelectColumn(ObjectPermissionPeer::OP_USER_RELATION);
- $oCriteria->addSelectColumn(ObjectPermissionPeer::OP_TASK_SOURCE);
- $oCriteria->addSelectColumn(ObjectPermissionPeer::OP_PARTICIPATE);
- $oCriteria->addSelectColumn(ObjectPermissionPeer::OP_OBJ_TYPE);
- $oCriteria->addSelectColumn(ObjectPermissionPeer::OP_OBJ_UID);
- $oCriteria->addSelectColumn(ObjectPermissionPeer::OP_ACTION);
- $oCriteria->addSelectColumn(ObjectPermissionPeer::OP_CASE_STATUS);
- $oCriteria->add(ObjectPermissionPeer::PRO_UID, $sProcessUID);
- $this->tmpCriteria = clone $oCriteria;
-
- if($start != '')
- $oCriteria->setOffset($start);
- if($limit != '')
- $oCriteria->setLimit($limit);
-
- $oDataset = ObjectPermissionPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
- //Obtain task target
- if (($aRow ['TAS_UID'] != '') && ($aRow ['TAS_UID'] != '0')) {
- try {
- $oTask = new Task ( );
- $aFields = $oTask->load($aRow ['TAS_UID']);
- $sTaskTarget = $aFields ['TAS_TITLE'];
- } catch (Exception $oError) {
- $sTaskTarget = 'All Tasks';
+ if ( is_array($aRow) ) {
+ return $aRow[0];
+ } else {
+ return 0;
}
- } else {
+ }
+
+ public function getExtObjectsPermissions($start, $limit,$sProcessUID)
+ {
+ G::LoadClass('case');
+ Cases::verifyTable ();
+ $aObjectsPermissions = array();
+ //$aObjectsPermissions [] = array('OP_UID' => 'char', 'TASK_TARGET' => 'char', 'GROUP_USER' => 'char', 'TASK_SOURCE' => 'char', 'OBJECT_TYPE' => 'char', 'OBJECT' => 'char', 'PARTICIPATED' => 'char', 'ACTION' => 'char', 'OP_CASE_STATUS' => 'char');
+ $oCriteria = new Criteria('workflow');
+ $oCriteria->addSelectColumn(ObjectPermissionPeer::OP_UID);
+ $oCriteria->addSelectColumn(ObjectPermissionPeer::TAS_UID);
+ $oCriteria->addSelectColumn(ObjectPermissionPeer::USR_UID);
+ $oCriteria->addSelectColumn(ObjectPermissionPeer::OP_USER_RELATION);
+ $oCriteria->addSelectColumn(ObjectPermissionPeer::OP_TASK_SOURCE);
+ $oCriteria->addSelectColumn(ObjectPermissionPeer::OP_PARTICIPATE);
+ $oCriteria->addSelectColumn(ObjectPermissionPeer::OP_OBJ_TYPE);
+ $oCriteria->addSelectColumn(ObjectPermissionPeer::OP_OBJ_UID);
+ $oCriteria->addSelectColumn(ObjectPermissionPeer::OP_ACTION);
+ $oCriteria->addSelectColumn(ObjectPermissionPeer::OP_CASE_STATUS);
+ $oCriteria->add(ObjectPermissionPeer::PRO_UID, $sProcessUID);
+ $this->tmpCriteria = clone $oCriteria;
+
+ if ($start != '')
+ $oCriteria->setOffset($start);
+ if ($limit != '')
+ $oCriteria->setLimit($limit);
+
+ $oDataset = ObjectPermissionPeer::doSelectRS($oCriteria);
+ $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
+ $oDataset->next();
+ while ($aRow = $oDataset->getRow()) {
+ //Obtain task target
+ if (($aRow ['TAS_UID'] != '') && ($aRow ['TAS_UID'] != '0')) {
+ try {
+ $oTask = new Task ( );
+ $aFields = $oTask->load($aRow ['TAS_UID']);
+ $sTaskTarget = $aFields ['TAS_TITLE'];
+ } catch (Exception $oError) {
+ $sTaskTarget = 'All Tasks';
+ }
+ } else {
$sTaskTarget = G::LoadTranslation('ID_ANY_TASK');
}
//Obtain user or group
@@ -3634,3408 +3500,3413 @@ class processMap {
}
break;
}
- //Participated
- if ($aRow ['OP_PARTICIPATE'] == 0) {
- $sParticipated = G::LoadTranslation('ID_NO');
- } else {
- $sParticipated = G::LoadTranslation('ID_YES');
- }
- //Obtain action (permission)
- $sAction = G::LoadTranslation('ID_' . $aRow ['OP_ACTION']);
- //Add to array
- $aObjectsPermissions [] = array('OP_UID' => $aRow ['OP_UID'], 'TASK_TARGET' => $sTaskTarget, 'GROUP_USER' => $sUserGroup, 'TASK_SOURCE' => $sTaskSource, 'OBJECT_TYPE' => $sObjectType, 'OBJECT' => $sObject, 'PARTICIPATED' => $sParticipated, 'ACTION' => $sAction, 'OP_CASE_STATUS' => $aRow ['OP_CASE_STATUS']);
- $oDataset->next();
- }
- return $aObjectsPermissions;
- }
-
- /**
- * objectsPermissionsList
- *
- * @param string $sProcessUID
- * @return boolean true
- */
- function objectsPermissionsList($sProcessUID) {
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('propeltable', 'paged-table', 'processes/processes_ObjectsPermissionsList', $this->getObjectsPermissionsCriteria($sProcessUID), array('PRO_UID' => $sProcessUID));
- G::RenderPage('publish', 'raw');
- return true;
- }
-
- /**
- * newObjectPermission
- *
- * @param string $sProcessUID
- * @return boolean true
- */
- function newObjectPermission($sProcessUID) {
- $usersGroups = '';
- $aAllObjects = array();
- $aAllObjects [] = array('UID' => 'char', 'LABEL' => 'char');
- $aAllDynaforms = array();
- $aAllDynaforms [] = array('UID' => 'char', 'LABEL' => 'char');
- $aAllInputs = array();
- $aAllInputs [] = array('UID' => 'char', 'LABEL' => 'char');
- $aAllOutputs = array();
- $aAllOutputs [] = array('UID' => 'char', 'LABEL' => 'char');
- $oCriteria = $this->getDynaformsCriteria($sProcessUID);
- $oCriteria->add(DynaformPeer::DYN_TYPE, 'XMLFORM');
- $oDataset = DynaformPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
- $aRow ['DYN_TITLE'] = (isset($aRow ['DYN_TITLE'])) ? $aRow ['DYN_TITLE'] : '';
- $aAllObjects [] = array('UID' => 'DYNAFORM|' . $aRow ['DYN_UID'],
- 'LABEL' => $aRow ['DYN_TITLE'] . ' (' . G::LoadTranslation('ID_DYNAFORM') . ')');
- $aAllDynaforms [] = array('UID' => $aRow ['DYN_UID'],
- 'LABEL' => $aRow ['DYN_TITLE']);
- $oDataset->next();
- }
- G::LoadClass('ArrayPeer');
- $oDataset = ArrayBasePeer::doSelectRS($this->getInputDocumentsCriteria($sProcessUID));
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
- $aAllObjects [] = array('UID' => 'INPUT_DOCUMENT|' . $aRow ['INP_DOC_UID'],
- 'LABEL' => $aRow ['INP_DOC_TITLE'] . ' (' . G::LoadTranslation('ID_INPUT_DOCUMENT') . ')');
- $aAllInputs [] = array('UID' => $aRow ['INP_DOC_UID'],
- 'LABEL' => $aRow ['INP_DOC_TITLE']);
- $oDataset->next();
- }
- G::LoadClass('ArrayPeer');
- $oDataset = ArrayBasePeer::doSelectRS($this->getOutputDocumentsCriteria($sProcessUID));
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- while ($aRow = $oDataset->getRow()) {
- $aAllObjects [] = array('UID' => 'OUTPUT_DOCUMENT|' . $aRow ['OUT_DOC_UID'], 'LABEL' => $aRow ['OUT_DOC_TITLE'] . ' (' . G::LoadTranslation('ID_OUTPUT_DOCUMENT') . ')');
- $aAllOutputs [] = array('UID' => $aRow ['OUT_DOC_UID'], 'LABEL' => $aRow ['OUT_DOC_TITLE']);
- $oDataset->next();
- }
- global $_DBArray;
- $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : '');
- $_DBArray ['allObjects'] = $aAllObjects;
- $_DBArray ['allDynaforms'] = $aAllDynaforms;
- $_DBArray ['allInputs'] = $aAllInputs;
- $_DBArray ['allOutputs'] = $aAllOutputs;
- $_SESSION ['_DBArray'] = $_DBArray;
- global $G_PUBLISH;
- $G_PUBLISH = new Publisher ( );
- $G_PUBLISH->AddContent('xmlform', 'xmlform', 'processes/processes_NewObjectPermission', '', array('GROUP_USER' => $usersGroups, 'LANG' => SYS_LANG, 'PRO_UID' => $sProcessUID, 'ID_DELETE' => G::LoadTranslation('ID_DELETE')), 'processes_SaveObjectPermission');
- G::RenderPage('publish', 'raw');
- return true;
- }
-
- /**
- * editObjectPermission
- *
- * @param string $sOP_UID
- * @param string $sProcessUID
- * @return void
- */
- function editObjectPermission($sOP_UID, $sProcessUID) {
-
- $oCriteria = new Criteria ( );
- $oCriteria->add(ObjectPermissionPeer::OP_UID, $sOP_UID);
- $oDataset = ObjectPermissionPeer::doSelectRS($oCriteria);
- $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
- $oDataset->next();
- $aRows = $oDataset->getRow();
-
- $oCriteria = new Criteria ( );
- $oCriteria->add(GroupwfPeer::GRP_UID, $aRows ['USR_UID']);
- if (GroupwfPeer::doCount($oCriteria) == 1)
- $user = '2|' . $aRows ['USR_UID'];
-
- $oCriteria = new Criteria ( );
- $oCriteria->add(UsersPeer::USR_UID, $aRows ['USR_UID']);
- if (UsersPeer::doCount($oCriteria) == 1)
- $user = '1|' . $aRows ['USR_UID'];
-
- $aFields ['LANG'] = SYS_LANG;
- $aFields ['OP_UID'] = $aRows ['OP_UID'];
- $aFields ['PRO_UID'] = $aRows ['PRO_UID'];
- $aFields ['OP_CASE_STATUS'] = $aRows ['OP_CASE_STATUS'];
- $aFields ['TAS_UID'] = $aRows ['TAS_UID'];
- $aFields ['OP_TASK_SOURCE'] = $aRows ['OP_TASK_SOURCE'];
- $aFields ['OP_PARTICIPATE'] = $aRows ['OP_PARTICIPATE'];
- $aFields ['OP_OBJ_TYPE'] = $aRows ['OP_OBJ_TYPE'];
- $aFields ['OP_ACTION'] = $aRows ['OP_ACTION'];
-
- switch ($aRows ['OP_OBJ_TYPE']) {
- /* case 'ANY':
- $aFields['OP_OBJ_TYPE'] = '';
- break; */
- case 'DYNAFORM' :
- $aFields ['DYNAFORMS'] = $aRows ['OP_OBJ_UID'];
- break;
- case 'INPUT' :
- $aFields ['INPUTS'] = $aRows ['OP_OBJ_UID'];
- break;
- case 'OUTPUT' :
- $aFields ['OUTPUTS'] = $aRows ['OP_OBJ_UID'];
- break;
- }
-
- $usersGroups = '