PM-3840
PM-3840
This commit is contained in:
@@ -9,7 +9,8 @@ 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")
|
||||
"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")
|
||||
);
|
||||
|
||||
private $formatFieldNameInUppercase = true;
|
||||
@@ -359,5 +360,30 @@ 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -717,10 +717,25 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
}
|
||||
*/
|
||||
|
||||
public function createTaskByElement($elementUid, $elementType, $key)
|
||||
public function createTaskByElement($elementUid, $elementType, $key, $elementUidDest="")
|
||||
{
|
||||
try {
|
||||
if (isset($this->arrayElementTaskRelation[$elementUid])) {
|
||||
$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) {
|
||||
$taskUid = $this->arrayElementTaskRelation[$elementUid];
|
||||
} else {
|
||||
$taskPosX = 0;
|
||||
@@ -776,17 +791,37 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
//Element-Task-Relation - Create
|
||||
$elementTaskRelation = new \ProcessMaker\BusinessModel\ElementTaskRelation();
|
||||
|
||||
$arrayResult = $elementTaskRelation->create(
|
||||
$this->wp->getUid(),
|
||||
array(
|
||||
"ELEMENT_UID" => $elementUid,
|
||||
"ELEMENT_TYPE" => $elementType,
|
||||
"TAS_UID" => $taskUid
|
||||
)
|
||||
);
|
||||
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
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//Array - Add element
|
||||
$this->arrayElementTaskRelation[$elementUid] = $taskUid;
|
||||
if($elementUidDest != ""){
|
||||
$aElement[$elementUid][$elementUidDest] = $elementUidDest;
|
||||
$this->arrayElementTaskRelation = $aElement;
|
||||
}else {
|
||||
//Array - Add element
|
||||
$this->arrayElementTaskRelation[$elementUid] = $taskUid;
|
||||
}
|
||||
}
|
||||
|
||||
//Return
|
||||
@@ -875,7 +910,8 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$gatewayUid,
|
||||
"bpmnGateway",
|
||||
"gateway-to-gateway"
|
||||
"gateway-to-gateway",
|
||||
$arrayFlowData["FLO_ELEMENT_DEST"]
|
||||
);
|
||||
|
||||
$result = $this->wp->addRoute($activityUid, $taskUid, $routeType, $routeCondition, $routeDefault);
|
||||
|
||||
Reference in New Issue
Block a user