This commit is contained in:
Roly Rudy Gutierrez Pinto
2015-10-05 12:12:58 -04:00
parent 50c98294ec
commit 215b1e960d
8 changed files with 165 additions and 13 deletions

View File

@@ -27,7 +27,7 @@ class pmDynaform
$this->fields["APP_UID"] = null;
}
if (isset($this->fields["APP_DATA"]["DYN_CONTENT_HISTORY"])) {
$this->record["DYN_CONTENT"] = $this->fields["APP_DATA"]["DYN_CONTENT_HISTORY"];
$this->record["DYN_CONTENT"] = $this->fields["APP_DATA"]["DYN_CONTENT_HISTORY"];
}
}
@@ -314,6 +314,19 @@ class pmDynaform
$json->data->value = $links;
$json->data->label = isset($this->fields["APP_DATA"][$json->name . "_label"]) ? $this->fields["APP_DATA"][$json->name . "_label"] : "[]";
}
if ($key === "type" && ($value === "file")) {
//todo
$oCriteria = new Criteria("workflow");
$oCriteria->addSelectColumn(ProcessVariablesPeer::INP_DOC_UID);
$oCriteria->add(ProcessVariablesPeer::VAR_NAME, $json->variable);
$rs = ProcessVariablesPeer::doSelectRS($oCriteria);
$rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
if (isset($row["INP_DOC_UID"])) {
$json->inputDocuments = array($row["INP_DOC_UID"]);
}
}
//synchronize var_label
if ($key === "type" && ($value === "dropdown" || $value === "suggest")) {
if (isset($this->fields["APP_DATA"]["__VAR_CHANGED__"]) && in_array($json->name, explode(",", $this->fields["APP_DATA"]["__VAR_CHANGED__"]))) {
@@ -805,6 +818,64 @@ class pmDynaform
}
}
public function synchronizeInputDocument($processUid, $inputDocument)
{
$criteria = new Criteria("workflow");
$criteria->addSelectColumn(DynaformPeer::DYN_UID);
$criteria->addSelectColumn(DynaformPeer::DYN_CONTENT);
$criteria->add(DynaformPeer::PRO_UID, $processUid, Criteria::EQUAL);
$rsCriteria = DynaformPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$aRow = $rsCriteria->getRow();
$json = G::json_decode($aRow['DYN_CONTENT']);
$this->jsonsid($json, $inputDocument);
$json2 = G::json_encode($json);
//update dynaform
if ($json2 !== $aRow['DYN_CONTENT']) {
$con = Propel::getConnection(DynaformPeer::DATABASE_NAME);
$con->begin();
$oPro = DynaformPeer::retrieveByPk($aRow["DYN_UID"]);
$oPro->setDynContent($json2);
$oPro->save();
$con->commit();
}
}
}
private function jsonsid(&$json, $inputDocument)
{
foreach ($json as $key => $value) {
$sw1 = is_array($value);
$sw2 = is_object($value);
if ($sw1 || $sw2) {
$this->jsonsid($value, $inputDocument);
}
if (!$sw1 && !$sw2) {
if ($key === "type" && $json->type === "file" && $json->variable !== "") {
$a = new Criteria("workflow");
$a->addSelectColumn(ProcessVariablesPeer::INP_DOC_UID);
$a->add(ProcessVariablesPeer::VAR_NAME, $json->variable, Criteria::EQUAL);
$ds = DynaformPeer::doSelectRS($a);
$ds->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$ds->next();
$row = $ds->getRow();
if (isset($row) && $row["INP_DOC_UID"] === $inputDocument["INP_DOC_UID"]) {
if (isset($json->size)) {
$json->size = $inputDocument["INP_DOC_MAX_FILESIZE"];
}
if (isset($json->sizeUnity)) {
$json->sizeUnity = $inputDocument["INP_DOC_MAX_FILESIZE_UNIT"];
}
if (isset($json->extensions)) {
$json->extensions = $inputDocument["INP_DOC_TYPE_FILE"];
}
}
}
}
}
}
public function isUsed($processUid, $variable)
{
$criteria = new Criteria("workflow");

View File

@@ -87,6 +87,8 @@ class ProcessVariablesMapBuilder
$tMap->addColumn('VAR_ACCEPTED_VALUES', 'VarAcceptedValues', 'string', CreoleTypes::LONGVARCHAR, false, null);
$tMap->addColumn('INP_DOC_UID', 'InpDocUid', 'string', CreoleTypes::VARCHAR, false, 32);
} // doBuild()
} // ProcessVariablesMapBuilder

View File

@@ -93,6 +93,12 @@ abstract class BaseProcessVariables extends BaseObject implements Persistent
*/
protected $var_accepted_values;
/**
* The value for the inp_doc_uid field.
* @var string
*/
protected $inp_doc_uid = '';
/**
* Flag to prevent endless save loop, if this object is referenced
* by another object which falls in this transaction.
@@ -228,6 +234,17 @@ abstract class BaseProcessVariables extends BaseObject implements Persistent
return $this->var_accepted_values;
}
/**
* Get the [inp_doc_uid] column value.
*
* @return string
*/
public function getInpDocUid()
{
return $this->inp_doc_uid;
}
/**
* Set the value of [var_uid] column.
*
@@ -470,6 +487,28 @@ abstract class BaseProcessVariables extends BaseObject implements Persistent
} // setVarAcceptedValues()
/**
* Set the value of [inp_doc_uid] column.
*
* @param string $v new value
* @return void
*/
public function setInpDocUid($v)
{
// Since the native PHP type for this column is string,
// we will cast the input to a string (if it is not).
if ($v !== null && !is_string($v)) {
$v = (string) $v;
}
if ($this->inp_doc_uid !== $v || $v === '') {
$this->inp_doc_uid = $v;
$this->modifiedColumns[] = ProcessVariablesPeer::INP_DOC_UID;
}
} // setInpDocUid()
/**
* Hydrates (populates) the object variables with values from the database resultset.
*
@@ -509,12 +548,14 @@ abstract class BaseProcessVariables extends BaseObject implements Persistent
$this->var_accepted_values = $rs->getString($startcol + 10);
$this->inp_doc_uid = $rs->getString($startcol + 11);
$this->resetModified();
$this->setNew(false);
// FIXME - using NUM_COLUMNS may be clearer.
return $startcol + 11; // 11 = ProcessVariablesPeer::NUM_COLUMNS - ProcessVariablesPeer::NUM_LAZY_LOAD_COLUMNS).
return $startcol + 12; // 12 = ProcessVariablesPeer::NUM_COLUMNS - ProcessVariablesPeer::NUM_LAZY_LOAD_COLUMNS).
} catch (Exception $e) {
throw new PropelException("Error populating ProcessVariables object", $e);
@@ -751,6 +792,9 @@ abstract class BaseProcessVariables extends BaseObject implements Persistent
case 10:
return $this->getVarAcceptedValues();
break;
case 11:
return $this->getInpDocUid();
break;
default:
return null;
break;
@@ -782,6 +826,7 @@ abstract class BaseProcessVariables extends BaseObject implements Persistent
$keys[8] => $this->getVarNull(),
$keys[9] => $this->getVarDefault(),
$keys[10] => $this->getVarAcceptedValues(),
$keys[11] => $this->getInpDocUid(),
);
return $result;
}
@@ -846,6 +891,9 @@ abstract class BaseProcessVariables extends BaseObject implements Persistent
case 10:
$this->setVarAcceptedValues($value);
break;
case 11:
$this->setInpDocUid($value);
break;
} // switch()
}
@@ -913,6 +961,10 @@ abstract class BaseProcessVariables extends BaseObject implements Persistent
$this->setVarAcceptedValues($arr[$keys[10]]);
}
if (array_key_exists($keys[11], $arr)) {
$this->setInpDocUid($arr[$keys[11]]);
}
}
/**
@@ -968,6 +1020,10 @@ abstract class BaseProcessVariables extends BaseObject implements Persistent
$criteria->add(ProcessVariablesPeer::VAR_ACCEPTED_VALUES, $this->var_accepted_values);
}
if ($this->isColumnModified(ProcessVariablesPeer::INP_DOC_UID)) {
$criteria->add(ProcessVariablesPeer::INP_DOC_UID, $this->inp_doc_uid);
}
return $criteria;
}
@@ -1042,6 +1098,8 @@ abstract class BaseProcessVariables extends BaseObject implements Persistent
$copyObj->setVarAcceptedValues($this->var_accepted_values);
$copyObj->setInpDocUid($this->inp_doc_uid);
$copyObj->setNew(true);

View File

@@ -25,7 +25,7 @@ abstract class BaseProcessVariablesPeer
const CLASS_DEFAULT = 'classes.model.ProcessVariables';
/** The total number of columns. */
const NUM_COLUMNS = 11;
const NUM_COLUMNS = 12;
/** The number of lazy-loaded columns. */
const NUM_LAZY_LOAD_COLUMNS = 0;
@@ -64,6 +64,9 @@ abstract class BaseProcessVariablesPeer
/** the column name for the VAR_ACCEPTED_VALUES field */
const VAR_ACCEPTED_VALUES = 'PROCESS_VARIABLES.VAR_ACCEPTED_VALUES';
/** the column name for the INP_DOC_UID field */
const INP_DOC_UID = 'PROCESS_VARIABLES.INP_DOC_UID';
/** The PHP to DB Name Mapping */
private static $phpNameMap = null;
@@ -75,10 +78,10 @@ abstract class BaseProcessVariablesPeer
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/
private static $fieldNames = array (
BasePeer::TYPE_PHPNAME => array ('VarUid', 'PrjUid', 'VarName', 'VarFieldType', 'VarFieldSize', 'VarLabel', 'VarDbconnection', 'VarSql', 'VarNull', 'VarDefault', 'VarAcceptedValues', ),
BasePeer::TYPE_COLNAME => array (ProcessVariablesPeer::VAR_UID, ProcessVariablesPeer::PRJ_UID, ProcessVariablesPeer::VAR_NAME, ProcessVariablesPeer::VAR_FIELD_TYPE, ProcessVariablesPeer::VAR_FIELD_SIZE, ProcessVariablesPeer::VAR_LABEL, ProcessVariablesPeer::VAR_DBCONNECTION, ProcessVariablesPeer::VAR_SQL, ProcessVariablesPeer::VAR_NULL, ProcessVariablesPeer::VAR_DEFAULT, ProcessVariablesPeer::VAR_ACCEPTED_VALUES, ),
BasePeer::TYPE_FIELDNAME => array ('VAR_UID', 'PRJ_UID', 'VAR_NAME', 'VAR_FIELD_TYPE', 'VAR_FIELD_SIZE', 'VAR_LABEL', 'VAR_DBCONNECTION', 'VAR_SQL', 'VAR_NULL', 'VAR_DEFAULT', 'VAR_ACCEPTED_VALUES', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, )
BasePeer::TYPE_PHPNAME => array ('VarUid', 'PrjUid', 'VarName', 'VarFieldType', 'VarFieldSize', 'VarLabel', 'VarDbconnection', 'VarSql', 'VarNull', 'VarDefault', 'VarAcceptedValues', 'InpDocUid', ),
BasePeer::TYPE_COLNAME => array (ProcessVariablesPeer::VAR_UID, ProcessVariablesPeer::PRJ_UID, ProcessVariablesPeer::VAR_NAME, ProcessVariablesPeer::VAR_FIELD_TYPE, ProcessVariablesPeer::VAR_FIELD_SIZE, ProcessVariablesPeer::VAR_LABEL, ProcessVariablesPeer::VAR_DBCONNECTION, ProcessVariablesPeer::VAR_SQL, ProcessVariablesPeer::VAR_NULL, ProcessVariablesPeer::VAR_DEFAULT, ProcessVariablesPeer::VAR_ACCEPTED_VALUES, ProcessVariablesPeer::INP_DOC_UID, ),
BasePeer::TYPE_FIELDNAME => array ('VAR_UID', 'PRJ_UID', 'VAR_NAME', 'VAR_FIELD_TYPE', 'VAR_FIELD_SIZE', 'VAR_LABEL', 'VAR_DBCONNECTION', 'VAR_SQL', 'VAR_NULL', 'VAR_DEFAULT', 'VAR_ACCEPTED_VALUES', 'INP_DOC_UID', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, )
);
/**
@@ -88,10 +91,10 @@ abstract class BaseProcessVariablesPeer
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
*/
private static $fieldKeys = array (
BasePeer::TYPE_PHPNAME => array ('VarUid' => 0, 'PrjUid' => 1, 'VarName' => 2, 'VarFieldType' => 3, 'VarFieldSize' => 4, 'VarLabel' => 5, 'VarDbconnection' => 6, 'VarSql' => 7, 'VarNull' => 8, 'VarDefault' => 9, 'VarAcceptedValues' => 10, ),
BasePeer::TYPE_COLNAME => array (ProcessVariablesPeer::VAR_UID => 0, ProcessVariablesPeer::PRJ_UID => 1, ProcessVariablesPeer::VAR_NAME => 2, ProcessVariablesPeer::VAR_FIELD_TYPE => 3, ProcessVariablesPeer::VAR_FIELD_SIZE => 4, ProcessVariablesPeer::VAR_LABEL => 5, ProcessVariablesPeer::VAR_DBCONNECTION => 6, ProcessVariablesPeer::VAR_SQL => 7, ProcessVariablesPeer::VAR_NULL => 8, ProcessVariablesPeer::VAR_DEFAULT => 9, ProcessVariablesPeer::VAR_ACCEPTED_VALUES => 10, ),
BasePeer::TYPE_FIELDNAME => array ('VAR_UID' => 0, 'PRJ_UID' => 1, 'VAR_NAME' => 2, 'VAR_FIELD_TYPE' => 3, 'VAR_FIELD_SIZE' => 4, 'VAR_LABEL' => 5, 'VAR_DBCONNECTION' => 6, 'VAR_SQL' => 7, 'VAR_NULL' => 8, 'VAR_DEFAULT' => 9, 'VAR_ACCEPTED_VALUES' => 10, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, )
BasePeer::TYPE_PHPNAME => array ('VarUid' => 0, 'PrjUid' => 1, 'VarName' => 2, 'VarFieldType' => 3, 'VarFieldSize' => 4, 'VarLabel' => 5, 'VarDbconnection' => 6, 'VarSql' => 7, 'VarNull' => 8, 'VarDefault' => 9, 'VarAcceptedValues' => 10, 'InpDocUid' => 11, ),
BasePeer::TYPE_COLNAME => array (ProcessVariablesPeer::VAR_UID => 0, ProcessVariablesPeer::PRJ_UID => 1, ProcessVariablesPeer::VAR_NAME => 2, ProcessVariablesPeer::VAR_FIELD_TYPE => 3, ProcessVariablesPeer::VAR_FIELD_SIZE => 4, ProcessVariablesPeer::VAR_LABEL => 5, ProcessVariablesPeer::VAR_DBCONNECTION => 6, ProcessVariablesPeer::VAR_SQL => 7, ProcessVariablesPeer::VAR_NULL => 8, ProcessVariablesPeer::VAR_DEFAULT => 9, ProcessVariablesPeer::VAR_ACCEPTED_VALUES => 10, ProcessVariablesPeer::INP_DOC_UID => 11, ),
BasePeer::TYPE_FIELDNAME => array ('VAR_UID' => 0, 'PRJ_UID' => 1, 'VAR_NAME' => 2, 'VAR_FIELD_TYPE' => 3, 'VAR_FIELD_SIZE' => 4, 'VAR_LABEL' => 5, 'VAR_DBCONNECTION' => 6, 'VAR_SQL' => 7, 'VAR_NULL' => 8, 'VAR_DEFAULT' => 9, 'VAR_ACCEPTED_VALUES' => 10, 'INP_DOC_UID' => 11, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, )
);
/**
@@ -214,6 +217,8 @@ abstract class BaseProcessVariablesPeer
$criteria->addSelectColumn(ProcessVariablesPeer::VAR_ACCEPTED_VALUES);
$criteria->addSelectColumn(ProcessVariablesPeer::INP_DOC_UID);
}
const COUNT = 'COUNT(PROCESS_VARIABLES.VAR_UID)';

View File

@@ -3860,6 +3860,7 @@
<column name="VAR_NULL" type="TINYINT" size="32" default="0"/>
<column name="VAR_DEFAULT" type="VARCHAR" size="32" default=""/>
<column name="VAR_ACCEPTED_VALUES" type="LONGVARCHAR"/>
<column name="INP_DOC_UID" type="VARCHAR" size="32" default=""/>
</table>
<table name="APP_TIMEOUT_ACTION_EXECUTED">

View File

@@ -2122,6 +2122,7 @@ CREATE TABLE `PROCESS_VARIABLES`
`VAR_NULL` TINYINT(32) default 0,
`VAR_DEFAULT` VARCHAR(32) default '',
`VAR_ACCEPTED_VALUES` MEDIUMTEXT,
`INP_DOC_UID` VARCHAR(32) default '',
PRIMARY KEY (`VAR_UID`)
)ENGINE=InnoDB ;
#-----------------------------------------------------------------------------

View File

@@ -372,6 +372,10 @@ class InputDocument
$arrayData["INP_DOC_UID"] = $inputDocumentUid;
$result = $inputDocument->update($arrayData);
\G::LoadClass('pmDynaform');
$pmDynaform = new \pmDynaform();
$pmDynaform->synchronizeInputDocument($processUid, $arrayData);
//Return
unset($arrayData["INP_DOC_UID"]);

View File

@@ -78,6 +78,9 @@ class Variable
$encodeAcceptedValues = \G::json_encode($arrayData["VAR_ACCEPTED_VALUES"]);
$variable->setVarAcceptedValues($encodeAcceptedValues);
}
if (isset($arrayData["INP_DOC_UID"])) {
$variable->setInpDocUid($arrayData["INP_DOC_UID"]);
}
$variable->save();
$cnn->commit();
} else {
@@ -171,6 +174,9 @@ class Variable
$encodeAcceptedValues = \G::json_encode($arrayData["VAR_ACCEPTED_VALUES"]);
$variable->setVarAcceptedValues($encodeAcceptedValues);
}
if (isset($arrayData["INP_DOC_UID"])) {
$variable->setInpDocUid($arrayData["INP_DOC_UID"]);
}
$variable->save();
$cnn->commit();
//update dynaforms
@@ -272,6 +278,7 @@ class Variable
$criteria->addSelectColumn(\ProcessVariablesPeer::VAR_NULL);
$criteria->addSelectColumn(\ProcessVariablesPeer::VAR_DEFAULT);
$criteria->addSelectColumn(\ProcessVariablesPeer::VAR_ACCEPTED_VALUES);
$criteria->addSelectColumn(\ProcessVariablesPeer::INP_DOC_UID);
$criteria->addSelectColumn(\DbSourcePeer::DBS_SERVER);
$criteria->addSelectColumn(\DbSourcePeer::DBS_PORT);
$criteria->addSelectColumn(\DbSourcePeer::DBS_DATABASE_NAME);
@@ -308,7 +315,8 @@ class Variable
'var_sql' => $aRow['VAR_SQL'],
'var_null' => (int)$aRow['VAR_NULL'],
'var_default' => $aRow['VAR_DEFAULT'],
'var_accepted_values' => $encodeAcceptedValues);
'var_accepted_values' => $encodeAcceptedValues,
'inp_doc_uid' => $aRow['INP_DOC_UID']);
$rsCriteria->next();
}
//Return
@@ -347,6 +355,7 @@ class Variable
$criteria->addSelectColumn(\ProcessVariablesPeer::VAR_NULL);
$criteria->addSelectColumn(\ProcessVariablesPeer::VAR_DEFAULT);
$criteria->addSelectColumn(\ProcessVariablesPeer::VAR_ACCEPTED_VALUES);
$criteria->addSelectColumn(\ProcessVariablesPeer::INP_DOC_UID);
$criteria->addSelectColumn(\DbSourcePeer::DBS_SERVER);
$criteria->addSelectColumn(\DbSourcePeer::DBS_PORT);
$criteria->addSelectColumn(\DbSourcePeer::DBS_DATABASE_NAME);
@@ -382,7 +391,8 @@ class Variable
'var_sql' => $aRow['VAR_SQL'],
'var_null' => (int)$aRow['VAR_NULL'],
'var_default' => $aRow['VAR_DEFAULT'],
'var_accepted_values' => $encodeAcceptedValues);
'var_accepted_values' => $encodeAcceptedValues,
'inp_doc_uid' => $aRow['INP_DOC_UID']);
$rsCriteria->next();
}
//Return