This commit is contained in:
Paula Quispe
2018-11-01 12:55:15 -04:00
parent ea7292e6e7
commit 716b45a2ca

View File

@@ -3428,40 +3428,40 @@ class Cases
/** /**
* Execute trigger in task * Execute trigger in task
* @name executeTriggers * @name executeTriggers
* @param string $sTasUid * @param string $tasUid
* @param string $sStepType * @param string $stepType
* @param array $sStepUidObj * @param array $stepUidObj
* @param string $sTriggerType * @param string $triggerType
* @param array $aFields * @param array $fieldsCase
*
* @return integer * @return integer
*/ */
public function executeTriggers($sTasUid, $sStepType, $sStepUidObj, $sTriggerType, $aFields = array()) public function executeTriggers($tasUid, $stepType, $stepUidObj, $triggerType, $fieldsCase = [])
{ {
/*----------------------------------********---------------------------------*/ /*----------------------------------********---------------------------------*/
ChangeLog::getChangeLog() ChangeLog::getChangeLog()
->setObjectUid($sStepUidObj) ->setObjectUid($stepUidObj)
->getExecutedAtIdByTriggerType($sTriggerType); ->getExecutedAtIdByTriggerType($triggerType);
/*----------------------------------********---------------------------------*/ /*----------------------------------********---------------------------------*/
$aTriggers = $this->loadTriggers($sTasUid, $sStepType, $sStepUidObj, $sTriggerType); $listTriggers = $this->loadTriggers($tasUid, $stepType, $stepUidObj, $triggerType);
if (count($aTriggers) > 0) { if (count($listTriggers) > 0) {
global $oPMScript; global $oPMScript;
$oPMScript = new PMScript(); $oPMScript = new PMScript();
$oPMScript->setFields($aFields); $oPMScript->setFields($fieldsCase);
/*----------------------------------********---------------------------------*/ /*----------------------------------********---------------------------------*/
$cs = new CodeScanner(config("system.workspace")); $cs = new CodeScanner(config("system.workspace"));
$strFoundDisabledCode = ""; $strFoundDisabledCode = "";
/*----------------------------------********---------------------------------*/ /*----------------------------------********---------------------------------*/
foreach ($aTriggers as $aTrigger) { foreach ($listTriggers as $trigger) {
/*----------------------------------********---------------------------------*/ /*----------------------------------********---------------------------------*/
if (PMLicensedFeatures::getSingleton()->verifyfeature("B0oWlBLY3hHdWY0YUNpZEtFQm5CeTJhQlIwN3IxMEkwaG4=")) { if (PMLicensedFeatures::getSingleton()->verifyfeature("B0oWlBLY3hHdWY0YUNpZEtFQm5CeTJhQlIwN3IxMEkwaG4=")) {
//Check disabled code //Check disabled code
$arrayFoundDisabledCode = $cs->checkDisabledCode("SOURCE", $aTrigger["TRI_WEBBOT"]); $arrayFoundDisabledCode = $cs->checkDisabledCode("SOURCE", $trigger["TRI_WEBBOT"]);
if (!empty($arrayFoundDisabledCode)) { if (!empty($arrayFoundDisabledCode)) {
$strCodeAndLine = ""; $strCodeAndLine = "";
@@ -3470,30 +3470,40 @@ class Cases
$strCodeAndLine .= (($strCodeAndLine != "") ? ", " : "") . G::LoadTranslation("ID_DISABLED_CODE_CODE_AND_LINE", array($key, implode(", ", $value))); $strCodeAndLine .= (($strCodeAndLine != "") ? ", " : "") . G::LoadTranslation("ID_DISABLED_CODE_CODE_AND_LINE", array($key, implode(", ", $value)));
} }
$strFoundDisabledCode .= "<br />- " . $aTrigger["TRI_TITLE"] . ": " . $strCodeAndLine; $strFoundDisabledCode .= "<br />- " . $trigger["TRI_TITLE"] . ": " . $strCodeAndLine;
continue; continue;
} }
} }
/*----------------------------------********---------------------------------*/ /*----------------------------------********---------------------------------*/
//Execute //Execute
$bExecute = true; $execute = true;
if ($aTrigger['ST_CONDITION'] !== '') { if ($trigger['ST_CONDITION'] !== '') {
$oPMScript->setDataTrigger($aTrigger); $oPMScript->setDataTrigger($trigger);
$oPMScript->setScript($aTrigger['ST_CONDITION']); $oPMScript->setScript($trigger['ST_CONDITION']);
$oPMScript->setExecutedOn(PMScript::CONDITION); $oPMScript->setExecutedOn(PMScript::CONDITION);
$bExecute = $oPMScript->evaluate(); $execute = $oPMScript->evaluate();
} }
if ($bExecute) { if ($execute) {
$oPMScript->setDataTrigger($aTrigger); $oPMScript->setDataTrigger($trigger);
$oPMScript->setScript($aTrigger['TRI_WEBBOT']); $oPMScript->setScript($trigger['TRI_WEBBOT']);
$executedOn = $oPMScript->getExecutionOriginForAStep($sStepType, $sStepUidObj, $sTriggerType); $executedOn = $oPMScript->getExecutionOriginForAStep($stepType, $stepUidObj, $triggerType);
$oPMScript->setExecutedOn($executedOn); $oPMScript->setExecutedOn($executedOn);
$oPMScript->execute(); $oPMScript->execute();
$fieldsTrigger = $oPMScript->aFields;
$this->arrayTriggerExecutionTime[$aTrigger['TRI_UID']] = $oPMScript->scriptExecutionTime; //We will be load the last appData
if ($oPMScript->executedOn() === $oPMScript::AFTER_ROUTING) {
$appUid = !empty($fieldsCase['APPLICATION']) ? $fieldsCase['APPLICATION'] : '';
if (!empty($appUid)) {
$lastAppFields = $this->loadCase($appUid)['APP_DATA'];
$fieldsTrigger = array_merge($lastAppFields, $fieldsTrigger);
}
}
$this->arrayTriggerExecutionTime[$trigger['TRI_UID']] = $oPMScript->scriptExecutionTime;
} }
} }
/*----------------------------------********---------------------------------*/ /*----------------------------------********---------------------------------*/
@@ -3502,9 +3512,9 @@ class Cases
} }
/*----------------------------------********---------------------------------*/ /*----------------------------------********---------------------------------*/
return $oPMScript->aFields; return $fieldsTrigger;
} else { } else {
return $aFields; return $fieldsCase;
} }
} }