From cc9a696aa481bd00d4eea80d60fd21818314dbaa Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Mon, 7 Dec 2015 17:53:33 -0400 Subject: [PATCH] PM-4210 --- workflow/engine/classes/class.pmScript.php | 26 +++++++++++++++++++ .../ProcessMaker/BusinessModel/Variable.php | 3 +++ 2 files changed, 29 insertions(+) diff --git a/workflow/engine/classes/class.pmScript.php b/workflow/engine/classes/class.pmScript.php index a6f494f5d..153f38021 100644 --- a/workflow/engine/classes/class.pmScript.php +++ b/workflow/engine/classes/class.pmScript.php @@ -564,6 +564,32 @@ class PMScript } } } + if (isset($this->aFields[$var]) && is_string($this->aFields[$var])) { + $varInfo = $variableModule->getVariableTypeByName($_SESSION['PROCESS'], $var); + $options = G::json_decode($varInfo["VAR_ACCEPTED_VALUES"]); + $no = count($options); + for ($io = 0; $io < $no; $io++) { + if ($options[$io]->value === $this->aFields[$var]) { + $this->aFields[$var . "_label"] = $options[$io]->label; + } + } + if ($varInfo["VAR_DBCONNECTION"] !== "" && $varInfo["VAR_DBCONNECTION"] !== "none" && $varInfo["VAR_SQL"] !== "") { + try { + $cnn = Propel::getConnection($varInfo["VAR_DBCONNECTION"]); + $stmt = $cnn->createStatement(); + $sql = G::replaceDataField($varInfo["VAR_SQL"], $this->aFields); + $rs = $stmt->executeQuery($sql, \ResultSet::FETCHMODE_NUM); + while ($rs->next()) { + $row = $rs->getRow(); + if ($row[0] === $this->aFields[$var]) { + $this->aFields[$var . "_label"] = isset($row[1]) ? $row[1] : $row[0]; + } + } + } catch (Exception $e) { + + } + } + } } } } diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php b/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php index e31d0b6bd..a54718871 100755 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php @@ -880,6 +880,9 @@ class Variable $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_UID); $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_NAME); $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_FIELD_TYPE); + $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_DBCONNECTION); + $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_SQL); + $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_ACCEPTED_VALUES); $criteria->add(\ProcessVariablesPeer::VAR_NAME, $variableName); $criteria->add(\ProcessVariablesPeer::PRJ_UID, $processUid); $rsCriteria = \ProcessVariablesPeer::doSelectRS($criteria);