Merged in darojas/processmaker/PM-1165 (pull request #1315)

PM-1165 "Se modifica funcion doPutCaseVariables, se envia dynaform id. Se agrega funcion doPutExecuteTriggers, para ejecucion de triggers"
This commit is contained in:
Julio Cesar Laura Avendaño
2015-01-08 17:44:56 -04:00
2 changed files with 65 additions and 5 deletions

View File

@@ -1424,11 +1424,12 @@ class Cases
* @access public * @access public
* @param string $app_uid, Uid for case * @param string $app_uid, Uid for case
* @param array $app_data, Data for case variables * @param array $app_data, Data for case variables
* @param string $dyn_uid, Uid for dynaform
* *
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com> * @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia * @copyright Colosa - Bolivia
*/ */
public function setCaseVariables($app_uid, $app_data) public function setCaseVariables($app_uid, $app_data, $dyn_uid = null)
{ {
Validator::isString($app_uid, '$app_uid'); Validator::isString($app_uid, '$app_uid');
Validator::appUid($app_uid, '$app_uid'); Validator::appUid($app_uid, '$app_uid');
@@ -1436,7 +1437,18 @@ class Cases
$case = new \Cases(); $case = new \Cases();
$fields = $case->loadCase($app_uid); $fields = $case->loadCase($app_uid);
$data['APP_DATA'] = array_merge($fields['APP_DATA'], $app_data); $_POST['form'] = $app_data;
if (!is_null($dyn_uid)) {
$oDynaform = \DynaformPeer::retrieveByPK($dyn_uid);
if ($oDynaform->getDynVersion() < 2) {
$oForm = new \Form ( $fields['PRO_UID'] . "/" . $dyn_uid, PATH_DYNAFORM );
$oForm->validatePost();
}
}
$data['APP_DATA'] = array_merge($fields['APP_DATA'], $_POST['form']);
$case->updateCase($app_uid, $data); $case->updateCase($app_uid, $data);
} }
@@ -1905,5 +1917,30 @@ class Cases
throw $e; throw $e;
} }
} }
}
/**
* Put execute triggers
*
* @access public
* @param string $app_uid , Uid for case
* @param bool|string $del_index , Index for case
* @param string $obj_type , Index for case
* @param string $obj_uid , Index for case
*
* @copyright Colosa - Bolivia
*/
public function putExecuteTriggers($app_uid, $del_index, $obj_type, $obj_uid)
{
Validator::isString($app_uid, '$app_uid');
Validator::appUid($app_uid, '$app_uid');
Validator::isInteger($del_index, '$del_index');
$oCase = new \Cases();
$aField = $oCase->loadCase($app_uid, $del_index);
$tas_uid = $aField["TAS_UID"];
$task = new \Tasks();
$aField["APP_DATA"] = $oCase->executeTriggers($tas_uid, $obj_type, $obj_uid, "AFTER", $aField["APP_DATA"]);
$aField = $oCase->updateCase($app_uid, $aField);
}
}

View File

@@ -838,17 +838,18 @@ class Cases extends Api
* *
* @param string $app_uid {@min 1}{@max 32} * @param string $app_uid {@min 1}{@max 32}
* @param array $request_data * @param array $request_data
* @param string $dyn_uid {@from path}
* *
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com> * @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia * @copyright Colosa - Bolivia
* *
* @url PUT /:app_uid/variable * @url PUT /:app_uid/variable
*/ */
public function doPutCaseVariables($app_uid, $request_data) public function doPutCaseVariables($app_uid, $request_data, $dyn_uid = '')
{ {
try { try {
$cases = new \ProcessMaker\BusinessModel\Cases(); $cases = new \ProcessMaker\BusinessModel\Cases();
$cases->setCaseVariables($app_uid, $request_data); $cases->setCaseVariables($app_uid, $request_data, $dyn_uid);
} catch (\Exception $e) { } catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
} }
@@ -994,5 +995,27 @@ class Cases extends Api
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
} }
} }
/**
* Execute triggers
*
* @param string $app_uid {@min 1}{@max 32}
* @param string $del_index {@from body}
* @param string $obj_type {@from body}
* @param string $obj_uid {@from body}
*
* @copyright Colosa - Bolivia
*
* @url PUT /:app_uid/execute-triggers
*/
public function doPutExecuteTriggers($app_uid, $del_index, $obj_type, $obj_uid)
{
try {
$cases = new \ProcessMaker\BusinessModel\Cases();
$cases->putExecuteTriggers($app_uid, $del_index, $obj_type, $obj_uid);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
} }