This commit is contained in:
Roly Rudy Gutierrez Pinto
2016-11-08 11:56:50 -04:00
parent b7f6e01efc
commit b7e415a968
2 changed files with 40 additions and 12 deletions

View File

@@ -1245,21 +1245,49 @@ class pmDynaform
return false; return false;
} }
public function searchField($dyn_uid, $field_id) public function searchField($dyn_uid, $field_id, $pro_uid = null)
{ {
//get pro_uid if empty
if (empty($pro_uid)) {
$a = new Criteria("workflow");
$a->addSelectColumn(DynaformPeer::PRO_UID);
$a->add(DynaformPeer::DYN_UID, $dyn_uid, Criteria::EQUAL);
$ds = DynaformPeer::doSelectRS($a);
$ds->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$ds->next();
$row = $ds->getRow();
$pro_uid = $row["PRO_UID"];
}
//get dynaforms
$a = new Criteria("workflow"); $a = new Criteria("workflow");
$a->addSelectColumn(DynaformPeer::DYN_UID);
$a->addSelectColumn(DynaformPeer::DYN_CONTENT); $a->addSelectColumn(DynaformPeer::DYN_CONTENT);
$a->add(DynaformPeer::DYN_UID, $dyn_uid, Criteria::EQUAL); $a->add(DynaformPeer::PRO_UID, $pro_uid, Criteria::EQUAL);
$ds = ProcessPeer::doSelectRS($a); $ds = DynaformPeer::doSelectRS($a);
$ds->setFetchmode(ResultSet::FETCHMODE_ASSOC); $ds->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$ds->next();
$row = $ds->getRow();
$json = G::json_decode($row["DYN_CONTENT"]);
$data = array(); $json = new stdClass();
$data["CURRENT_DYNAFORM"] = $dyn_uid; $dynaforms = array();
$pmDynaForm = new pmDynaform($data); while ($ds->next()) {
$pmDynaForm->jsonr($json); $row = $ds->getRow();
if ($row["DYN_UID"] === $dyn_uid) {
$json = G::json_decode($row["DYN_CONTENT"]);
} else {
$dynaforms[] = G::json_decode($row["DYN_CONTENT"]);
}
}
//get subforms
$fields = $this->jsonsf2($json, "form", "type");
foreach ($fields as $key => $value) {
if ($json->items[0]->id !== $value->id) {
foreach ($dynaforms as $dynaform) {
if ($value->id === $dynaform->items[0]->id) {
$form = $dynaform->items[0];
$this->jsonReplace($json, $value->id, "id", $form);
}
}
}
}
return $this->jsonsf($json, $field_id); return $this->jsonsf($json, $field_id);
} }

View File

@@ -562,7 +562,7 @@ class Variable
//Set data //Set data
\G::LoadClass('pmDynaform'); \G::LoadClass('pmDynaform');
$pmDynaform = new \pmDynaform(); $pmDynaform = new \pmDynaform();
$field = $pmDynaform->searchField($arrayVariable["dyn_uid"], $arrayVariable["field_id"]); $field = $pmDynaform->searchField($arrayVariable["dyn_uid"], $arrayVariable["field_id"], $processUid);
$dbConnection = "workflow"; $dbConnection = "workflow";
if ($field !== null && !empty($field->dbConnection)) { if ($field !== null && !empty($field->dbConnection)) {
$dbConnection = $field->dbConnection; $dbConnection = $field->dbConnection;
@@ -720,7 +720,7 @@ class Variable
//Set data //Set data
\G::LoadClass('pmDynaform'); \G::LoadClass('pmDynaform');
$pmDynaform = new \pmDynaform(); $pmDynaform = new \pmDynaform();
$field = $pmDynaform->searchField($arrayVariable["dyn_uid"], $variableName); $field = $pmDynaform->searchField($arrayVariable["dyn_uid"], $variableName, $processUid);
//Get data //Get data
$filter = str_replace('\'', '\'\'', (isset($arrayVariable['filter']))? $arrayVariable['filter'] : ''); $filter = str_replace('\'', '\'\'', (isset($arrayVariable['filter']))? $arrayVariable['filter'] : '');