/** * Validate Process Uid * @var string $cto_uid. Uid for Process * @var string $pro_uid. Uid for Task * @var string $cto_pos. Position for Step * * @author Brayan Pereyra (Cochalo) <*****@*****.**> * @copyright Colosa - Bolivia * * @return void */ public function moveCaseTrackerObject($cto_uid, $pro_uid, $cto_pos) { $aCaseTrackerObject = CaseTracker::getCaseTrackerObjects($pro_uid); foreach ($aCaseTrackerObject as $dataCaseTracker) { if ($dataCaseTracker['cto_uid'] == $cto_uid) { $prStepPos = (int) $dataCaseTracker['cto_position']; } } $seStepPos = $cto_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 ($aCaseTrackerObject as $dataCaseTracker) { if (in_array($dataCaseTracker['cto_position'], $range) && $dataCaseTracker['cto_uid'] != $cto_uid) { $caseTrackerObjectIds[] = $dataCaseTracker['cto_uid']; $caseTrackerObjectPos[] = $dataCaseTracker['cto_position']; } } foreach ($caseTrackerObjectIds as $key => $value) { if ($modPos == 'UP') { $tempPos = (int) $caseTrackerObjectPos[$key] - 1; $this->changePosCaseTrackerObject($value, $tempPos); } else { $tempPos = (int) $caseTrackerObjectPos[$key] + 1; $this->changePosCaseTrackerObject($value, $tempPos); } } $this->changePosCaseTrackerObject($cto_uid, $newPos); }