PM-3912 Los triggers Before Assignment se ejecutan aun cuando no se cumplan las condiciones
This commit is contained in:
@@ -160,11 +160,8 @@ if ($flagExecuteBeforeTriggers) {
|
||||
|
||||
if (! isset( $_SESSION['_NO_EXECUTE_TRIGGERS_'] )) {
|
||||
//Execute before triggers - Start
|
||||
if (!isset($_SESSION['beforeTriggersExecuted']) || $_GET['POSITION'] > 1) {
|
||||
$oStep = $oStep->loadByProcessTaskPosition( $_SESSION['PROCESS'], $_SESSION['TASK'], $_GET['POSITION'] );
|
||||
if($oStep) {
|
||||
$Fields['APP_DATA'] = $oCase->ExecuteTriggers( $_SESSION['TASK'], $oStep->getStepTypeObj(), $oStep->getStepUidObj(), 'BEFORE', $Fields['APP_DATA'] );
|
||||
}
|
||||
if (!isset($_SESSION['beforeTriggersExecuted']) || $triggers) {
|
||||
$Fields['APP_DATA'] = $oCase->ExecuteTriggers( $_SESSION['TASK'], $_GET['TYPE'], $_GET['UID'], 'BEFORE', $Fields['APP_DATA'] );
|
||||
} else {
|
||||
unset($_SESSION['beforeTriggersExecuted']);
|
||||
}
|
||||
|
||||
@@ -405,10 +405,10 @@ class Light
|
||||
|
||||
$triggers = $oCase->loadTriggers( $tas_uid, 'ASSIGN_TASK', '-1', 'BEFORE');
|
||||
if (isset($triggers)){
|
||||
$cases = new \ProcessMaker\BusinessModel\Cases();
|
||||
foreach($triggers as $trigger){
|
||||
$cases->putExecuteTriggerCase($app_uid, $trigger['TRI_UID'], $usr_uid);
|
||||
}
|
||||
$Fields = $oCase->loadCase( $app_uid );
|
||||
$Fields['APP_DATA'] = array_merge( $Fields['APP_DATA'], G::getSystemConstants() );
|
||||
$Fields['APP_DATA'] = $oCase->ExecuteTriggers( $tas_uid, 'DYNAFORM', '-1', 'BEFORE', $Fields['APP_DATA'] );
|
||||
$oCase->updateCase( $app_uid, $Fields );
|
||||
}
|
||||
$oDerivation = new \Derivation();
|
||||
$aData = array();
|
||||
|
||||
Reference in New Issue
Block a user