PM-4137
This commit is contained in:
@@ -605,9 +605,6 @@ class Derivation
|
||||
break;
|
||||
case "MULTIPLE_INSTANCE":
|
||||
$userFields = $this->getUsersFullNameFromArray($this->getAllUsersFromAnyTask($nextAssignedTask["TAS_UID"]));
|
||||
if(empty($userFields)){
|
||||
throw (new Exception( G::LoadTranslation( 'ID_NO_USERS' ) ));
|
||||
}
|
||||
break;
|
||||
case "MULTIPLE_INSTANCE_VALUE_BASED":
|
||||
$arrayApplicationData = $this->case->loadCase($tasInfo["APP_UID"]);
|
||||
@@ -676,7 +673,7 @@ class Derivation
|
||||
*
|
||||
* @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 {
|
||||
//Verify if the Project is BPMN
|
||||
@@ -729,6 +726,10 @@ class Derivation
|
||||
$elementDestType
|
||||
);
|
||||
|
||||
if($elementDestUid == "-1"){
|
||||
$arrayElement = $this->throwElementToEnd($elementOriginUid, $rouCondition);
|
||||
}
|
||||
|
||||
foreach ($arrayElement as $value) {
|
||||
switch ($value[1]) {
|
||||
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
|
||||
*
|
||||
@@ -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,
|
||||
|
||||
//BpmnEvent
|
||||
$this->throwAllRouteInFlow($currentDelegation["TAS_UID"],$appFields);
|
||||
$this->throwEventsBetweenElementOriginAndElementDest($currentDelegation["TAS_UID"], $nextDel["TAS_UID"], $appFields, $flagFirstIteration, true, $nextDel['ROU_CONDITION']);
|
||||
break;
|
||||
case TASK_FINISH_TASK:
|
||||
$iAppThreadIndex = $appFields['DEL_THREAD'];
|
||||
|
||||
@@ -117,6 +117,22 @@ class BpmnFlow extends BaseBpmnFlow
|
||||
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())
|
||||
{
|
||||
$data = 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_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="c"></div>
|
||||
</div>
|
||||
<div class="content" style="height: 100%;">
|
||||
<div class="content" style="height: 100%;">∫
|
||||
<table width="99%">
|
||||
<tr>
|
||||
<td valign='top'>
|
||||
@@ -148,7 +148,7 @@
|
||||
|
||||
<tr height="0">
|
||||
<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>
|
||||
</tr>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user