Merged in bugfix/HOR-4507-A (pull request #6650)

HOR-4507

Approved-by: Julio Cesar Laura Avendaño <contact@julio-laura.com>
This commit is contained in:
Paula Quispe
2018-10-12 15:18:24 +00:00
committed by Julio Cesar Laura Avendaño

View File

@@ -2,27 +2,30 @@
namespace ProcessMaker\Services\Api; namespace ProcessMaker\Services\Api;
use AppDelegation;
use Cases as ClassesCases;
use Criteria;
use Exception;
use G; use G;
use Luracast\Restler\RestException;
use PmDynaform;
use Process as ModelProcess;
use ProcessMaker\BusinessModel\Cases as BusinessModelCases;
use ProcessMaker\BusinessModel\DynaForm as BusinessModelDynaForm;
use ProcessMaker\BusinessModel\Light as BusinessModelLight;
use ProcessMaker\BusinessModel\Lists;
use ProcessMaker\BusinessModel\Process;
use ProcessMaker\BusinessModel\ProcessMap;
use ProcessMaker\BusinessModel\Task;
use ProcessMaker\BusinessModel\Validator;
use ProcessMaker\Project\Adapter; use ProcessMaker\Project\Adapter;
use ProcessMaker\Services\Api; use ProcessMaker\Services\Api;
use Luracast\Restler\RestException; use ProcessMaker\Services\Api\Project\Activity\Step;
use ProcessMaker\BusinessModel\Validator;
use ProcessMaker\Util\DateTime; use ProcessMaker\Util\DateTime;
use PmDynaform;
use Exception;
use ProcessMaker\BusinessModel\Light as BusinessModelLight;
use RBAC; use RBAC;
use ProcessMaker\BusinessModel\Cases as BusinessModelCases;
use Cases as ClassesCases;
use AppDelegation;
use ProcessMaker\BusinessModel\Lists;
use ProcessMaker\BusinessModel\Task;
use ProcessMaker\BusinessModel\ProcessMap;
use ProcessMaker\BusinessModel\Process;
use Criteria;
use StepPeer;
use stdclass; use stdclass;
use ProcessMaker\BusinessModel\DynaForm as BusinessModelDynaForm; use StepPeer;
/** /**
* *
* Process Api Controller * Process Api Controller
@@ -920,41 +923,57 @@ class Light extends Api
} }
/** /**
* Get steps related to the task
* If the process is classic we does not return any step, this is not supported by Mobile
*
* @url GET /project/:prj_uid/activity/:act_uid/steps * @url GET /project/:prj_uid/activity/:act_uid/steps
* *
* @param string $act_uid {@min 32}{@max 32} * @param string $act_uid {@min 32}{@max 32}
* @param string $prj_uid {@min 32}{@max 32} * @param string $prj_uid {@min 32}{@max 32}
*
* @return array
* @throws Exception
*/ */
public function doGetActivitySteps($act_uid, $prj_uid) public function doGetActivitySteps($act_uid, $prj_uid)
{ {
try { try {
$task = new Task(); $response = [];
$task->setFormatFieldNameInUppercase(false); $process = new ModelProcess();
$task->setArrayParamException(array("taskUid" => "act_uid", "stepUid" => "step_uid")); $isBpmn = $process->isBpmnProcess($prj_uid);
if ($isBpmn) {
$task = new Task();
$dynaForm = new BusinessModelDynaForm();
$mobile = new BusinessModelLight();
$step = new Step();
$activitySteps = $task->getSteps($act_uid); $task->setFormatFieldNameInUppercase(false);
$_SESSION['PROCESS'] = $prj_uid; $task->setArrayParamException(["taskUid" => "act_uid", "stepUid" => "step_uid"]);
$dynaForm = new BusinessModelDynaForm(); $activitySteps = $task->getSteps($act_uid);
$dynaForm->setFormatFieldNameInUppercase(false); $_SESSION['PROCESS'] = $prj_uid;
$oMobile = new BusinessModelLight(); $dynaForm->setFormatFieldNameInUppercase(false);
$step = new \ProcessMaker\Services\Api\Project\Activity\Step();
$response = array(); for ($i = 0; $i < count($activitySteps); $i++) {
for ($i = 0; $i < count($activitySteps); $i++) { if ($activitySteps[$i]['step_type_obj'] == "DYNAFORM") {
if ($activitySteps[$i]['step_type_obj'] == "DYNAFORM") { $dataForm = $dynaForm->getDynaForm($activitySteps[$i]['step_uid_obj']);
$dataForm = $dynaForm->getDynaForm($activitySteps[$i]['step_uid_obj']); $result = $this->parserDataDynaForm($dataForm);
$result = $this->parserDataDynaForm($dataForm); $result["formUpdateDate"] = DateTime::convertUtcToIso8601($result["formUpdateDate"]);
$result["formUpdateDate"] = DateTime::convertUtcToIso8601($result["formUpdateDate"]); $result['index'] = $i;
$result['index'] = $i; $result['stepId'] = $activitySteps[$i]["step_uid"];
$result['stepId'] = $activitySteps[$i]["step_uid"]; $result['stepUidObj'] = $activitySteps[$i]["step_uid_obj"];
$result['stepUidObj'] = $activitySteps[$i]["step_uid_obj"]; $result['stepMode'] = $activitySteps[$i]['step_mode'];
$result['stepMode'] = $activitySteps[$i]['step_mode']; $result['stepCondition'] = $activitySteps[$i]['step_condition'];
$result['stepCondition'] = $activitySteps[$i]['step_condition']; $result['stepPosition'] = $activitySteps[$i]['step_position'];
$result['stepPosition'] = $activitySteps[$i]['step_position']; $trigger = $mobile->statusTriggers(
$trigger = $oMobile->statusTriggers($step->doGetActivityStepTriggers($activitySteps[$i]["step_uid"], $step->doGetActivityStepTriggers(
$act_uid, $prj_uid)); $activitySteps[$i]["step_uid"],
$result["triggers"] = $trigger; $act_uid,
unset($result["formContent"]); $prj_uid
$response[] = $result; )
);
$result["triggers"] = $trigger;
unset($result["formContent"]);
$response[] = $result;
}
} }
} }
} catch (Exception $e) { } catch (Exception $e) {