change in methods

This commit is contained in:
Ronald Q
2016-08-12 07:41:52 -04:00
parent 0b44635ec6
commit d599dfa76f
2 changed files with 51 additions and 4 deletions

View File

@@ -5,6 +5,11 @@ namespace ProcessMaker\Core;
class RoutingScreen extends \Derivation
{
public $convergent = 0;
public $divergent = 0;
public $gateway = array('PARALLEL', 'PARALLEL-BY-EVALUATION');
public $isFirst;
public function __construct()
{
parent::__construct();
@@ -40,7 +45,47 @@ class RoutingScreen extends \Derivation
public function prepareRoutingScreen($arrayData)
{
return $this->postSanity($this->prepareInformation($arrayData));
$array = $this->postSanity($this->prepareInformation($arrayData));
return $array;
}
public function postSanity($arrayInformation)
{
$response = array();
foreach ($arrayInformation as $index => $element) {
$this->divergent = 0;
$this->convergent = 0;
$this->isFirst = true;
if ($this->checkElement($this->node[$element['TAS_UID']])) {
$response[] = $element;
}
}
return array_combine(range(1, count($response)), array_values($response));
//return parent::postSanity($arrayNextTask); // TODO: Change the autogenerated stub
}
public function checkElement($element)
{
if (empty($element['in'])) {
$x = 1;
return;
}
$outElement = $element['out'];
foreach ($outElement as $index => $outE) {
if (!$this->isFirst && in_array($outE, $this->gateway)) {
$this->divergent++;
}
}
$this->isFirst = false;
$inElement = $element['in'];
foreach ($inElement as $index => $inE) {
if ($inE == 'SEC-JOIN') {
$this->convergent++;
}
$this->checkElement($this->node[$index]);
}
//$this->checkElement($inElement);
return $this->convergent == 0 || $this->convergent == $this->divergent;
}
}