PM-3840
This commit is contained in:
Paula V. Quispe
2015-12-01 14:35:47 -04:00
parent fbc839b9f9
commit 3a96472d9a
7 changed files with 152 additions and 23 deletions

View File

@@ -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;
}
}
}

View File

@@ -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);