$aFields['ST_TYPE'] = $aData['sType']; $Trigger = new Triggers(); $aRow = $Trigger->load($aData['sTrigger']); $oStepTrigger = new StepTrigger(); $aFields = $oStepTrigger->load($aFields['STEP_UID'], $_SESSION['TASK'], $aFields['TRI_UID'], $aFields['ST_TYPE']); $aFields['action'] = 'saveTriggerCondition'; $aFields['PROCESS'] = $aRow['PRO_UID']; global $G_PUBLISH; G::LoadClass('xmlfield_InputPM'); $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent('xmlform', 'xmlform', 'steps/triggersCondition_Edit', '', $aFields, '../steps/steps_Ajax'); G::RenderPage('publish', 'raw'); break; case 'saveTriggerCondition': $oStepTrigger = new StepTrigger(); $oStepTrigger->update(array('STEP_UID' => $aData['STEP_UID'], 'TAS_UID' => $_SESSION['TASK'], 'TRI_UID' => $aData['TRI_UID'], 'ST_TYPE' => $aData['ST_TYPE'], 'ST_CONDITION' => $aData['ST_CONDITION'])); break; case 'upTrigger': $aData['iPosition'] = (int) $aData['iPosition']; $oStepTrigger = new StepTrigger(); $oStepTrigger->up($aData['sStep'], $_SESSION['TASK'], $aData['sTrigger'], $aData['sType'], $aData['iPosition']); break; case 'downTrigger': $aData['iPosition'] = (int) $aData['iPosition']; $oStepTrigger = new StepTrigger(); $oStepTrigger->down($aData['sStep'], $_SESSION['TASK'], $aData['sTrigger'], $aData['sType'], $aData['iPosition']); break; case 'ofToAssignTrigger': $oStepTrigger = new StepTrigger(); $oStepTrigger->reOrder($aData['sStep'], $_SESSION['TASK'], $aData['sType'], $aData['iPosition']); $oStepTrigger->remove($aData['sStep'], $_SESSION['TASK'], $aData['sTrigger'], $aData['sType']);
/** * Update Trigger of a Step * * @param string $stepUid Unique id of Step * @param string $type Type (BEFORE, AFTER, BEFORE_ASSIGNMENT, BEFORE_ROUTING, AFTER_ROUTING) * @param string $taskUid Unique id of Task * @param string $triggerUid Unique id of Trigger * @param array $arrayData Data * * return array Data updated of the Trigger assigned to a Step */ public function updateAll($stepUid, $type, $taskUid, $triggerUid, $arrayData) { try { $flagStepAssignTask = 0; if ($stepUid == "" || $stepUid == "-1" || $stepUid == "-2") { $flagStepAssignTask = 1; switch ($type) { case "BEFORE_ASSIGNMENT": $stepUid = "-1"; $type = "BEFORE"; break; case "BEFORE_ROUTING": $stepUid = "-2"; $type = "BEFORE"; break; case "AFTER_ROUTING": $stepUid = "-2"; $type = "AFTER"; break; } } //Verify data if ($flagStepAssignTask == 0) { $step = new \Step(); if (!$step->StepExists($stepUid)) { throw new \Exception(\G::LoadTranslation("ID_STEP_DOES_NOT_EXIST", array("step_uid", $stepUid))); } } $trigger = new \Triggers(); if (!$trigger->TriggerExists($triggerUid)) { throw new \Exception(\G::LoadTranslation("ID_TRIGGER_DOES_NOT_EXIST", array("tri_uid", $triggerUid))); } //Update $stepTrigger = new \StepTrigger(); $arrayUpdateData = array(); $arrayUpdateData["STEP_UID"] = $stepUid; $arrayUpdateData["TAS_UID"] = $taskUid; $arrayUpdateData["TRI_UID"] = $triggerUid; $arrayUpdateData["ST_TYPE"] = $type; if (isset($arrayData["st_condition"])) { $arrayUpdateData["ST_CONDITION"] = $arrayData["st_condition"]; } $stepTrigger->update($arrayUpdateData); return array_change_key_case($arrayUpdateData, CASE_LOWER); } catch (\Exception $e) { throw $e; } }