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
|
* Reorder the steps positions
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -867,7 +867,7 @@ class ProcessSupervisor
|
|||||||
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
|
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
|
||||||
'STEP_TYPE_OBJ' => "DYNAFORM",
|
'STEP_TYPE_OBJ' => "DYNAFORM",
|
||||||
'STEP_UID_OBJ' => $sDynUID,
|
'STEP_UID_OBJ' => $sDynUID,
|
||||||
'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "DYNAFORM")));
|
'STEP_POSITION' => $oStepSupervisor->getNextPositionAll($sProcessUID)));
|
||||||
$sDelimiter = \DBAdapter::getStringDelimiter();
|
$sDelimiter = \DBAdapter::getStringDelimiter();
|
||||||
$oCriteria = new \Criteria('workflow');
|
$oCriteria = new \Criteria('workflow');
|
||||||
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
|
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
|
||||||
@@ -953,7 +953,7 @@ class ProcessSupervisor
|
|||||||
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
|
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
|
||||||
'STEP_TYPE_OBJ' => "INPUT_DOCUMENT",
|
'STEP_TYPE_OBJ' => "INPUT_DOCUMENT",
|
||||||
'STEP_UID_OBJ' => $sInputDocumentUID,
|
'STEP_UID_OBJ' => $sInputDocumentUID,
|
||||||
'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "INPUT_DOCUMENT")));
|
'STEP_POSITION' => $oStepSupervisor->getNextPositionAll($sProcessUID)));
|
||||||
$sDelimiter = \DBAdapter::getStringDelimiter();
|
$sDelimiter = \DBAdapter::getStringDelimiter();
|
||||||
$oCriteria = new \Criteria('workflow');
|
$oCriteria = new \Criteria('workflow');
|
||||||
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
|
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
|
||||||
@@ -1077,7 +1077,7 @@ class ProcessSupervisor
|
|||||||
$actualPosition = $oCriteria->getStepPosition();
|
$actualPosition = $oCriteria->getStepPosition();
|
||||||
$tempPosition = (isset($sPudPosition)) ? $sPudPosition : $actualPosition;
|
$tempPosition = (isset($sPudPosition)) ? $sPudPosition : $actualPosition;
|
||||||
if (isset($tempPosition) && ($tempPosition != $actualPosition)) {
|
if (isset($tempPosition) && ($tempPosition != $actualPosition)) {
|
||||||
$this->moveDynaforms($sProcessUID, $sPudUID, $tempPosition);
|
$this->moveDyanformsInputDocuments($sProcessUID, $sPudUID, $tempPosition);
|
||||||
}
|
}
|
||||||
//Return
|
//Return
|
||||||
unset($sPudPosition);
|
unset($sPudPosition);
|
||||||
@@ -1090,6 +1090,8 @@ class ProcessSupervisor
|
|||||||
return $oCriteria;
|
return $oCriteria;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Assign a InputDocument supervisor of a process
|
* Assign a InputDocument supervisor of a process
|
||||||
*
|
*
|
||||||
@@ -1104,7 +1106,7 @@ class ProcessSupervisor
|
|||||||
$actualPosition = $oCriteria->getStepPosition();
|
$actualPosition = $oCriteria->getStepPosition();
|
||||||
$tempPosition = (isset($sPuiPosition)) ? $sPuiPosition : $actualPosition;
|
$tempPosition = (isset($sPuiPosition)) ? $sPuiPosition : $actualPosition;
|
||||||
if (isset($tempPosition) && ($tempPosition != $actualPosition)) {
|
if (isset($tempPosition) && ($tempPosition != $actualPosition)) {
|
||||||
$this->moveInputDocuments($sProcessUID, $sPuiUID, $tempPosition);
|
$this->moveDyanformsInputDocuments($sProcessUID, $sPuiUID, $tempPosition);
|
||||||
}
|
}
|
||||||
//Return
|
//Return
|
||||||
unset($sPuiPosition);
|
unset($sPuiPosition);
|
||||||
@@ -1117,6 +1119,71 @@ class ProcessSupervisor
|
|||||||
return $oCriteria;
|
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
|
* Validate Process Uid
|
||||||
* @var string $pro_uid. Uid for Process
|
* @var string $pro_uid. Uid for Process
|
||||||
|
|||||||
Reference in New Issue
Block a user