From 550327601e4d4e5e5fe141aeb20650cb5b0f56a3 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Thu, 22 Sep 2016 12:28:07 -0400 Subject: [PATCH] HOR-1908 --- workflow/engine/classes/class.pmDynaform.php | 14 ++++++++++++++ workflow/engine/classes/class.pmFunctions.php | 15 +++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/workflow/engine/classes/class.pmDynaform.php b/workflow/engine/classes/class.pmDynaform.php index 5a6bc1a8f..4137f0a99 100644 --- a/workflow/engine/classes/class.pmDynaform.php +++ b/workflow/engine/classes/class.pmDynaform.php @@ -1257,6 +1257,20 @@ class pmDynaform return $this->jsonsf($json, $field_id); } + public function searchFieldByName($dyn_uid, $name) + { + $a = new Criteria("workflow"); + $a->addSelectColumn(DynaformPeer::DYN_CONTENT); + $a->add(DynaformPeer::DYN_UID, $dyn_uid, Criteria::EQUAL); + $ds = ProcessPeer::doSelectRS($a); + $ds->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $ds->next(); + $row = $ds->getRow(); + $json = G::json_decode($row["DYN_CONTENT"]); + $this->jsonr($json); + return $this->jsonsf($json, $name, "name"); + } + private function jsonsf(&$json, $id, $for = "id") { foreach ($json as $key => $value) { diff --git a/workflow/engine/classes/class.pmFunctions.php b/workflow/engine/classes/class.pmFunctions.php index b87e34f8b..0c897afae 100644 --- a/workflow/engine/classes/class.pmFunctions.php +++ b/workflow/engine/classes/class.pmFunctions.php @@ -2380,6 +2380,21 @@ function jumping ($caseId, $delIndex) */ function PMFgetLabelOption ($PROCESS, $DYNAFORM_UID, $FIELD_NAME, $FIELD_SELECTED_ID) { + G::LoadClass("pmDynaform"); + $data = array(); + $data["CURRENT_DYNAFORM"] = $DYNAFORM_UID; + $dynaform = new pmDynaform($data); + if ($dynaform->isResponsive()) { + $json = $dynaform->searchFieldByName($DYNAFORM_UID, $FIELD_NAME); + $options = $json->options + $json->optionsSql; + foreach ($options as $key => $value) { + if ((string) $value->value === (string) $FIELD_SELECTED_ID) { + return $value->label; + } + } + return null; + } + $G_FORM = new Form( "{$PROCESS}/{$DYNAFORM_UID}", PATH_DYNAFORM, SYS_LANG, false ); if (isset( $G_FORM->fields[$FIELD_NAME]->option[$FIELD_SELECTED_ID] )) { return $G_FORM->fields[$FIELD_NAME]->option[$FIELD_SELECTED_ID];