Merged in dheeyi/processmaker/HOR-1442 (pull request #4586)

HOR-1442
This commit is contained in:
Julio Cesar Laura Avendaño
2016-07-22 11:08:41 -04:00
2 changed files with 28 additions and 7 deletions

View File

@@ -1737,7 +1737,7 @@ class Cases
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com> * @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia * @copyright Colosa - Bolivia
*/ */
public function getCaseVariables($app_uid, $usr_uid, $dynaFormUid = null) public function getCaseVariables($app_uid, $usr_uid, $dynaFormUid = null, $pro_uid = null, $act_uid = null, $app_index = 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');
@@ -1776,11 +1776,33 @@ class Cases
$arrayCaseVariable = $this->__getFieldsAndValuesByDynaFormAndAppData( $arrayCaseVariable = $this->__getFieldsAndValuesByDynaFormAndAppData(
$arrayDynContent['items'][0], $arrayAppData, $arrayCaseVariable $arrayDynContent['items'][0], $arrayAppData, $arrayCaseVariable
); );
} else { } else {
$arrayCaseVariable = $fields['APP_DATA']; $arrayCaseVariable = $fields['APP_DATA'];
} }
//Return //Get historyDate for Dynaform
if (!is_null($pro_uid) && !is_null($act_uid) && !is_null($app_index)) {
$oCriteriaAppHistory = new \Criteria("workflow");
$oCriteriaAppHistory->addSelectColumn(\AppHistoryPeer::HISTORY_DATE);
$oCriteriaAppHistory->add(\AppHistoryPeer::APP_UID, $app_uid, \Criteria::EQUAL);
$oCriteriaAppHistory->add(\AppHistoryPeer::DEL_INDEX, $app_index, \Criteria::EQUAL);
$oCriteriaAppHistory->add(\AppHistoryPeer::PRO_UID, $pro_uid, \Criteria::EQUAL);
$oCriteriaAppHistory->add(\AppHistoryPeer::TAS_UID, $act_uid, \Criteria::EQUAL);
$oCriteriaAppHistory->add(\AppHistoryPeer::USR_UID, $usr_uid, \Criteria::EQUAL);
if (!is_null($dynaFormUid)) {
$oCriteriaAppHistory->add(\AppHistoryPeer::DYN_UID, $dynaFormUid, \Criteria::EQUAL);
}
$oCriteriaAppHistory->addDescendingOrderByColumn('HISTORY_DATE');
$oCriteriaAppHistory->setLimit(1);
$oDataset = \AppDocumentPeer::doSelectRS($oCriteriaAppHistory);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
if ($aRow = $oDataset->getRow()) {
$dateHistory['SYS_VAR_UPDATE_DATE'] = $aRow['HISTORY_DATE'];
$arrayCaseVariable = array_merge($arrayCaseVariable, $dateHistory);
}
}
return $arrayCaseVariable; return $arrayCaseVariable;
} }

View File

@@ -1484,12 +1484,12 @@ class Light extends Api
* *
* @url GET /:app_uid/variables * @url GET /:app_uid/variables
*/ */
public function doGetCaseVariables($app_uid, $dyn_uid = null) public function doGetCaseVariables($app_uid, $dyn_uid = null, $pro_uid = null, $act_uid = null, $app_index = null)
{ {
try { try {
$usr_uid = $this->getUserId(); $usr_uid = $this->getUserId();
$cases = new \ProcessMaker\BusinessModel\Cases(); $cases = new \ProcessMaker\BusinessModel\Cases();
$response = $cases->getCaseVariables($app_uid, $usr_uid, $dyn_uid); $response = $cases->getCaseVariables($app_uid, $usr_uid, $dyn_uid, $pro_uid, $act_uid, $app_index);
return DateTime::convertUtcToTimeZone($response); return DateTime::convertUtcToTimeZone($response);
} catch (\Exception $e) { } catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
@@ -1633,7 +1633,7 @@ class Light extends Api
$_SESSION["PROCESS"] = $pro_uid; $_SESSION["PROCESS"] = $pro_uid;
$_SESSION["INDEX"] = $app_index; $_SESSION["INDEX"] = $app_index;
$_SESSION["USER_LOGGED"] = $usr_uid; $_SESSION["USER_LOGGED"] = $usr_uid;
do { do {
$conditionalSteps = $oCase->getNextStep($pro_uid, $app_uid, $app_index, $step_pos); $conditionalSteps = $oCase->getNextStep($pro_uid, $app_uid, $app_index, $step_pos);
if (is_array($conditionalSteps) && ( if (is_array($conditionalSteps) && (
@@ -1649,11 +1649,10 @@ class Light extends Api
//variables //variables
$cases = new \ProcessMaker\BusinessModel\Cases(); $cases = new \ProcessMaker\BusinessModel\Cases();
$variables = $cases->getCaseVariables($app_uid, $usr_uid, $dyn_uid); $variables = $cases->getCaseVariables($app_uid, $usr_uid, $dyn_uid, $pro_uid, $act_uid, $app_index);
$variables = DateTime::convertUtcToTimeZone($variables); $variables = DateTime::convertUtcToTimeZone($variables);
$response["variables"] = $variables; $response["variables"] = $variables;
return $response; return $response;
} }
} }