HOR-1501 Crear el método recursivo para encontrar la siguiente tarea con usuarios asignados después de un intermediase event

up observations

fix in type function

return source_uid
This commit is contained in:
Ronald Q
2016-08-01 16:42:58 -04:00
parent 9449548b4b
commit 18f086c09e
4 changed files with 49 additions and 8 deletions

View File

@@ -50,6 +50,28 @@ class Derivation
var $case;
protected $flagControl;
protected $flagControlMulInstance;
private $regexpTaskTypeToInclude;
public function __construct()
{
$this->setRegexpTaskTypeToInclude("GATEWAYTOGATEWAY|END-MESSAGE-EVENT|END-EMAIL-EVENT");
}
/**
* @return mixed
*/
public function getRegexpTaskTypeToInclude()
{
return $this->regexpTaskTypeToInclude;
}
/**
* @param mixed $regexpTaskTypeToInclude
*/
public function setRegexpTaskTypeToInclude($regexpTaskTypeToInclude)
{
$this->regexpTaskTypeToInclude = $regexpTaskTypeToInclude;
}
/**
* prepareInformationTask
@@ -240,15 +262,15 @@ class Derivation
foreach ($arrayNextTaskBackup as $value) {
$arrayNextTaskData = $value;
$regexpTaskTypeToInclude = "GATEWAYTOGATEWAY|END-MESSAGE-EVENT|END-EMAIL-EVENT";
if ($arrayNextTaskData["NEXT_TASK"]["TAS_UID"] != "-1" &&
preg_match("/^(?:" . $regexpTaskTypeToInclude . ")$/", $arrayNextTaskData["NEXT_TASK"]["TAS_TYPE"])
preg_match("/^(?:" . $this->regexpTaskTypeToInclude . ")$/", $arrayNextTaskData["NEXT_TASK"]["TAS_TYPE"])
) {
$arrayAux = $this->prepareInformation($arrayData, $arrayNextTaskData["NEXT_TASK"]["TAS_UID"]);
foreach ($arrayAux as $value2) {
$arrayNextTask[++$i] = $value2;
$key = ++$i;
$arrayNextTask[$key] = $value2;
$arrayNextTask[$key]['SOURCE_UID'] = $value['ROU_NEXT_TASK'];
foreach($aSecJoin as $rsj){
$arrayNextTask[$i]["NEXT_TASK"]["ROU_PREVIOUS_TASK"] = $rsj["ROU_PREVIOUS_TASK"];
$arrayNextTask[$i]["NEXT_TASK"]["ROU_PREVIOUS_TYPE"] = "SEC-JOIN";
@@ -262,7 +284,7 @@ class Derivation
) {
$arrayNextTaskData["NEXT_TASK"]["TAS_UID"] = $arrayNextTaskData["TAS_UID"] . "/" . $arrayNextTaskData["NEXT_TASK"]["TAS_UID"];
}
$arrayNextTaskData['SOURCE_UID'] = $value['ROU_NEXT_TASK'];
$arrayNextTask[++$i] = $arrayNextTaskData;
foreach($aSecJoin as $rsj){
$arrayNextTask[$i]["NEXT_TASK"]["ROU_PREVIOUS_TASK"] = $rsj["ROU_PREVIOUS_TASK"];

View File

@@ -368,7 +368,7 @@ class PMScript
/**
* Evaluate the current script
*
* @return void
* @return bool
*/
public function evaluate ()
{

View File

@@ -798,8 +798,13 @@ try {
$aFields['TAS_TYPE_DAY'] = G::LoadTranslation( 'ID_COUNT_DAYS' );
$aFields['TAS_CALENDAR'] = G::LoadTranslation( 'ID_CALENDAR' );
$aFields['TASK'] = $oDerivation->prepareInformation( array ('USER_UID' => $_SESSION['USER_LOGGED'],'APP_UID' => $_SESSION['APPLICATION'],'DEL_INDEX' => $_SESSION['INDEX']
) );
$oRoute = new \ProcessMaker\Core\RoutingScreen();
$arrayData = array(
'USER_UID' => $_SESSION['USER_LOGGED'],
'APP_UID' => $_SESSION['APPLICATION'],
'DEL_INDEX' => $_SESSION['INDEX']
);
$aFields['TASK'] = $oRoute->prepareInformation($arrayData);
if (empty( $aFields['TASK'] )) {
throw (new Exception( G::LoadTranslation( 'ID_NO_DERIVATION_RULE' ) ));

View File

@@ -0,0 +1,14 @@
<?php
namespace ProcessMaker\Core;
class RoutingScreen extends \Derivation
{
public function __construct()
{
parent::__construct();
$this->setRegexpTaskTypeToInclude("GATEWAYTOGATEWAY|END-MESSAGE-EVENT|END-EMAIL-EVENT|SCRIPT-TASK|INTERMEDIATE-CATCH-TIMER-EVENT|INTERMEDIATE-THROW-EMAIL-EVENT");
}
}