Merged in cochalo/processmaker (pull request #220)
Actualizacion de steps y reordenamiento
This commit is contained in:
@@ -1854,6 +1854,99 @@ class Task
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate Process Uid
|
||||
* @var string $pro_uid. Uid for Process
|
||||
* @var string $tas_uid. Uid for Task
|
||||
* @var string $step_uid. Uid for Step
|
||||
* @var string $step_uid_rel. Uid Step for relation
|
||||
* @var string $type. Type relation
|
||||
*
|
||||
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
|
||||
* @copyright Colosa - Bolivia
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function moveSteps($pro_uid, $tas_uid, $step_uid, $step_uid_rel, $type) {
|
||||
$pro_uid = $this->validateProUid($pro_uid);
|
||||
$tas_uid = $this->validateActUid($tas_uid);
|
||||
|
||||
$this->setFormatFieldNameInUppercase(false);
|
||||
$this->setArrayParamException(array("taskUid" => "act_uid"));
|
||||
$aSteps = $this->getSteps($tas_uid);
|
||||
|
||||
foreach ($aSteps as $dataStep) {
|
||||
if ($dataStep['step_uid'] == $step_uid) {
|
||||
$prStepPos = (int)$dataStep['step_position'];
|
||||
} elseif ($dataStep['step_uid'] == $step_uid_rel) {
|
||||
$seStepPos = (int)$dataStep['step_position'];
|
||||
}
|
||||
}
|
||||
|
||||
//Principal Step is up
|
||||
if ($prStepPos < $seStepPos) {
|
||||
$modPos = 'UP';
|
||||
if ($type == 'DOWN') {
|
||||
$newPos = $seStepPos;
|
||||
$iniPos = $prStepPos+1;
|
||||
$finPos = $seStepPos;
|
||||
} else {
|
||||
$newPos = $seStepPos-1;
|
||||
$iniPos = $prStepPos+1;
|
||||
$finPos = $seStepPos-1;
|
||||
}
|
||||
} else {
|
||||
$modPos = 'DOWN';
|
||||
if ($type == 'UP') {
|
||||
$newPos = $seStepPos;
|
||||
$iniPos = $seStepPos;
|
||||
$finPos = $prStepPos-1;
|
||||
} else {
|
||||
$newPos = $seStepPos-1;
|
||||
$iniPos = $seStepPos-1;
|
||||
$finPos = $prStepPos-1;
|
||||
}
|
||||
}
|
||||
|
||||
$range = range($iniPos, $finPos);
|
||||
foreach ($aSteps as $dataStep) {
|
||||
if ((in_array($dataStep['step_position'], $range)) && ($dataStep['step_uid'] != $step_uid)) {
|
||||
$stepChangeIds[] = $dataStep['step_uid'];
|
||||
$stepChangePos[] = $dataStep['step_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($step_uid, $newPos);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate Process Uid
|
||||
* @var string $pro_uid. Uid for process
|
||||
*
|
||||
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
|
||||
* @copyright Colosa - Bolivia
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function changePosStep ($step_uid, $pos)
|
||||
{
|
||||
$data = array(
|
||||
'STEP_UID' => $step_uid,
|
||||
'STEP_POSITION' => $pos
|
||||
);
|
||||
$oStep = new \Step();
|
||||
$oStep->update($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate Process Uid
|
||||
* @var string $pro_uid. Uid for process
|
||||
|
||||
@@ -120,7 +120,6 @@ class Activity extends Api
|
||||
$task->setArrayParamException(array("taskUid" => "act_uid", "stepUid" => "step_uid"));
|
||||
|
||||
$response = $task->getSteps($act_uid);
|
||||
|
||||
return $response;
|
||||
} catch (\Exception $e) {
|
||||
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
|
||||
@@ -147,6 +146,31 @@ class Activity extends Api
|
||||
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $prj_uid {@min 1} {@max 32}
|
||||
* @param string $act_uid {@min 1} {@max 32}
|
||||
* @param string $step_uid {@min 1} {@max 32}
|
||||
* @param string $step_uid_rel {@min 1} {@max 32}
|
||||
* @param string $type_change {@choice UP,DOWN}
|
||||
*
|
||||
* @access public
|
||||
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
|
||||
* @copyright Colosa - Bolivia
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @url PUT /:prj_uid/activity/:act_uid/step-move/:step_uid/:step_uid_rel/:type_change
|
||||
*/
|
||||
public function doPutStepsMoves ($prj_uid, $act_uid, $step_uid, $step_uid_rel, $type_change)
|
||||
{
|
||||
try {
|
||||
$task = new \BusinessModel\Task();
|
||||
$task->moveSteps($prj_uid, $act_uid, $step_uid, $step_uid_rel, $type_change);
|
||||
} catch (\Exception $e) {
|
||||
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user