PM-4137
This commit is contained in:
@@ -605,9 +605,6 @@ class Derivation
|
|||||||
break;
|
break;
|
||||||
case "MULTIPLE_INSTANCE":
|
case "MULTIPLE_INSTANCE":
|
||||||
$userFields = $this->getUsersFullNameFromArray($this->getAllUsersFromAnyTask($nextAssignedTask["TAS_UID"]));
|
$userFields = $this->getUsersFullNameFromArray($this->getAllUsersFromAnyTask($nextAssignedTask["TAS_UID"]));
|
||||||
if(empty($userFields)){
|
|
||||||
throw (new Exception( G::LoadTranslation( 'ID_NO_USERS' ) ));
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case "MULTIPLE_INSTANCE_VALUE_BASED":
|
case "MULTIPLE_INSTANCE_VALUE_BASED":
|
||||||
$arrayApplicationData = $this->case->loadCase($tasInfo["APP_UID"]);
|
$arrayApplicationData = $this->case->loadCase($tasInfo["APP_UID"]);
|
||||||
@@ -676,7 +673,7 @@ class Derivation
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
private function throwEventsBetweenElementOriginAndElementDest($elementOriginUid, $elementDestUid, array $arrayApplicationData, $flagEventExecuteBeforeGateway = true, $flagEventExecuteAfterGateway = true)
|
private function throwEventsBetweenElementOriginAndElementDest($elementOriginUid, $elementDestUid, array $arrayApplicationData, $flagEventExecuteBeforeGateway = true, $flagEventExecuteAfterGateway = true, $rouCondition="")
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
//Verify if the Project is BPMN
|
//Verify if the Project is BPMN
|
||||||
@@ -693,7 +690,7 @@ class Derivation
|
|||||||
"elementOrigin" => ["uid" => $elementOriginUid, "type" => "bpmnActivity"],
|
"elementOrigin" => ["uid" => $elementOriginUid, "type" => "bpmnActivity"],
|
||||||
"elementDest" => ["uid" => $elementDestUid, "type" => "bpmnActivity"]
|
"elementDest" => ["uid" => $elementDestUid, "type" => "bpmnActivity"]
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach ($arrayElement as $key => $value) {
|
foreach ($arrayElement as $key => $value) {
|
||||||
$arrayElementTaskRelationData = $elementTaskRelation->getElementTaskRelationWhere(
|
$arrayElementTaskRelationData = $elementTaskRelation->getElementTaskRelationWhere(
|
||||||
[
|
[
|
||||||
@@ -729,6 +726,10 @@ class Derivation
|
|||||||
$elementDestType
|
$elementDestType
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if($elementDestUid == "-1"){
|
||||||
|
$arrayElement = $this->throwElementToEnd($elementOriginUid, $rouCondition);
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($arrayElement as $value) {
|
foreach ($arrayElement as $value) {
|
||||||
switch ($value[1]) {
|
switch ($value[1]) {
|
||||||
case "bpmnEvent":
|
case "bpmnEvent":
|
||||||
@@ -758,6 +759,48 @@ class Derivation
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Throw all events to End Process
|
||||||
|
*
|
||||||
|
* @param string $currentTask Task uid
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private function throwElementToEnd($currentTask, $routeCondition){
|
||||||
|
try{
|
||||||
|
$bpmnFlow = new BpmnFlow();
|
||||||
|
$rsCriFlow = $bpmnFlow->getElementOriginToElementDest($currentTask);
|
||||||
|
$arrayElement = array();
|
||||||
|
$count = 0;
|
||||||
|
$continue = false;
|
||||||
|
if($rsCriFlow->next()){
|
||||||
|
$continue = true;
|
||||||
|
$row = $rsCriFlow->getRow();
|
||||||
|
}
|
||||||
|
while ($continue) {
|
||||||
|
$array[0] = $row["FLO_ELEMENT_DEST"];
|
||||||
|
$array[1] = $row["FLO_ELEMENT_DEST_TYPE"];
|
||||||
|
$arrayElement[$count++] = $array;
|
||||||
|
$continue = false;
|
||||||
|
if($rsCriFlow->next()){
|
||||||
|
$continue = true;
|
||||||
|
$row = $rsCriFlow->getRow();
|
||||||
|
}else{
|
||||||
|
$rsCriFlow = $bpmnFlow->getElementOriginToElementDest($row["FLO_ELEMENT_DEST"],$routeCondition);
|
||||||
|
$routeCondition = '';
|
||||||
|
$continue = false;
|
||||||
|
if($rsCriFlow->next()){
|
||||||
|
$continue = true;
|
||||||
|
$row = $rsCriFlow->getRow();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $arrayElement;
|
||||||
|
} catch (Exception $e) {
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Throw Events for the Case
|
* Throw Events for the Case
|
||||||
*
|
*
|
||||||
@@ -800,6 +843,7 @@ class Derivation
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return $currentDestiny;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1018,7 +1062,7 @@ class Derivation
|
|||||||
//I think we need to change the APP_STATUS to completed,
|
//I think we need to change the APP_STATUS to completed,
|
||||||
|
|
||||||
//BpmnEvent
|
//BpmnEvent
|
||||||
$this->throwAllRouteInFlow($currentDelegation["TAS_UID"],$appFields);
|
$this->throwEventsBetweenElementOriginAndElementDest($currentDelegation["TAS_UID"], $nextDel["TAS_UID"], $appFields, $flagFirstIteration, true, $nextDel['ROU_CONDITION']);
|
||||||
break;
|
break;
|
||||||
case TASK_FINISH_TASK:
|
case TASK_FINISH_TASK:
|
||||||
$iAppThreadIndex = $appFields['DEL_THREAD'];
|
$iAppThreadIndex = $appFields['DEL_THREAD'];
|
||||||
|
|||||||
@@ -116,6 +116,22 @@ class BpmnFlow extends BaseBpmnFlow
|
|||||||
|
|
||||||
return $flow;
|
return $flow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getElementOriginToElementDest($floOrigin, $floCondition = ''){
|
||||||
|
$criFlow = new Criteria("workflow");
|
||||||
|
$criFlow->addSelectColumn(BpmnFlowPeer::FLO_ELEMENT_ORIGIN);
|
||||||
|
$criFlow->addSelectColumn(BpmnFlowPeer::FLO_ELEMENT_ORIGIN_TYPE);
|
||||||
|
$criFlow->addSelectColumn(BpmnFlowPeer::FLO_ELEMENT_DEST);
|
||||||
|
$criFlow->addSelectColumn(BpmnFlowPeer::FLO_ELEMENT_DEST_TYPE);
|
||||||
|
$criFlow->addSelectColumn(BpmnFlowPeer::FLO_CONDITION);
|
||||||
|
$criFlow->add(BpmnFlowPeer::FLO_ELEMENT_ORIGIN, $floOrigin, Criteria::EQUAL);
|
||||||
|
if($floCondition != ''){
|
||||||
|
$criFlow->add(BpmnFlowPeer::FLO_CONDITION, $floCondition, Criteria::EQUAL);
|
||||||
|
}
|
||||||
|
$rsCriFlow = RoutePeer::doSelectRS($criFlow);
|
||||||
|
$rsCriFlow->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||||
|
return $rsCriFlow;
|
||||||
|
}
|
||||||
|
|
||||||
/*public static function select($select, $where = array())
|
/*public static function select($select, $where = array())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -984,6 +984,9 @@ try {
|
|||||||
$aFields['TASK'][$sKey]['NEXT_TASK']['ROU_PREVIOUS_TASK'] = '<input type="hidden" name="' . $hiddenName . '[ROU_PREVIOUS_TASK]" id="' . $hiddenName . '[ROU_PREVIOUS_TASK]" value="' . $aValues['NEXT_TASK']['ROU_PREVIOUS_TASK'] . '">';
|
$aFields['TASK'][$sKey]['NEXT_TASK']['ROU_PREVIOUS_TASK'] = '<input type="hidden" name="' . $hiddenName . '[ROU_PREVIOUS_TASK]" id="' . $hiddenName . '[ROU_PREVIOUS_TASK]" value="' . $aValues['NEXT_TASK']['ROU_PREVIOUS_TASK'] . '">';
|
||||||
$aFields['TASK'][$sKey]['NEXT_TASK']['ROU_PREVIOUS_TYPE'] = '<input type="hidden" name="' . $hiddenName . '[ROU_PREVIOUS_TYPE]" id="' . $hiddenName . '[ROU_PREVIOUS_TYPE]" value="' . $aValues['NEXT_TASK']['ROU_PREVIOUS_TYPE'] . '">';
|
$aFields['TASK'][$sKey]['NEXT_TASK']['ROU_PREVIOUS_TYPE'] = '<input type="hidden" name="' . $hiddenName . '[ROU_PREVIOUS_TYPE]" id="' . $hiddenName . '[ROU_PREVIOUS_TYPE]" value="' . $aValues['NEXT_TASK']['ROU_PREVIOUS_TYPE'] . '">';
|
||||||
}
|
}
|
||||||
|
if(isset($aValues['ROU_CONDITION'])){
|
||||||
|
$aFields['TASK'][$sKey]['NEXT_TASK']['ROU_CONDITION'] = '<input type="hidden" name="' . $hiddenName . '[ROU_CONDITION]" id="' . $hiddenName . '[ROU_CONDITION]" value="' . $aValues['ROU_CONDITION'] . '">';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<div class="b"></div>
|
<div class="b"></div>
|
||||||
<div class="c"></div>
|
<div class="c"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content" style="height: 100%;">
|
<div class="content" style="height: 100%;">∫
|
||||||
<table width="99%">
|
<table width="99%">
|
||||||
<tr>
|
<tr>
|
||||||
<td valign='top'>
|
<td valign='top'>
|
||||||
@@ -148,7 +148,7 @@
|
|||||||
|
|
||||||
<tr height="0">
|
<tr height="0">
|
||||||
<td colspan="2">
|
<td colspan="2">
|
||||||
{$data.NEXT_TASK.TAS_ASSIGN_TYPE}{$data.NEXT_TASK.TAS_DEF_PROC_CODE}{$data.NEXT_TASK.DEL_PRIORITY}{$data.NEXT_TASK.TAS_PARENT}{$data.NEXT_TASK.ROU_PREVIOUS_TASK}{$data.NEXT_TASK.ROU_PREVIOUS_TYPE}
|
{$data.NEXT_TASK.TAS_ASSIGN_TYPE}{$data.NEXT_TASK.TAS_DEF_PROC_CODE}{$data.NEXT_TASK.DEL_PRIORITY}{$data.NEXT_TASK.TAS_PARENT}{$data.NEXT_TASK.ROU_PREVIOUS_TASK}{$data.NEXT_TASK.ROU_PREVIOUS_TYPE}{$data.NEXT_TASK.ROU_CONDITION}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user