diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php index 3b0734817..85c69d260 100755 --- a/workflow/engine/classes/class.derivation.php +++ b/workflow/engine/classes/class.derivation.php @@ -199,25 +199,22 @@ class Derivation $flagAddDelegation = $pmScript->evaluate(); } - //In the 3.0.1.7 version we have a condition for join and the rouCondition maybe is true, 1, etc - $rouCondition = trim($arrayRouteData["ROU_CONDITION"]); - if($rouCondition !== '' && $arrayRouteData["ROU_TYPE"] === 'SEC-JOIN'){ - error_log(G::LoadTranslation( 'ID_WARNING_GATEWAY_CONVERGENT_WITH_CONDITION' ).' '.$flagAddDelegation); - } + if (trim($arrayRouteData['ROU_CONDITION']) == '' && $arrayRouteData['ROU_NEXT_TASK'] != '-1') { + $arrayTaskData = $task->load($arrayRouteData['ROU_NEXT_TASK']); - if ($arrayRouteData["ROU_NEXT_TASK"] != "-1" && $rouCondition === '') { - $arrayTaskData = $task->load($arrayRouteData["ROU_NEXT_TASK"]); - if ($arrayRouteData["ROU_TYPE"] != "SEC-JOIN" && $arrayTaskData["TAS_TYPE"] == "GATEWAYTOGATEWAY") { + if ($arrayRouteData['ROU_TYPE'] != 'SEC-JOIN' && $arrayTaskData['TAS_TYPE'] == 'GATEWAYTOGATEWAY') { $flagAddDelegation = true; } + + if($arrayRouteData['ROU_TYPE'] == 'SEC-JOIN'){ + $aSecJoin[$count]['ROU_PREVIOUS_TASK'] = $arrayRouteData['ROU_NEXT_TASK']; + $aSecJoin[$count]['ROU_PREVIOUS_TYPE'] = 'SEC-JOIN'; + $count++; + } } - //In the 3.0.1.8 version the Secjoin does not have a rouCondition - if($arrayRouteData["ROU_NEXT_TASK"] !== '-1' && $arrayRouteData["ROU_TYPE"] === 'SEC-JOIN'){ - $arrayTaskData = $task->load($arrayRouteData["ROU_NEXT_TASK"]); - $aSecJoin[$count]["ROU_PREVIOUS_TASK"] = $arrayRouteData["ROU_NEXT_TASK"]; - $aSecJoin[$count]["ROU_PREVIOUS_TYPE"] = 'SEC-JOIN'; - $count++; + if ($arrayRouteData['ROU_TYPE'] == 'EVALUATE' && !empty($arrayNextTask)) { + $flagAddDelegation = false; } if ($flagAddDelegation && @@ -1393,7 +1390,7 @@ class Derivation } //end switch if($iNewDelIndex !== 0 && !$sendNotificationsMobile){ - $sendNotificationsMobile = $this->sendNotificationsMobile($appFields, $nextDel, $iNewDelIndex); + $sendNotificationsMobile = $this->sendNotificationsMobile($appFields, $nextDel, $iNewDelIndex); } return $iNewDelIndex; } @@ -1667,4 +1664,3 @@ class Derivation } } } - diff --git a/workflow/engine/classes/model/map/ElementTaskRelationMapBuilder.php b/workflow/engine/classes/model/map/ElementTaskRelationMapBuilder.php index 6eb4cd62f..ce378e8b7 100644 --- a/workflow/engine/classes/model/map/ElementTaskRelationMapBuilder.php +++ b/workflow/engine/classes/model/map/ElementTaskRelationMapBuilder.php @@ -75,8 +75,6 @@ class ElementTaskRelationMapBuilder $tMap->addColumn('TAS_UID', 'TasUid', 'string', CreoleTypes::VARCHAR, true, 32); - $tMap->addColumn('ELEMENT_UID_DEST', 'ElementUidDest', 'string', CreoleTypes::VARCHAR, false, 32); - } // doBuild() } // ElementTaskRelationMapBuilder diff --git a/workflow/engine/classes/model/map/ProcessMapBuilder.php b/workflow/engine/classes/model/map/ProcessMapBuilder.php index 96617805c..2987fc679 100755 --- a/workflow/engine/classes/model/map/ProcessMapBuilder.php +++ b/workflow/engine/classes/model/map/ProcessMapBuilder.php @@ -141,6 +141,8 @@ class ProcessMapBuilder $tMap->addColumn('PRO_ITEE', 'ProItee', 'int', CreoleTypes::INTEGER, true, null); + $tMap->addColumn('PRO_ACTION_DONE', 'ProActionDone', 'string', CreoleTypes::LONGVARCHAR, false, null); + $tMap->addValidator('PRO_TIMEUNIT', 'validValues', 'propel.validator.ValidValuesValidator', 'WEEKS|MONTHS|DAYS|HOURS|MINUTES', 'Please select a valid Time Unit.'); $tMap->addValidator('PRO_STATUS', 'validValues', 'propel.validator.ValidValuesValidator', 'ACTIVE|INACTIVE|DISABLED', 'Please select a valid Process Status.'); diff --git a/workflow/engine/classes/model/map/RouteMapBuilder.php b/workflow/engine/classes/model/map/RouteMapBuilder.php index ecb8f2e2f..a257ae0c7 100755 --- a/workflow/engine/classes/model/map/RouteMapBuilder.php +++ b/workflow/engine/classes/model/map/RouteMapBuilder.php @@ -101,8 +101,6 @@ class RouteMapBuilder $tMap->addColumn('GAT_UID', 'GatUid', 'string', CreoleTypes::VARCHAR, true, 32); - $tMap->addColumn('ROU_ELEMENT_ORIGIN', 'RouElementOrigin', 'string', CreoleTypes::VARCHAR, false, 32); - $tMap->addValidator('ROU_UID', 'maxLength', 'propel.validator.MaxLengthValidator', '32', 'Route UID can be no larger than 32 in size'); $tMap->addValidator('ROU_UID', 'required', 'propel.validator.RequiredValidator', '', 'Route UID is required.'); diff --git a/workflow/engine/classes/model/om/BaseElementTaskRelation.php b/workflow/engine/classes/model/om/BaseElementTaskRelation.php index f7714ca68..7cf07f552 100644 --- a/workflow/engine/classes/model/om/BaseElementTaskRelation.php +++ b/workflow/engine/classes/model/om/BaseElementTaskRelation.php @@ -57,12 +57,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent */ protected $tas_uid; - /** - * The value for the element_uid_dest field. - * @var string - */ - protected $element_uid_dest = ''; - /** * Flag to prevent endless save loop, if this object is referenced * by another object which falls in this transaction. @@ -132,17 +126,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent return $this->tas_uid; } - /** - * Get the [element_uid_dest] column value. - * - * @return string - */ - public function getElementUidDest() - { - - return $this->element_uid_dest; - } - /** * Set the value of [etr_uid] column. * @@ -253,28 +236,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent } // setTasUid() - /** - * Set the value of [element_uid_dest] column. - * - * @param string $v new value - * @return void - */ - public function setElementUidDest($v) - { - - // Since the native PHP type for this column is string, - // we will cast the input to a string (if it is not). - if ($v !== null && !is_string($v)) { - $v = (string) $v; - } - - if ($this->element_uid_dest !== $v || $v === '') { - $this->element_uid_dest = $v; - $this->modifiedColumns[] = ElementTaskRelationPeer::ELEMENT_UID_DEST; - } - - } // setElementUidDest() - /** * Hydrates (populates) the object variables with values from the database resultset. * @@ -302,14 +263,12 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent $this->tas_uid = $rs->getString($startcol + 4); - $this->element_uid_dest = $rs->getString($startcol + 5); - $this->resetModified(); $this->setNew(false); // FIXME - using NUM_COLUMNS may be clearer. - return $startcol + 6; // 6 = ElementTaskRelationPeer::NUM_COLUMNS - ElementTaskRelationPeer::NUM_LAZY_LOAD_COLUMNS). + return $startcol + 5; // 5 = ElementTaskRelationPeer::NUM_COLUMNS - ElementTaskRelationPeer::NUM_LAZY_LOAD_COLUMNS). } catch (Exception $e) { throw new PropelException("Error populating ElementTaskRelation object", $e); @@ -528,9 +487,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent case 4: return $this->getTasUid(); break; - case 5: - return $this->getElementUidDest(); - break; default: return null; break; @@ -556,7 +512,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent $keys[2] => $this->getElementUid(), $keys[3] => $this->getElementType(), $keys[4] => $this->getTasUid(), - $keys[5] => $this->getElementUidDest(), ); return $result; } @@ -603,9 +558,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent case 4: $this->setTasUid($value); break; - case 5: - $this->setElementUidDest($value); - break; } // switch() } @@ -649,10 +601,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent $this->setTasUid($arr[$keys[4]]); } - if (array_key_exists($keys[5], $arr)) { - $this->setElementUidDest($arr[$keys[5]]); - } - } /** @@ -684,10 +632,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent $criteria->add(ElementTaskRelationPeer::TAS_UID, $this->tas_uid); } - if ($this->isColumnModified(ElementTaskRelationPeer::ELEMENT_UID_DEST)) { - $criteria->add(ElementTaskRelationPeer::ELEMENT_UID_DEST, $this->element_uid_dest); - } - return $criteria; } @@ -750,8 +694,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent $copyObj->setTasUid($this->tas_uid); - $copyObj->setElementUidDest($this->element_uid_dest); - $copyObj->setNew(true); diff --git a/workflow/engine/classes/model/om/BaseElementTaskRelationPeer.php b/workflow/engine/classes/model/om/BaseElementTaskRelationPeer.php index 5f110b937..ab7c9a3ff 100644 --- a/workflow/engine/classes/model/om/BaseElementTaskRelationPeer.php +++ b/workflow/engine/classes/model/om/BaseElementTaskRelationPeer.php @@ -25,7 +25,7 @@ abstract class BaseElementTaskRelationPeer const CLASS_DEFAULT = 'classes.model.ElementTaskRelation'; /** The total number of columns. */ - const NUM_COLUMNS = 6; + const NUM_COLUMNS = 5; /** The number of lazy-loaded columns. */ const NUM_LAZY_LOAD_COLUMNS = 0; @@ -46,9 +46,6 @@ abstract class BaseElementTaskRelationPeer /** the column name for the TAS_UID field */ const TAS_UID = 'ELEMENT_TASK_RELATION.TAS_UID'; - /** the column name for the ELEMENT_UID_DEST field */ - const ELEMENT_UID_DEST = 'ELEMENT_TASK_RELATION.ELEMENT_UID_DEST'; - /** The PHP to DB Name Mapping */ private static $phpNameMap = null; @@ -60,10 +57,10 @@ abstract class BaseElementTaskRelationPeer * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' */ private static $fieldNames = array ( - BasePeer::TYPE_PHPNAME => array ('EtrUid', 'PrjUid', 'ElementUid', 'ElementType', 'TasUid', 'ElementUidDest', ), - BasePeer::TYPE_COLNAME => array (ElementTaskRelationPeer::ETR_UID, ElementTaskRelationPeer::PRJ_UID, ElementTaskRelationPeer::ELEMENT_UID, ElementTaskRelationPeer::ELEMENT_TYPE, ElementTaskRelationPeer::TAS_UID, ElementTaskRelationPeer::ELEMENT_UID_DEST, ), - BasePeer::TYPE_FIELDNAME => array ('ETR_UID', 'PRJ_UID', 'ELEMENT_UID', 'ELEMENT_TYPE', 'TAS_UID', 'ELEMENT_UID_DEST', ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, ) + BasePeer::TYPE_PHPNAME => array ('EtrUid', 'PrjUid', 'ElementUid', 'ElementType', 'TasUid', ), + BasePeer::TYPE_COLNAME => array (ElementTaskRelationPeer::ETR_UID, ElementTaskRelationPeer::PRJ_UID, ElementTaskRelationPeer::ELEMENT_UID, ElementTaskRelationPeer::ELEMENT_TYPE, ElementTaskRelationPeer::TAS_UID, ), + BasePeer::TYPE_FIELDNAME => array ('ETR_UID', 'PRJ_UID', 'ELEMENT_UID', 'ELEMENT_TYPE', 'TAS_UID', ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, ) ); /** @@ -73,10 +70,10 @@ abstract class BaseElementTaskRelationPeer * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 */ private static $fieldKeys = array ( - BasePeer::TYPE_PHPNAME => array ('EtrUid' => 0, 'PrjUid' => 1, 'ElementUid' => 2, 'ElementType' => 3, 'TasUid' => 4, 'ElementUidDest' => 5, ), - BasePeer::TYPE_COLNAME => array (ElementTaskRelationPeer::ETR_UID => 0, ElementTaskRelationPeer::PRJ_UID => 1, ElementTaskRelationPeer::ELEMENT_UID => 2, ElementTaskRelationPeer::ELEMENT_TYPE => 3, ElementTaskRelationPeer::TAS_UID => 4, ElementTaskRelationPeer::ELEMENT_UID_DEST => 5, ), - BasePeer::TYPE_FIELDNAME => array ('ETR_UID' => 0, 'PRJ_UID' => 1, 'ELEMENT_UID' => 2, 'ELEMENT_TYPE' => 3, 'TAS_UID' => 4, 'ELEMENT_UID_DEST' => 5, ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, ) + BasePeer::TYPE_PHPNAME => array ('EtrUid' => 0, 'PrjUid' => 1, 'ElementUid' => 2, 'ElementType' => 3, 'TasUid' => 4, ), + BasePeer::TYPE_COLNAME => array (ElementTaskRelationPeer::ETR_UID => 0, ElementTaskRelationPeer::PRJ_UID => 1, ElementTaskRelationPeer::ELEMENT_UID => 2, ElementTaskRelationPeer::ELEMENT_TYPE => 3, ElementTaskRelationPeer::TAS_UID => 4, ), + BasePeer::TYPE_FIELDNAME => array ('ETR_UID' => 0, 'PRJ_UID' => 1, 'ELEMENT_UID' => 2, 'ELEMENT_TYPE' => 3, 'TAS_UID' => 4, ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, ) ); /** @@ -187,8 +184,6 @@ abstract class BaseElementTaskRelationPeer $criteria->addSelectColumn(ElementTaskRelationPeer::TAS_UID); - $criteria->addSelectColumn(ElementTaskRelationPeer::ELEMENT_UID_DEST); - } const COUNT = 'COUNT(ELEMENT_TASK_RELATION.ETR_UID)'; diff --git a/workflow/engine/classes/model/om/BaseProcess.php b/workflow/engine/classes/model/om/BaseProcess.php index deb9c6556..42e8131b9 100755 --- a/workflow/engine/classes/model/om/BaseProcess.php +++ b/workflow/engine/classes/model/om/BaseProcess.php @@ -255,6 +255,12 @@ abstract class BaseProcess extends BaseObject implements Persistent */ protected $pro_itee = 1; + /** + * The value for the pro_action_done field. + * @var string + */ + protected $pro_action_done = ''; + /** * Flag to prevent endless save loop, if this object is referenced * by another object which falls in this transaction. @@ -729,6 +735,17 @@ abstract class BaseProcess extends BaseObject implements Persistent return $this->pro_itee; } + /** + * Get the [pro_action_done] column value. + * + * @return string + */ + public function getProActionDone() + { + + return $this->pro_action_done; + } + /** * Set the value of [pro_uid] column. * @@ -1567,6 +1584,28 @@ abstract class BaseProcess extends BaseObject implements Persistent } // setProItee() + /** + * Set the value of [pro_action_done] column. + * + * @param string $v new value + * @return void + */ + public function setProActionDone($v) + { + + // Since the native PHP type for this column is string, + // we will cast the input to a string (if it is not). + if ($v !== null && !is_string($v)) { + $v = (string) $v; + } + + if ($this->pro_action_done !== $v || $v === '') { + $this->pro_action_done = $v; + $this->modifiedColumns[] = ProcessPeer::PRO_ACTION_DONE; + } + + } // setProActionDone() + /** * Hydrates (populates) the object variables with values from the database resultset. * @@ -1660,12 +1699,14 @@ abstract class BaseProcess extends BaseObject implements Persistent $this->pro_itee = $rs->getString($startcol + 37); + $this->pro_action_done = $rs->getString($startcol + 38); + $this->resetModified(); $this->setNew(false); // FIXME - using NUM_COLUMNS may be clearer. - return $startcol + 37; // 37 = ProcessPeer::NUM_COLUMNS - ProcessPeer::NUM_LAZY_LOAD_COLUMNS). + return $startcol + 39; // 39 = ProcessPeer::NUM_COLUMNS - ProcessPeer::NUM_LAZY_LOAD_COLUMNS). } catch (Exception $e) { throw new PropelException("Error populating Process object", $e); @@ -1983,6 +2024,9 @@ abstract class BaseProcess extends BaseObject implements Persistent case 37: return $this->getProItee(); break; + case 38: + return $this->getProActionDone(); + break; default: return null; break; @@ -2041,6 +2085,7 @@ abstract class BaseProcess extends BaseObject implements Persistent $keys[35] => $this->getProCost(), $keys[36] => $this->getProUnitCost(), $keys[37] => $this->getProItee(), + $keys[38] => $this->getProActionDone(), ); return $result; } @@ -2186,6 +2231,9 @@ abstract class BaseProcess extends BaseObject implements Persistent case 37: $this->setProItee($value); break; + case 38: + $this->setProActionDone($value); + break; } // switch() } @@ -2361,6 +2409,10 @@ abstract class BaseProcess extends BaseObject implements Persistent $this->setProItee($arr[$keys[37]]); } + if (array_key_exists($keys[38], $arr)) { + $this->setProActionDone($arr[$keys[38]]); + } + } /** @@ -2524,6 +2576,10 @@ abstract class BaseProcess extends BaseObject implements Persistent $criteria->add(ProcessPeer::PRO_ITEE, $this->pro_itee); } + if ($this->isColumnModified(ProcessPeer::PRO_ACTION_DONE)) { + $criteria->add(ProcessPeer::PRO_ACTION_DONE, $this->pro_action_done); + } + return $criteria; } @@ -2652,6 +2708,8 @@ abstract class BaseProcess extends BaseObject implements Persistent $copyObj->setProItee($this->pro_itee); + $copyObj->setProActionDone($this->pro_action_done); + $copyObj->setNew(true); diff --git a/workflow/engine/classes/model/om/BaseProcessPeer.php b/workflow/engine/classes/model/om/BaseProcessPeer.php index ee25dc5b7..f84bb0718 100755 --- a/workflow/engine/classes/model/om/BaseProcessPeer.php +++ b/workflow/engine/classes/model/om/BaseProcessPeer.php @@ -25,7 +25,7 @@ abstract class BaseProcessPeer const CLASS_DEFAULT = 'classes.model.Process'; /** The total number of columns. */ - const NUM_COLUMNS = 37; + const NUM_COLUMNS = 39; /** The number of lazy-loaded columns. */ const NUM_LAZY_LOAD_COLUMNS = 0; @@ -145,6 +145,9 @@ abstract class BaseProcessPeer /** the column name for the PRO_ITEE field */ const PRO_ITEE = 'PROCESS.PRO_ITEE'; + /** the column name for the PRO_ACTION_DONE field */ + const PRO_ACTION_DONE = 'PROCESS.PRO_ACTION_DONE'; + /** The PHP to DB Name Mapping */ private static $phpNameMap = null; @@ -156,10 +159,10 @@ abstract class BaseProcessPeer * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' */ private static $fieldNames = array ( - BasePeer::TYPE_PHPNAME => array ('ProUid', 'ProTitle', 'ProDescription', 'ProParent', 'ProTime', 'ProTimeunit', 'ProStatus', 'ProTypeDay', 'ProType', 'ProAssignment', 'ProShowMap', 'ProShowMessage', 'ProSubprocess', 'ProTriOpen', 'ProTriDeleted', 'ProTriCanceled', 'ProTriPaused', 'ProTriReassigned', 'ProTriUnpaused', 'ProTypeProcess', 'ProShowDelegate', 'ProShowDynaform', 'ProCategory', 'ProSubCategory', 'ProIndustry', 'ProUpdateDate', 'ProCreateDate', 'ProCreateUser', 'ProHeight', 'ProWidth', 'ProTitleX', 'ProTitleY', 'ProDebug', 'ProDynaforms', 'ProDerivationScreenTpl', 'ProCost', 'ProUnitCost', 'ProItee', ), - BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID, ProcessPeer::PRO_TITLE, ProcessPeer::PRO_DESCRIPTION, ProcessPeer::PRO_PARENT, ProcessPeer::PRO_TIME, ProcessPeer::PRO_TIMEUNIT, ProcessPeer::PRO_STATUS, ProcessPeer::PRO_TYPE_DAY, ProcessPeer::PRO_TYPE, ProcessPeer::PRO_ASSIGNMENT, ProcessPeer::PRO_SHOW_MAP, ProcessPeer::PRO_SHOW_MESSAGE, ProcessPeer::PRO_SUBPROCESS, ProcessPeer::PRO_TRI_OPEN, ProcessPeer::PRO_TRI_DELETED, ProcessPeer::PRO_TRI_CANCELED, ProcessPeer::PRO_TRI_PAUSED, ProcessPeer::PRO_TRI_REASSIGNED, ProcessPeer::PRO_TRI_UNPAUSED, ProcessPeer::PRO_TYPE_PROCESS, ProcessPeer::PRO_SHOW_DELEGATE, ProcessPeer::PRO_SHOW_DYNAFORM, ProcessPeer::PRO_CATEGORY, ProcessPeer::PRO_SUB_CATEGORY, ProcessPeer::PRO_INDUSTRY, ProcessPeer::PRO_UPDATE_DATE, ProcessPeer::PRO_CREATE_DATE, ProcessPeer::PRO_CREATE_USER, ProcessPeer::PRO_HEIGHT, ProcessPeer::PRO_WIDTH, ProcessPeer::PRO_TITLE_X, ProcessPeer::PRO_TITLE_Y, ProcessPeer::PRO_DEBUG, ProcessPeer::PRO_DYNAFORMS, ProcessPeer::PRO_DERIVATION_SCREEN_TPL, ProcessPeer::PRO_COST, ProcessPeer::PRO_UNIT_COST, ProcessPeer::PRO_ITEE, ), - BasePeer::TYPE_FIELDNAME => array ('PRO_UID', 'PRO_TITLE', 'PRO_DESCRIPTION', 'PRO_PARENT', 'PRO_TIME', 'PRO_TIMEUNIT', 'PRO_STATUS', 'PRO_TYPE_DAY', 'PRO_TYPE', 'PRO_ASSIGNMENT', 'PRO_SHOW_MAP', 'PRO_SHOW_MESSAGE', 'PRO_SUBPROCESS', 'PRO_TRI_OPEN', 'PRO_TRI_DELETED', 'PRO_TRI_CANCELED', 'PRO_TRI_PAUSED', 'PRO_TRI_REASSIGNED', 'PRO_TRI_UNPAUSED', 'PRO_TYPE_PROCESS', 'PRO_SHOW_DELEGATE', 'PRO_SHOW_DYNAFORM', 'PRO_CATEGORY', 'PRO_SUB_CATEGORY', 'PRO_INDUSTRY', 'PRO_UPDATE_DATE', 'PRO_CREATE_DATE', 'PRO_CREATE_USER', 'PRO_HEIGHT', 'PRO_WIDTH', 'PRO_TITLE_X', 'PRO_TITLE_Y', 'PRO_DEBUG', 'PRO_DYNAFORMS', 'PRO_DERIVATION_SCREEN_TPL', 'PRO_COST', 'PRO_UNIT_COST', 'PRO_ITEE', ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, ) + BasePeer::TYPE_PHPNAME => array ('ProUid', 'ProTitle', 'ProDescription', 'ProParent', 'ProTime', 'ProTimeunit', 'ProStatus', 'ProTypeDay', 'ProType', 'ProAssignment', 'ProShowMap', 'ProShowMessage', 'ProSubprocess', 'ProTriOpen', 'ProTriDeleted', 'ProTriCanceled', 'ProTriPaused', 'ProTriReassigned', 'ProTriUnpaused', 'ProTypeProcess', 'ProShowDelegate', 'ProShowDynaform', 'ProCategory', 'ProSubCategory', 'ProIndustry', 'ProUpdateDate', 'ProCreateDate', 'ProCreateUser', 'ProHeight', 'ProWidth', 'ProTitleX', 'ProTitleY', 'ProDebug', 'ProDynaforms', 'ProDerivationScreenTpl', 'ProCost', 'ProUnitCost', 'ProItee', 'ProActionDone', ), + BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID, ProcessPeer::PRO_TITLE, ProcessPeer::PRO_DESCRIPTION, ProcessPeer::PRO_PARENT, ProcessPeer::PRO_TIME, ProcessPeer::PRO_TIMEUNIT, ProcessPeer::PRO_STATUS, ProcessPeer::PRO_TYPE_DAY, ProcessPeer::PRO_TYPE, ProcessPeer::PRO_ASSIGNMENT, ProcessPeer::PRO_SHOW_MAP, ProcessPeer::PRO_SHOW_MESSAGE, ProcessPeer::PRO_SUBPROCESS, ProcessPeer::PRO_TRI_OPEN, ProcessPeer::PRO_TRI_DELETED, ProcessPeer::PRO_TRI_CANCELED, ProcessPeer::PRO_TRI_PAUSED, ProcessPeer::PRO_TRI_REASSIGNED, ProcessPeer::PRO_TRI_UNPAUSED, ProcessPeer::PRO_TYPE_PROCESS, ProcessPeer::PRO_SHOW_DELEGATE, ProcessPeer::PRO_SHOW_DYNAFORM, ProcessPeer::PRO_CATEGORY, ProcessPeer::PRO_SUB_CATEGORY, ProcessPeer::PRO_INDUSTRY, ProcessPeer::PRO_UPDATE_DATE, ProcessPeer::PRO_CREATE_DATE, ProcessPeer::PRO_CREATE_USER, ProcessPeer::PRO_HEIGHT, ProcessPeer::PRO_WIDTH, ProcessPeer::PRO_TITLE_X, ProcessPeer::PRO_TITLE_Y, ProcessPeer::PRO_DEBUG, ProcessPeer::PRO_DYNAFORMS, ProcessPeer::PRO_DERIVATION_SCREEN_TPL, ProcessPeer::PRO_COST, ProcessPeer::PRO_UNIT_COST, ProcessPeer::PRO_ITEE, ProcessPeer::PRO_ACTION_DONE, ), + BasePeer::TYPE_FIELDNAME => array ('PRO_UID', 'PRO_TITLE', 'PRO_DESCRIPTION', 'PRO_PARENT', 'PRO_TIME', 'PRO_TIMEUNIT', 'PRO_STATUS', 'PRO_TYPE_DAY', 'PRO_TYPE', 'PRO_ASSIGNMENT', 'PRO_SHOW_MAP', 'PRO_SHOW_MESSAGE', 'PRO_SUBPROCESS', 'PRO_TRI_OPEN', 'PRO_TRI_DELETED', 'PRO_TRI_CANCELED', 'PRO_TRI_PAUSED', 'PRO_TRI_REASSIGNED', 'PRO_TRI_UNPAUSED', 'PRO_TYPE_PROCESS', 'PRO_SHOW_DELEGATE', 'PRO_SHOW_DYNAFORM', 'PRO_CATEGORY', 'PRO_SUB_CATEGORY', 'PRO_INDUSTRY', 'PRO_UPDATE_DATE', 'PRO_CREATE_DATE', 'PRO_CREATE_USER', 'PRO_HEIGHT', 'PRO_WIDTH', 'PRO_TITLE_X', 'PRO_TITLE_Y', 'PRO_DEBUG', 'PRO_DYNAFORMS', 'PRO_DERIVATION_SCREEN_TPL', 'PRO_COST', 'PRO_UNIT_COST', 'PRO_ITEE', 'PRO_ACTION_DONE', ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, ) ); /** @@ -169,10 +172,10 @@ abstract class BaseProcessPeer * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 */ private static $fieldKeys = array ( - BasePeer::TYPE_PHPNAME => array ('ProUid' => 0, 'ProTitle' => 1, 'ProDescription' => 2, 'ProParent' => 3, 'ProTime' => 4, 'ProTimeunit' => 5, 'ProStatus' => 6, 'ProTypeDay' => 7, 'ProType' => 8, 'ProAssignment' => 9, 'ProShowMap' => 10, 'ProShowMessage' => 11, 'ProSubprocess' => 12, 'ProTriOpen' => 13, 'ProTriDeleted' => 14, 'ProTriCanceled' => 15, 'ProTriPaused' => 16, 'ProTriReassigned' => 17, 'ProTriUnpaused' => 18, 'ProTypeProcess' => 19, 'ProShowDelegate' => 20, 'ProShowDynaform' => 21, 'ProCategory' => 22, 'ProSubCategory' => 23, 'ProIndustry' => 24, 'ProUpdateDate' => 25, 'ProCreateDate' => 26, 'ProCreateUser' => 27, 'ProHeight' => 28, 'ProWidth' => 29, 'ProTitleX' => 30, 'ProTitleY' => 31, 'ProDebug' => 32, 'ProDynaforms' => 33, 'ProDerivationScreenTpl' => 34, 'ProCost' => 35, 'ProUnitCost' => 36, 'ProItee' => 37, ), - BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID => 0, ProcessPeer::PRO_TITLE => 1, ProcessPeer::PRO_DESCRIPTION => 2, ProcessPeer::PRO_PARENT => 3, ProcessPeer::PRO_TIME => 4, ProcessPeer::PRO_TIMEUNIT => 5, ProcessPeer::PRO_STATUS => 6, ProcessPeer::PRO_TYPE_DAY => 7, ProcessPeer::PRO_TYPE => 8, ProcessPeer::PRO_ASSIGNMENT => 9, ProcessPeer::PRO_SHOW_MAP => 10, ProcessPeer::PRO_SHOW_MESSAGE => 11, ProcessPeer::PRO_SUBPROCESS => 12, ProcessPeer::PRO_TRI_OPEN => 13, ProcessPeer::PRO_TRI_DELETED => 14, ProcessPeer::PRO_TRI_CANCELED => 15, ProcessPeer::PRO_TRI_PAUSED => 16, ProcessPeer::PRO_TRI_REASSIGNED => 17, ProcessPeer::PRO_TRI_UNPAUSED => 18, ProcessPeer::PRO_TYPE_PROCESS => 19, ProcessPeer::PRO_SHOW_DELEGATE => 20, ProcessPeer::PRO_SHOW_DYNAFORM => 21, ProcessPeer::PRO_CATEGORY => 22, ProcessPeer::PRO_SUB_CATEGORY => 23, ProcessPeer::PRO_INDUSTRY => 24, ProcessPeer::PRO_UPDATE_DATE => 25, ProcessPeer::PRO_CREATE_DATE => 26, ProcessPeer::PRO_CREATE_USER => 27, ProcessPeer::PRO_HEIGHT => 28, ProcessPeer::PRO_WIDTH => 29, ProcessPeer::PRO_TITLE_X => 30, ProcessPeer::PRO_TITLE_Y => 31, ProcessPeer::PRO_DEBUG => 32, ProcessPeer::PRO_DYNAFORMS => 33, ProcessPeer::PRO_DERIVATION_SCREEN_TPL => 34, ProcessPeer::PRO_COST => 35, ProcessPeer::PRO_UNIT_COST => 36, ProcessPeer::PRO_ITEE => 37, ), - BasePeer::TYPE_FIELDNAME => array ('PRO_UID' => 0, 'PRO_TITLE' => 1, 'PRO_DESCRIPTION' => 2, 'PRO_PARENT' => 3, 'PRO_TIME' => 4, 'PRO_TIMEUNIT' => 5, 'PRO_STATUS' => 6, 'PRO_TYPE_DAY' => 7, 'PRO_TYPE' => 8, 'PRO_ASSIGNMENT' => 9, 'PRO_SHOW_MAP' => 10, 'PRO_SHOW_MESSAGE' => 11, 'PRO_SUBPROCESS' => 12, 'PRO_TRI_OPEN' => 13, 'PRO_TRI_DELETED' => 14, 'PRO_TRI_CANCELED' => 15, 'PRO_TRI_PAUSED' => 16, 'PRO_TRI_REASSIGNED' => 17, 'PRO_TRI_UNPAUSED' => 18, 'PRO_TYPE_PROCESS' => 19, 'PRO_SHOW_DELEGATE' => 20, 'PRO_SHOW_DYNAFORM' => 21, 'PRO_CATEGORY' => 22, 'PRO_SUB_CATEGORY' => 23, 'PRO_INDUSTRY' => 24, 'PRO_UPDATE_DATE' => 25, 'PRO_CREATE_DATE' => 26, 'PRO_CREATE_USER' => 27, 'PRO_HEIGHT' => 28, 'PRO_WIDTH' => 29, 'PRO_TITLE_X' => 30, 'PRO_TITLE_Y' => 31, 'PRO_DEBUG' => 32, 'PRO_DYNAFORMS' => 33, 'PRO_DERIVATION_SCREEN_TPL' => 34, 'PRO_COST' => 35, 'PRO_UNIT_COST' => 36, 'PRO_ITEE' => 37, ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, ) + BasePeer::TYPE_PHPNAME => array ('ProUid' => 0, 'ProTitle' => 1, 'ProDescription' => 2, 'ProParent' => 3, 'ProTime' => 4, 'ProTimeunit' => 5, 'ProStatus' => 6, 'ProTypeDay' => 7, 'ProType' => 8, 'ProAssignment' => 9, 'ProShowMap' => 10, 'ProShowMessage' => 11, 'ProSubprocess' => 12, 'ProTriOpen' => 13, 'ProTriDeleted' => 14, 'ProTriCanceled' => 15, 'ProTriPaused' => 16, 'ProTriReassigned' => 17, 'ProTriUnpaused' => 18, 'ProTypeProcess' => 19, 'ProShowDelegate' => 20, 'ProShowDynaform' => 21, 'ProCategory' => 22, 'ProSubCategory' => 23, 'ProIndustry' => 24, 'ProUpdateDate' => 25, 'ProCreateDate' => 26, 'ProCreateUser' => 27, 'ProHeight' => 28, 'ProWidth' => 29, 'ProTitleX' => 30, 'ProTitleY' => 31, 'ProDebug' => 32, 'ProDynaforms' => 33, 'ProDerivationScreenTpl' => 34, 'ProCost' => 35, 'ProUnitCost' => 36, 'ProItee' => 37, 'ProActionDone' => 38, ), + BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID => 0, ProcessPeer::PRO_TITLE => 1, ProcessPeer::PRO_DESCRIPTION => 2, ProcessPeer::PRO_PARENT => 3, ProcessPeer::PRO_TIME => 4, ProcessPeer::PRO_TIMEUNIT => 5, ProcessPeer::PRO_STATUS => 6, ProcessPeer::PRO_TYPE_DAY => 7, ProcessPeer::PRO_TYPE => 8, ProcessPeer::PRO_ASSIGNMENT => 9, ProcessPeer::PRO_SHOW_MAP => 10, ProcessPeer::PRO_SHOW_MESSAGE => 11, ProcessPeer::PRO_SUBPROCESS => 12, ProcessPeer::PRO_TRI_OPEN => 13, ProcessPeer::PRO_TRI_DELETED => 14, ProcessPeer::PRO_TRI_CANCELED => 15, ProcessPeer::PRO_TRI_PAUSED => 16, ProcessPeer::PRO_TRI_REASSIGNED => 17, ProcessPeer::PRO_TRI_UNPAUSED => 18, ProcessPeer::PRO_TYPE_PROCESS => 19, ProcessPeer::PRO_SHOW_DELEGATE => 20, ProcessPeer::PRO_SHOW_DYNAFORM => 21, ProcessPeer::PRO_CATEGORY => 22, ProcessPeer::PRO_SUB_CATEGORY => 23, ProcessPeer::PRO_INDUSTRY => 24, ProcessPeer::PRO_UPDATE_DATE => 25, ProcessPeer::PRO_CREATE_DATE => 26, ProcessPeer::PRO_CREATE_USER => 27, ProcessPeer::PRO_HEIGHT => 28, ProcessPeer::PRO_WIDTH => 29, ProcessPeer::PRO_TITLE_X => 30, ProcessPeer::PRO_TITLE_Y => 31, ProcessPeer::PRO_DEBUG => 32, ProcessPeer::PRO_DYNAFORMS => 33, ProcessPeer::PRO_DERIVATION_SCREEN_TPL => 34, ProcessPeer::PRO_COST => 35, ProcessPeer::PRO_UNIT_COST => 36, ProcessPeer::PRO_ITEE => 37, ProcessPeer::PRO_ACTION_DONE => 38, ), + BasePeer::TYPE_FIELDNAME => array ('PRO_UID' => 0, 'PRO_TITLE' => 1, 'PRO_DESCRIPTION' => 2, 'PRO_PARENT' => 3, 'PRO_TIME' => 4, 'PRO_TIMEUNIT' => 5, 'PRO_STATUS' => 6, 'PRO_TYPE_DAY' => 7, 'PRO_TYPE' => 8, 'PRO_ASSIGNMENT' => 9, 'PRO_SHOW_MAP' => 10, 'PRO_SHOW_MESSAGE' => 11, 'PRO_SUBPROCESS' => 12, 'PRO_TRI_OPEN' => 13, 'PRO_TRI_DELETED' => 14, 'PRO_TRI_CANCELED' => 15, 'PRO_TRI_PAUSED' => 16, 'PRO_TRI_REASSIGNED' => 17, 'PRO_TRI_UNPAUSED' => 18, 'PRO_TYPE_PROCESS' => 19, 'PRO_SHOW_DELEGATE' => 20, 'PRO_SHOW_DYNAFORM' => 21, 'PRO_CATEGORY' => 22, 'PRO_SUB_CATEGORY' => 23, 'PRO_INDUSTRY' => 24, 'PRO_UPDATE_DATE' => 25, 'PRO_CREATE_DATE' => 26, 'PRO_CREATE_USER' => 27, 'PRO_HEIGHT' => 28, 'PRO_WIDTH' => 29, 'PRO_TITLE_X' => 30, 'PRO_TITLE_Y' => 31, 'PRO_DEBUG' => 32, 'PRO_DYNAFORMS' => 33, 'PRO_DERIVATION_SCREEN_TPL' => 34, 'PRO_COST' => 35, 'PRO_UNIT_COST' => 36, 'PRO_ITEE' => 37, 'PRO_ACTION_DONE' => 38, ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, ) ); /** @@ -349,6 +352,8 @@ abstract class BaseProcessPeer $criteria->addSelectColumn(ProcessPeer::PRO_ITEE); + $criteria->addSelectColumn(ProcessPeer::PRO_ACTION_DONE); + } const COUNT = 'COUNT(PROCESS.PRO_UID)'; diff --git a/workflow/engine/classes/model/om/BaseRoute.php b/workflow/engine/classes/model/om/BaseRoute.php index 77216db01..82f456c2f 100755 --- a/workflow/engine/classes/model/om/BaseRoute.php +++ b/workflow/engine/classes/model/om/BaseRoute.php @@ -135,12 +135,6 @@ abstract class BaseRoute extends BaseObject implements Persistent */ protected $gat_uid = ''; - /** - * The value for the rou_element_origin field. - * @var string - */ - protected $rou_element_origin = ''; - /** * Flag to prevent endless save loop, if this object is referenced * by another object which falls in this transaction. @@ -353,17 +347,6 @@ abstract class BaseRoute extends BaseObject implements Persistent return $this->gat_uid; } - /** - * Get the [rou_element_origin] column value. - * - * @return string - */ - public function getRouElementOrigin() - { - - return $this->rou_element_origin; - } - /** * Set the value of [rou_uid] column. * @@ -760,28 +743,6 @@ abstract class BaseRoute extends BaseObject implements Persistent } // setGatUid() - /** - * Set the value of [rou_element_origin] column. - * - * @param string $v new value - * @return void - */ - public function setRouElementOrigin($v) - { - - // Since the native PHP type for this column is string, - // we will cast the input to a string (if it is not). - if ($v !== null && !is_string($v)) { - $v = (string) $v; - } - - if ($this->rou_element_origin !== $v || $v === '') { - $this->rou_element_origin = $v; - $this->modifiedColumns[] = RoutePeer::ROU_ELEMENT_ORIGIN; - } - - } // setRouElementOrigin() - /** * Hydrates (populates) the object variables with values from the database resultset. * @@ -835,14 +796,12 @@ abstract class BaseRoute extends BaseObject implements Persistent $this->gat_uid = $rs->getString($startcol + 17); - $this->rou_element_origin = $rs->getString($startcol + 18); - $this->resetModified(); $this->setNew(false); // FIXME - using NUM_COLUMNS may be clearer. - return $startcol + 19; // 19 = RoutePeer::NUM_COLUMNS - RoutePeer::NUM_LAZY_LOAD_COLUMNS). + return $startcol + 18; // 18 = RoutePeer::NUM_COLUMNS - RoutePeer::NUM_LAZY_LOAD_COLUMNS). } catch (Exception $e) { throw new PropelException("Error populating Route object", $e); @@ -1100,9 +1059,6 @@ abstract class BaseRoute extends BaseObject implements Persistent case 17: return $this->getGatUid(); break; - case 18: - return $this->getRouElementOrigin(); - break; default: return null; break; @@ -1141,7 +1097,6 @@ abstract class BaseRoute extends BaseObject implements Persistent $keys[15] => $this->getRouFromPort(), $keys[16] => $this->getRouEvnUid(), $keys[17] => $this->getGatUid(), - $keys[18] => $this->getRouElementOrigin(), ); return $result; } @@ -1227,9 +1182,6 @@ abstract class BaseRoute extends BaseObject implements Persistent case 17: $this->setGatUid($value); break; - case 18: - $this->setRouElementOrigin($value); - break; } // switch() } @@ -1325,10 +1277,6 @@ abstract class BaseRoute extends BaseObject implements Persistent $this->setGatUid($arr[$keys[17]]); } - if (array_key_exists($keys[18], $arr)) { - $this->setRouElementOrigin($arr[$keys[18]]); - } - } /** @@ -1412,10 +1360,6 @@ abstract class BaseRoute extends BaseObject implements Persistent $criteria->add(RoutePeer::GAT_UID, $this->gat_uid); } - if ($this->isColumnModified(RoutePeer::ROU_ELEMENT_ORIGIN)) { - $criteria->add(RoutePeer::ROU_ELEMENT_ORIGIN, $this->rou_element_origin); - } - return $criteria; } @@ -1504,8 +1448,6 @@ abstract class BaseRoute extends BaseObject implements Persistent $copyObj->setGatUid($this->gat_uid); - $copyObj->setRouElementOrigin($this->rou_element_origin); - $copyObj->setNew(true); diff --git a/workflow/engine/classes/model/om/BaseRoutePeer.php b/workflow/engine/classes/model/om/BaseRoutePeer.php index 2af9890dd..bceac65c0 100755 --- a/workflow/engine/classes/model/om/BaseRoutePeer.php +++ b/workflow/engine/classes/model/om/BaseRoutePeer.php @@ -25,7 +25,7 @@ abstract class BaseRoutePeer const CLASS_DEFAULT = 'classes.model.Route'; /** The total number of columns. */ - const NUM_COLUMNS = 19; + const NUM_COLUMNS = 18; /** The number of lazy-loaded columns. */ const NUM_LAZY_LOAD_COLUMNS = 0; @@ -85,9 +85,6 @@ abstract class BaseRoutePeer /** the column name for the GAT_UID field */ const GAT_UID = 'ROUTE.GAT_UID'; - /** the column name for the ROU_ELEMENT_ORIGIN field */ - const ROU_ELEMENT_ORIGIN = 'ROUTE.ROU_ELEMENT_ORIGIN'; - /** The PHP to DB Name Mapping */ private static $phpNameMap = null; @@ -99,10 +96,10 @@ abstract class BaseRoutePeer * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' */ private static $fieldNames = array ( - BasePeer::TYPE_PHPNAME => array ('RouUid', 'RouParent', 'ProUid', 'TasUid', 'RouNextTask', 'RouCase', 'RouType', 'RouDefault', 'RouCondition', 'RouToLastUser', 'RouOptional', 'RouSendEmail', 'RouSourceanchor', 'RouTargetanchor', 'RouToPort', 'RouFromPort', 'RouEvnUid', 'GatUid', 'RouElementOrigin', ), - BasePeer::TYPE_COLNAME => array (RoutePeer::ROU_UID, RoutePeer::ROU_PARENT, RoutePeer::PRO_UID, RoutePeer::TAS_UID, RoutePeer::ROU_NEXT_TASK, RoutePeer::ROU_CASE, RoutePeer::ROU_TYPE, RoutePeer::ROU_DEFAULT, RoutePeer::ROU_CONDITION, RoutePeer::ROU_TO_LAST_USER, RoutePeer::ROU_OPTIONAL, RoutePeer::ROU_SEND_EMAIL, RoutePeer::ROU_SOURCEANCHOR, RoutePeer::ROU_TARGETANCHOR, RoutePeer::ROU_TO_PORT, RoutePeer::ROU_FROM_PORT, RoutePeer::ROU_EVN_UID, RoutePeer::GAT_UID, RoutePeer::ROU_ELEMENT_ORIGIN, ), - BasePeer::TYPE_FIELDNAME => array ('ROU_UID', 'ROU_PARENT', 'PRO_UID', 'TAS_UID', 'ROU_NEXT_TASK', 'ROU_CASE', 'ROU_TYPE', 'ROU_DEFAULT', 'ROU_CONDITION', 'ROU_TO_LAST_USER', 'ROU_OPTIONAL', 'ROU_SEND_EMAIL', 'ROU_SOURCEANCHOR', 'ROU_TARGETANCHOR', 'ROU_TO_PORT', 'ROU_FROM_PORT', 'ROU_EVN_UID', 'GAT_UID', 'ROU_ELEMENT_ORIGIN', ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, ) + BasePeer::TYPE_PHPNAME => array ('RouUid', 'RouParent', 'ProUid', 'TasUid', 'RouNextTask', 'RouCase', 'RouType', 'RouDefault', 'RouCondition', 'RouToLastUser', 'RouOptional', 'RouSendEmail', 'RouSourceanchor', 'RouTargetanchor', 'RouToPort', 'RouFromPort', 'RouEvnUid', 'GatUid', ), + BasePeer::TYPE_COLNAME => array (RoutePeer::ROU_UID, RoutePeer::ROU_PARENT, RoutePeer::PRO_UID, RoutePeer::TAS_UID, RoutePeer::ROU_NEXT_TASK, RoutePeer::ROU_CASE, RoutePeer::ROU_TYPE, RoutePeer::ROU_DEFAULT, RoutePeer::ROU_CONDITION, RoutePeer::ROU_TO_LAST_USER, RoutePeer::ROU_OPTIONAL, RoutePeer::ROU_SEND_EMAIL, RoutePeer::ROU_SOURCEANCHOR, RoutePeer::ROU_TARGETANCHOR, RoutePeer::ROU_TO_PORT, RoutePeer::ROU_FROM_PORT, RoutePeer::ROU_EVN_UID, RoutePeer::GAT_UID, ), + BasePeer::TYPE_FIELDNAME => array ('ROU_UID', 'ROU_PARENT', 'PRO_UID', 'TAS_UID', 'ROU_NEXT_TASK', 'ROU_CASE', 'ROU_TYPE', 'ROU_DEFAULT', 'ROU_CONDITION', 'ROU_TO_LAST_USER', 'ROU_OPTIONAL', 'ROU_SEND_EMAIL', 'ROU_SOURCEANCHOR', 'ROU_TARGETANCHOR', 'ROU_TO_PORT', 'ROU_FROM_PORT', 'ROU_EVN_UID', 'GAT_UID', ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, ) ); /** @@ -112,10 +109,10 @@ abstract class BaseRoutePeer * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 */ private static $fieldKeys = array ( - BasePeer::TYPE_PHPNAME => array ('RouUid' => 0, 'RouParent' => 1, 'ProUid' => 2, 'TasUid' => 3, 'RouNextTask' => 4, 'RouCase' => 5, 'RouType' => 6, 'RouDefault' => 7, 'RouCondition' => 8, 'RouToLastUser' => 9, 'RouOptional' => 10, 'RouSendEmail' => 11, 'RouSourceanchor' => 12, 'RouTargetanchor' => 13, 'RouToPort' => 14, 'RouFromPort' => 15, 'RouEvnUid' => 16, 'GatUid' => 17, 'RouElementOrigin' => 18, ), - BasePeer::TYPE_COLNAME => array (RoutePeer::ROU_UID => 0, RoutePeer::ROU_PARENT => 1, RoutePeer::PRO_UID => 2, RoutePeer::TAS_UID => 3, RoutePeer::ROU_NEXT_TASK => 4, RoutePeer::ROU_CASE => 5, RoutePeer::ROU_TYPE => 6, RoutePeer::ROU_DEFAULT => 7, RoutePeer::ROU_CONDITION => 8, RoutePeer::ROU_TO_LAST_USER => 9, RoutePeer::ROU_OPTIONAL => 10, RoutePeer::ROU_SEND_EMAIL => 11, RoutePeer::ROU_SOURCEANCHOR => 12, RoutePeer::ROU_TARGETANCHOR => 13, RoutePeer::ROU_TO_PORT => 14, RoutePeer::ROU_FROM_PORT => 15, RoutePeer::ROU_EVN_UID => 16, RoutePeer::GAT_UID => 17, RoutePeer::ROU_ELEMENT_ORIGIN => 18, ), - BasePeer::TYPE_FIELDNAME => array ('ROU_UID' => 0, 'ROU_PARENT' => 1, 'PRO_UID' => 2, 'TAS_UID' => 3, 'ROU_NEXT_TASK' => 4, 'ROU_CASE' => 5, 'ROU_TYPE' => 6, 'ROU_DEFAULT' => 7, 'ROU_CONDITION' => 8, 'ROU_TO_LAST_USER' => 9, 'ROU_OPTIONAL' => 10, 'ROU_SEND_EMAIL' => 11, 'ROU_SOURCEANCHOR' => 12, 'ROU_TARGETANCHOR' => 13, 'ROU_TO_PORT' => 14, 'ROU_FROM_PORT' => 15, 'ROU_EVN_UID' => 16, 'GAT_UID' => 17, 'ROU_ELEMENT_ORIGIN' => 18, ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, ) + BasePeer::TYPE_PHPNAME => array ('RouUid' => 0, 'RouParent' => 1, 'ProUid' => 2, 'TasUid' => 3, 'RouNextTask' => 4, 'RouCase' => 5, 'RouType' => 6, 'RouDefault' => 7, 'RouCondition' => 8, 'RouToLastUser' => 9, 'RouOptional' => 10, 'RouSendEmail' => 11, 'RouSourceanchor' => 12, 'RouTargetanchor' => 13, 'RouToPort' => 14, 'RouFromPort' => 15, 'RouEvnUid' => 16, 'GatUid' => 17, ), + BasePeer::TYPE_COLNAME => array (RoutePeer::ROU_UID => 0, RoutePeer::ROU_PARENT => 1, RoutePeer::PRO_UID => 2, RoutePeer::TAS_UID => 3, RoutePeer::ROU_NEXT_TASK => 4, RoutePeer::ROU_CASE => 5, RoutePeer::ROU_TYPE => 6, RoutePeer::ROU_DEFAULT => 7, RoutePeer::ROU_CONDITION => 8, RoutePeer::ROU_TO_LAST_USER => 9, RoutePeer::ROU_OPTIONAL => 10, RoutePeer::ROU_SEND_EMAIL => 11, RoutePeer::ROU_SOURCEANCHOR => 12, RoutePeer::ROU_TARGETANCHOR => 13, RoutePeer::ROU_TO_PORT => 14, RoutePeer::ROU_FROM_PORT => 15, RoutePeer::ROU_EVN_UID => 16, RoutePeer::GAT_UID => 17, ), + BasePeer::TYPE_FIELDNAME => array ('ROU_UID' => 0, 'ROU_PARENT' => 1, 'PRO_UID' => 2, 'TAS_UID' => 3, 'ROU_NEXT_TASK' => 4, 'ROU_CASE' => 5, 'ROU_TYPE' => 6, 'ROU_DEFAULT' => 7, 'ROU_CONDITION' => 8, 'ROU_TO_LAST_USER' => 9, 'ROU_OPTIONAL' => 10, 'ROU_SEND_EMAIL' => 11, 'ROU_SOURCEANCHOR' => 12, 'ROU_TARGETANCHOR' => 13, 'ROU_TO_PORT' => 14, 'ROU_FROM_PORT' => 15, 'ROU_EVN_UID' => 16, 'GAT_UID' => 17, ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, ) ); /** @@ -252,8 +249,6 @@ abstract class BaseRoutePeer $criteria->addSelectColumn(RoutePeer::GAT_UID); - $criteria->addSelectColumn(RoutePeer::ROU_ELEMENT_ORIGIN); - } const COUNT = 'COUNT(ROUTE.ROU_UID)'; diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index f6face3a0..dc63b356c 100755 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -913,6 +913,7 @@ + @@ -1086,7 +1087,6 @@ - @@ -4641,7 +4641,6 @@ - diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index b6c79bf91..7aac677c2 100755 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -460,6 +460,7 @@ CREATE TABLE `PROCESS` `PRO_COST` DECIMAL(7,2) default 0, `PRO_UNIT_COST` VARCHAR(50) default '', `PRO_ITEE` INTEGER default 0 NOT NULL, + `PRO_ACTION_DONE` MEDIUMTEXT default '', PRIMARY KEY (`PRO_UID`) )ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Store process Information'; #----------------------------------------------------------------------------- @@ -537,7 +538,6 @@ CREATE TABLE `ROUTE` `ROU_FROM_PORT` INTEGER default 2 NOT NULL, `ROU_EVN_UID` VARCHAR(32) default '' NOT NULL, `GAT_UID` VARCHAR(32) default '' NOT NULL, - `ROU_ELEMENT_ORIGIN` VARCHAR(32) default '', PRIMARY KEY (`ROU_UID`) )ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Differents flows for a flow in business process'; #----------------------------------------------------------------------------- @@ -2678,7 +2678,6 @@ CREATE TABLE `ELEMENT_TASK_RELATION` `ELEMENT_UID` VARCHAR(32) NOT NULL, `ELEMENT_TYPE` VARCHAR(50) default '' NOT NULL, `TAS_UID` VARCHAR(32) NOT NULL, - `ELEMENT_UID_DEST` VARCHAR(32) default '', PRIMARY KEY (`ETR_UID`) )ENGINE=InnoDB DEFAULT CHARSET='utf8'; #----------------------------------------------------------------------------- diff --git a/workflow/engine/methods/processes/processes_Delete.php b/workflow/engine/methods/processes/processes_Delete.php index 3e88c8ccd..2ccbdd5d3 100755 --- a/workflow/engine/methods/processes/processes_Delete.php +++ b/workflow/engine/methods/processes/processes_Delete.php @@ -42,9 +42,9 @@ if ($access != 1) { //$oProcessMap = new ProcessMap(); $uids = explode(',', $_POST['PRO_UIDS']); -try { +try { - foreach ($uids as $uid) { + foreach ($uids as $uid) { //Add Audit Log $oProcess = new Process(); $process=$oProcess->load($uid); @@ -59,10 +59,11 @@ try { $resp = new StdClass(); $resp->status = 0; $resp->msg = 'All process was deleted successfully'; - + echo G::json_encode($resp); } catch (Exception $e) { + $resp = new stdClass(); $resp->status = 1; $resp->msg = $e->getMessage(); echo G::json_encode($resp); diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/ElementTaskRelation.php b/workflow/engine/src/ProcessMaker/BusinessModel/ElementTaskRelation.php index d4ae63618..9f06bd850 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/ElementTaskRelation.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/ElementTaskRelation.php @@ -9,8 +9,7 @@ class ElementTaskRelation "PRJ_UID" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "projectUid"), "ELEMENT_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "elementUid"), "ELEMENT_TYPE" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "elementType"), - "TAS_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "taskUid"), - "ELEMENT_UID_DEST" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "elementUidDest") + "TAS_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "taskUid") ); private $formatFieldNameInUppercase = true; @@ -360,30 +359,5 @@ class ElementTaskRelation throw $e; } } - - /** - * Verify if exists the Element-Task-Relation Gateway to Gateway - * - * @param string $elementUid uid of Element-Task-Relation - * @param string $elementUidDest uid of Element-Task-Relation Destiny - * - * return bool Return true if exists the Element-Task-Relation Gateway to Gateway, false otherwise - */ - public function existsGatewayToGateway($elementUid,$elementUidDest) - { - try { - $criteria = new \Criteria("workflow"); - $criteria->addSelectColumn(\ElementTaskRelationPeer::ETR_UID); - $criteria->add(\ElementTaskRelationPeer::ELEMENT_UID, $elementUid, \Criteria::EQUAL); - $criteria->add(\ElementTaskRelationPeer::ELEMENT_UID_DEST, $elementUidDest, \Criteria::EQUAL); - $rsCriteria = \UsersPeer::doSelectRS( $criteria ); - $rsCriteria->setFetchmode( \ResultSet::FETCHMODE_ASSOC ); - $rsCriteria->next(); - - return ( $rsCriteria->getRow() )? true : false; - } catch (\Exception $e) { - throw $e; - } - } } diff --git a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php index 262f7765a..d7154ebfa 100755 --- a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php @@ -718,26 +718,10 @@ class BpmnWorkflow extends Project\Bpmn } */ - public function createTaskByElement($elementUid, $elementType, $key, $elementUidDest="", $routeType = '') + private function __createTaskByElement($elementUid, $elementType, $key) { try { - $flagElementTaskRelation = false; - if($elementUidDest != ""){ - if( isset($this->arrayElementTaskRelation[$elementUid][$elementUidDest]) ){ - $flagElementTaskRelation = true; - }else{ - $flagElementTaskRelation = false; - } - }else{ - if (isset($this->arrayElementTaskRelation[$elementUid])) { - $taskUid = $this->arrayElementTaskRelation[$elementUid]; - $flagElementTaskRelation = true; - }else{ - $flagElementTaskRelation = false; - } - } - if ($flagElementTaskRelation || (isset($this->arrayElementTaskRelation[$elementUid]) && $routeType === - 'SEC-JOIN')) { + if (isset($this->arrayElementTaskRelation[$elementUid])) { $taskUid = $this->arrayElementTaskRelation[$elementUid]; } else { $taskPosX = 0; @@ -793,30 +777,16 @@ class BpmnWorkflow extends Project\Bpmn //Element-Task-Relation - Create $elementTaskRelation = new \ProcessMaker\BusinessModel\ElementTaskRelation(); - if($elementUidDest == ""){ - $arrayResult = $elementTaskRelation->create( - $this->wp->getUid(), - array( - "ELEMENT_UID" => $elementUid, - "ELEMENT_TYPE" => $elementType, - "TAS_UID" => $taskUid - ) - ); - }else{ - $createGaToGa = $elementTaskRelation->existsGatewayToGateway($elementUid, $elementUidDest); - if(!$createGaToGa){ - $arrayResult = $elementTaskRelation->create( - $this->wp->getUid(), - array( - "ELEMENT_UID" => $elementUid, - "ELEMENT_TYPE" => $elementType, - "TAS_UID" => $taskUid, - "ELEMENT_UID_DEST" => $elementUidDest - ) - ); - } - } + $arrayResult = $elementTaskRelation->create( + $this->wp->getUid(), + [ + 'ELEMENT_UID' => $elementUid, + 'ELEMENT_TYPE' => $elementType, + 'TAS_UID' => $taskUid + ] + ); + //Array - Add element $this->arrayElementTaskRelation[$elementUid] = $taskUid; } @@ -899,12 +869,10 @@ class BpmnWorkflow extends Project\Bpmn break; case "bpmnGateway": //Gateway ----> Gateway - $taskUid = $this->createTaskByElement( - $gatewayUid, - "bpmnGateway", - "gateway-to-gateway", - $arrayFlowData["FLO_ELEMENT_DEST"], - $routeType + $taskUid = $this->__createTaskByElement( + $arrayFlowData['FLO_ELEMENT_DEST'], + 'bpmnGateway', + 'gateway-to-gateway' ); $result = $this->wp->addRoute($activityUid, $taskUid, $routeType, $routeCondition, $routeDefault); @@ -924,7 +892,7 @@ class BpmnWorkflow extends Project\Bpmn //$event->getEvnMarker(): EMPTY or MESSAGETHROW switch ($event->getEvnMarker()) { case "MESSAGETHROW": - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $event->getEvnUid(), "bpmnEvent", "end-message-event" @@ -934,7 +902,7 @@ class BpmnWorkflow extends Project\Bpmn $result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL"); break; case "EMAIL": - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $event->getEvnUid(), "bpmnEvent", "end-email-event" @@ -986,7 +954,7 @@ class BpmnWorkflow extends Project\Bpmn "EMAIL" => "intermediate-throw-email-event" ); - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $eventUid, "bpmnEvent", $arrayKey[$arrayEventData["EVN_MARKER"]] @@ -1039,7 +1007,7 @@ class BpmnWorkflow extends Project\Bpmn //$event->getEvnMarker(): EMPTY or MESSAGETHROW switch ($event->getEvnMarker()) { case "MESSAGETHROW": - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $event->getEvnUid(), "bpmnEvent", "end-message-event" @@ -1049,7 +1017,7 @@ class BpmnWorkflow extends Project\Bpmn $result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL"); break; case "EMAIL": - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $event->getEvnUid(), "bpmnEvent", "end-email-event" @@ -1060,7 +1028,7 @@ class BpmnWorkflow extends Project\Bpmn break; default: //EMPTY //and others types - $result = $this->wp->addRoute($activityUid, -1, $routeType, $routeCondition, $routeDefault, $eventUid); + $result = $this->wp->addRoute($activityUid, -1, $routeType, $routeCondition, $routeDefault); break; } break; @@ -1088,18 +1056,17 @@ class BpmnWorkflow extends Project\Bpmn public function mapBpmnFlowsToWorkflowRoutes() { - //Task dummies //Delete Task Routes - foreach ($this->arrayElementTaskRelation as $value) { - $this->wp->resetTaskRoutes($value); - } + //Delete Routes + $criteria = new \Criteria('workflow'); + + $criteria->add(\RoutePeer::PRO_UID, $this->wp->getUid(), \Criteria::EQUAL); + + \RoutePeer::doDelete($criteria); //Activities foreach ($this->getActivities() as $value) { $activity = $value; - //Delete Task Routes - $this->wp->resetTaskRoutes($activity["ACT_UID"]); - //Flows $arrayFlow = \BpmnFlow::findAllBy(array( \BpmnFlowPeer::FLO_TYPE => array("MESSAGE", \Criteria::NOT_EQUAL), @@ -1133,7 +1100,7 @@ class BpmnWorkflow extends Project\Bpmn //$event->getEvnMarker(): EMPTY or MESSAGETHROW switch ($event->getEvnMarker()) { case "MESSAGETHROW": - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $event->getEvnUid(), "bpmnEvent", "end-message-event" @@ -1143,7 +1110,7 @@ class BpmnWorkflow extends Project\Bpmn $result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL"); break; case "EMAIL": - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $event->getEvnUid(), "bpmnEvent", "end-email-event" @@ -1178,7 +1145,7 @@ class BpmnWorkflow extends Project\Bpmn case "START": switch ($event["EVN_MARKER"]) { case "MESSAGECATCH": - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $event["EVN_UID"], "bpmnEvent", "start-message-event" @@ -1189,7 +1156,7 @@ class BpmnWorkflow extends Project\Bpmn $this->mapBpmnEventToWorkflowRoutes($taskUid, $event["EVN_UID"]); break; case "TIMER": - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $event["EVN_UID"], "bpmnEvent", "start-timer-event" @@ -1481,6 +1448,7 @@ class BpmnWorkflow extends Project\Bpmn $uidOld = $lanesetData["LNS_UID"]; $lanesetData["LNS_UID"] = Util\Common::generateUID(); $diagram = self::refreshElementUid($diagram, $uidOld, $lanesetData["LNS_UID"]); + $result[] = array( "object" => "laneset", "old_uid" => $uidOld, @@ -1525,6 +1493,7 @@ class BpmnWorkflow extends Project\Bpmn $uidOld = $laneData["LAN_UID"]; $laneData["LAN_UID"] = Util\Common::generateUID(); $diagram = self::refreshElementUid($diagram, $uidOld, $laneData["LAN_UID"]); + $result[] = array( "object" => "lane", "old_uid" => $uidOld, @@ -1948,14 +1917,27 @@ class BpmnWorkflow extends Project\Bpmn $arrayGatewayData = $bwp->getGateway($value); if (!is_null($arrayGatewayData)) { - $arrayFlow = \BpmnFlow::findAllBy(array( - \BpmnFlowPeer::FLO_TYPE => array("MESSAGE", \Criteria::NOT_EQUAL), - \BpmnFlowPeer::FLO_ELEMENT_DEST => $arrayGatewayData["GAT_UID"], - \BpmnFlowPeer::FLO_ELEMENT_DEST_TYPE => "bpmnGateway" - )); + $arrayFlow = \BpmnFlow::findAllBy([ + \BpmnFlowPeer::FLO_TYPE => ['MESSAGE', \Criteria::NOT_EQUAL], + \BpmnFlowPeer::FLO_ELEMENT_DEST => $arrayGatewayData['GAT_UID'], + \BpmnFlowPeer::FLO_ELEMENT_DEST_TYPE => 'bpmnGateway' + ]); if (count($arrayFlow) > 1) { - $bwp->updateGateway($arrayGatewayData["GAT_UID"], array("GAT_DIRECTION" => "CONVERGING")); + $arrayFlow = \BpmnFlow::findAllBy([ + \BpmnFlowPeer::FLO_TYPE => ['MESSAGE', \Criteria::NOT_EQUAL], + \BpmnFlowPeer::FLO_ELEMENT_ORIGIN => $arrayGatewayData['GAT_UID'], + \BpmnFlowPeer::FLO_ELEMENT_ORIGIN_TYPE => 'bpmnGateway' + ]); + + if (count($arrayFlow) == 1) { + $bwp->updateGateway($arrayGatewayData['GAT_UID'], ['GAT_DIRECTION' => 'CONVERGING']); + + $arrayFlowData = $arrayFlow[0]->toArray(); + + $bpmn = new Project\Bpmn(); + $bpmn->updateFlow($arrayFlowData['FLO_UID'], array_merge($arrayFlowData, ['FLO_CONDITION' => ''])); + } } } } @@ -1968,6 +1950,8 @@ class BpmnWorkflow extends Project\Bpmn //Map Bpmn-Flows to Workflow-Routes $bwp->mapBpmnFlowsToWorkflowRoutes(); + $bwp->__gatewayToGatewayDeleteCorruptedRecords(); //Delete corrupted records in task and element_task_relation tables + //Return return $result; } @@ -2058,5 +2042,74 @@ class BpmnWorkflow extends Project\Bpmn ); return $diagram; } -} + private function __gatewayToGatewayDeleteCorruptedRecords() + { + //Delete corrupted records in task and element_task_relation tables + + $actionDone = 'GATEWAYTOGATEWAY_DELETE_CORRUPTED_RECORDS'; + + $criteria = new \Criteria('workflow'); + + $criteria->addSelectColumn(\ProcessPeer::PRO_UID); + + $criteria->add(\ProcessPeer::PRO_UID, $this->wp->getUid(), \Criteria::EQUAL); + $criteria->add(\ProcessPeer::PRO_ACTION_DONE, '%' . $actionDone . '%', \Criteria::LIKE); + + $rsCriteria = \ProcessPeer::doSelectRS($criteria); + + if (!$rsCriteria->next()) { + $arrayTaskUid = []; + + $criteria = new \Criteria('workflow'); + + $criteria->addSelectColumn(\TaskPeer::TAS_UID); + + $criteria->addAlias('RT', \RoutePeer::TABLE_NAME); + $criteria->addAlias('RNT', \RoutePeer::TABLE_NAME); + + $arrayCondition = []; + $arrayCondition[] = [\TaskPeer::TAS_UID, 'RT.TAS_UID', \Criteria::EQUAL]; + $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN); + + $arrayCondition = []; + $arrayCondition[] = [\TaskPeer::TAS_UID, 'RNT.ROU_NEXT_TASK', \Criteria::EQUAL]; + $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN); + + $criteria->add(\TaskPeer::PRO_UID, $this->wp->getUid(), \Criteria::EQUAL); + $criteria->add(\TaskPeer::TAS_TYPE, 'GATEWAYTOGATEWAY', \Criteria::EQUAL); + + $criteria->add( + $criteria->getNewCriterion('RT.ROU_UID', null, \Criteria::ISNULL)->addAnd( + $criteria->getNewCriterion('RNT.ROU_UID', null, \Criteria::ISNULL)) + ); + + $rsCriteria = \TaskPeer::doSelectRS($criteria); + $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + + while ($rsCriteria->next()) { + $record = $rsCriteria->getRow(); + + $arrayTaskUid[] = $record['TAS_UID']; + } + + //Delete Task corrupted + $criteria = new \Criteria('workflow'); + $criteria->add(\TaskPeer::TAS_UID, $arrayTaskUid, \Criteria::IN); + $result = \TaskPeer::doDelete($criteria); + + //Delete ElementTaskRelation corrupted + $criteria = new \Criteria('workflow'); + $criteria->add(\ElementTaskRelationPeer::TAS_UID, $arrayTaskUid, \Criteria::IN); + $result = \ElementTaskRelationPeer::doDelete($criteria); + + //Update Process + $process = \ProcessPeer::retrieveByPk($this->wp->getUid()); + + $arrayActionDone = ($process->getProActionDone() != '')? unserialize($process->getProActionDone()) : []; + $arrayActionDone[] = $actionDone; + + $this->wp->update(['PRO_ACTION_DONE' => serialize($arrayActionDone)]); + } + } +} diff --git a/workflow/engine/src/ProcessMaker/Project/Workflow.php b/workflow/engine/src/ProcessMaker/Project/Workflow.php index 4d05ed18b..49be55766 100755 --- a/workflow/engine/src/ProcessMaker/Project/Workflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Workflow.php @@ -25,10 +25,6 @@ class Workflow extends Handler protected $process; protected $proUid; - protected $tasks = array(); - protected $routes = array(); - - public function __construct($data = null) { if (! is_null($data)) { @@ -66,13 +62,13 @@ class Workflow extends Handler $data['PRO_CATEGORY'] = array_key_exists('PRO_CATEGORY', $data) ? $data['PRO_CATEGORY'] : ""; try { - + // Check to make sure that there aren't any html sneaking into process titles. $testTitle = htmlspecialchars($data['PRO_TITLE']); - - if($testTitle != $data['PRO_TITLE']) { - $data['PRO_TITLE'] = $testTitle; + + if($testTitle != $data['PRO_TITLE']) { + $data['PRO_TITLE'] = $testTitle; } self::log("Create Process with data:", $data); @@ -373,7 +369,7 @@ class Workflow extends Handler * @return string * @throws \Exception */ - public function addRoute($fromTasUid, $toTasUid, $type, $condition = "", $default = 0, $eventUidOrigin = "") + public function addRoute($fromTasUid, $toTasUid, $type, $condition = '', $default = 0) { try { $validTypes = array("SEQUENTIAL", "SELECT", "EVALUATE", "PARALLEL", "PARALLEL-BY-EVALUATION", "SEC-JOIN", "DISCRIMINATOR"); @@ -393,21 +389,13 @@ class Workflow extends Handler //$oTasks->deleteAllRoutesOfTask($this->proUid, $fromTasUid); //} - if($toTasUid == "-1"){ - $route = \Route::findOneBy(array( - \RoutePeer::TAS_UID => $fromTasUid, - \RoutePeer::ROU_NEXT_TASK => $toTasUid, - \RoutePeer::ROU_ELEMENT_ORIGIN => $eventUidOrigin - )); - } else { - $route = \Route::findOneBy(array( - \RoutePeer::TAS_UID => $fromTasUid, - \RoutePeer::ROU_NEXT_TASK => $toTasUid - )); - } + $route = \Route::findOneBy([ + \RoutePeer::TAS_UID => $fromTasUid, + \RoutePeer::ROU_NEXT_TASK => $toTasUid + ]); if (is_null($route)) { - $result = $this->saveNewPattern($this->proUid, $fromTasUid, $toTasUid, $type, $condition, $default, $eventUidOrigin); + $result = $this->saveNewPattern($this->proUid, $fromTasUid, $toTasUid, $type, $condition, $default); } else { $result = $this->updateRoute($route->getRouUid(), array( "TAS_UID" => $fromTasUid, @@ -521,7 +509,7 @@ class Workflow extends Handler } } - private function saveNewPattern($sProcessUID = "", $sTaskUID = "", $sNextTask = "", $sType = "", $condition = "", $default = 0, $elementUidOrigin = "") + private function saveNewPattern($sProcessUID = '', $sTaskUID = '', $sNextTask = '', $sType = '', $condition = '', $default = 0) { try { self::log("Add Route from task: $sTaskUID -> to task: $sNextTask ($sType)"); @@ -544,7 +532,6 @@ class Workflow extends Handler $aFields["ROU_CASE"] = (int)($aRow["ROUTE_NUMBER"]) + 1; $aFields["ROU_TYPE"] = $sType; $aFields["ROU_DEFAULT"] = $default; - $aFields["ROU_ELEMENT_ORIGIN"] = $elementUidOrigin; if(! empty($condition)) { $aFields['ROU_CONDITION'] = $condition;