PM-2647
Designer > BPMN Designer > Porcess Supervisors > Steps: Estandarizar la ventana al nuevo diseñue se solicito para el diseñr BPMN
This commit is contained in:
@@ -171,6 +171,29 @@ class StepSupervisor extends BaseStepSupervisor
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the next position for a atep
|
||||
*
|
||||
* @param string $sProcessUID
|
||||
* @return integer
|
||||
*
|
||||
*/
|
||||
public function getNextPositionAll ($sProcessUID)
|
||||
{
|
||||
try {
|
||||
$oCriteria = new Criteria( 'workflow' );
|
||||
$oCriteria->addSelectColumn( '(COUNT(*) + 1) AS POSITION' );
|
||||
$oCriteria->add( StepSupervisorPeer::PRO_UID, $sProcessUID );
|
||||
$oDataset = StepSupervisorPeer::doSelectRS( $oCriteria );
|
||||
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
||||
$oDataset->next();
|
||||
$aRow = $oDataset->getRow();
|
||||
return (int) $aRow['POSITION'];
|
||||
} catch (Exception $oException) {
|
||||
throw $Exception;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reorder the steps positions
|
||||
*
|
||||
|
||||
@@ -867,7 +867,7 @@ class ProcessSupervisor
|
||||
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
|
||||
'STEP_TYPE_OBJ' => "DYNAFORM",
|
||||
'STEP_UID_OBJ' => $sDynUID,
|
||||
'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "DYNAFORM")));
|
||||
'STEP_POSITION' => $oStepSupervisor->getNextPositionAll($sProcessUID)));
|
||||
$sDelimiter = \DBAdapter::getStringDelimiter();
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
|
||||
@@ -953,7 +953,7 @@ class ProcessSupervisor
|
||||
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
|
||||
'STEP_TYPE_OBJ' => "INPUT_DOCUMENT",
|
||||
'STEP_UID_OBJ' => $sInputDocumentUID,
|
||||
'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "INPUT_DOCUMENT")));
|
||||
'STEP_POSITION' => $oStepSupervisor->getNextPositionAll($sProcessUID)));
|
||||
$sDelimiter = \DBAdapter::getStringDelimiter();
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
|
||||
@@ -1077,7 +1077,7 @@ class ProcessSupervisor
|
||||
$actualPosition = $oCriteria->getStepPosition();
|
||||
$tempPosition = (isset($sPudPosition)) ? $sPudPosition : $actualPosition;
|
||||
if (isset($tempPosition) && ($tempPosition != $actualPosition)) {
|
||||
$this->moveDynaforms($sProcessUID, $sPudUID, $tempPosition);
|
||||
$this->moveDyanformsInputDocuments($sProcessUID, $sPudUID, $tempPosition);
|
||||
}
|
||||
//Return
|
||||
unset($sPudPosition);
|
||||
@@ -1090,6 +1090,8 @@ class ProcessSupervisor
|
||||
return $oCriteria;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Assign a InputDocument supervisor of a process
|
||||
*
|
||||
@@ -1104,7 +1106,7 @@ class ProcessSupervisor
|
||||
$actualPosition = $oCriteria->getStepPosition();
|
||||
$tempPosition = (isset($sPuiPosition)) ? $sPuiPosition : $actualPosition;
|
||||
if (isset($tempPosition) && ($tempPosition != $actualPosition)) {
|
||||
$this->moveInputDocuments($sProcessUID, $sPuiUID, $tempPosition);
|
||||
$this->moveDyanformsInputDocuments($sProcessUID, $sPuiUID, $tempPosition);
|
||||
}
|
||||
//Return
|
||||
unset($sPuiPosition);
|
||||
@@ -1117,6 +1119,71 @@ class ProcessSupervisor
|
||||
return $oCriteria;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate Process Uid
|
||||
* @var string $pro_uid. Uid for Process
|
||||
* @var string $pu_uid. Uid for Step
|
||||
* @var string $pu_pos. Position for Step
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function moveDyanformsInputDocuments($pro_uid, $pu_uid, $pu_pos)
|
||||
{
|
||||
$aSteps = $this->getProcessSupervisorDynaformsInputsDocuments($pro_uid);
|
||||
$step_pos = $pu_pos;
|
||||
$step_uid = $pu_uid;
|
||||
foreach ($aSteps as $dataStep) {
|
||||
if($dataStep['obj_type'] == 'DYNAFORM'){
|
||||
if ($dataStep['pud_uid'] == $step_uid) {
|
||||
$prStepPos = (int)$dataStep['pud_position'];
|
||||
}
|
||||
}else{
|
||||
if ($dataStep['pui_uid'] == $step_uid) {
|
||||
$prStepPos = (int)$dataStep['pui_position'];
|
||||
}
|
||||
}
|
||||
}
|
||||
$seStepPos = $step_pos;
|
||||
//Principal Step is up
|
||||
if ($prStepPos == $seStepPos) {
|
||||
return true;
|
||||
} elseif ($prStepPos < $seStepPos) {
|
||||
$modPos = 'UP';
|
||||
$newPos = $seStepPos;
|
||||
$iniPos = $prStepPos+1;
|
||||
$finPos = $seStepPos;
|
||||
} else {
|
||||
$modPos = 'DOWN';
|
||||
$newPos = $seStepPos;
|
||||
$iniPos = $seStepPos;
|
||||
$finPos = $prStepPos-1;
|
||||
}
|
||||
$range = range($iniPos, $finPos);
|
||||
foreach ($aSteps as $dataStep) {
|
||||
if($dataStep['obj_type'] == 'DYNAFORM'){
|
||||
if ((in_array($dataStep['pud_position'], $range)) && ($dataStep['pud_uid'] != $step_uid)) {
|
||||
$stepChangeIds[] = $dataStep['pud_uid'];
|
||||
$stepChangePos[] = $dataStep['pud_position'];
|
||||
}
|
||||
}else{
|
||||
if ((in_array($dataStep['pui_position'], $range)) && ($dataStep['pui_uid'] != $step_uid)) {
|
||||
$stepChangeIds[] = $dataStep['pui_uid'];
|
||||
$stepChangePos[] = $dataStep['pui_position'];
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ($stepChangeIds as $key => $value) {
|
||||
if ($modPos == 'UP') {
|
||||
$tempPos = ((int)$stepChangePos[$key])-1;
|
||||
$this ->changePosStep($value, $tempPos);
|
||||
} else {
|
||||
$tempPos = ((int)$stepChangePos[$key])+1;
|
||||
$this ->changePosStep($value, $tempPos);
|
||||
}
|
||||
}
|
||||
$this ->changePosStep($value, $tempPos);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate Process Uid
|
||||
* @var string $pro_uid. Uid for Process
|
||||
|
||||
Reference in New Issue
Block a user