HOR-3509 Regenerate classes for Additional Tables

This commit is contained in:
Roly Rudy Gutierrez Pinto
2017-08-10 15:25:44 -04:00
parent a10969c47b
commit 304d989846
2 changed files with 76 additions and 9 deletions

View File

@@ -113,6 +113,17 @@ class PmTable
} }
} }
/**
*
*
* @param string $adapter
* @return void
*/
public function setDbConfigAdapter($adapter)
{
$this->dbConfig->adapter = $adapter;
}
/** /**
* Backward compatibility function * Backward compatibility function
* Resolve a propel data source * Resolve a propel data source

View File

@@ -81,16 +81,47 @@ class FixReferencePath
$doSelect = \ReportTablePeer::doSelectRS($criteria); $doSelect = \ReportTablePeer::doSelectRS($criteria);
$doSelect->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $doSelect->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$consolidatedCases = new \ConsolidatedCases();
while ($doSelect->next()) { while ($doSelect->next()) {
$row = $doSelect->getRow(); $row = $doSelect->getRow();
$fields = $this->getReportTableFields($row["REP_TAB_UID"]); $fields = $this->getReportTableFields($row["REP_TAB_UID"]);
$this->regeneratePropelClasses($row["REP_TAB_NAME"], $fields, $row["TAS_UID"]); list($fields, $outFields) = $consolidatedCases->buildReportVariables($fields);
$this->outVerboseln("* Regenerate classes for table: " . $row["REP_TAB_NAME"]); try {
$this->regeneratePropelClasses($row["REP_TAB_NAME"], $row["REP_TAB_NAME"], $fields, $row["TAS_UID"]);
$this->outVerboseln("* Regenerate classes for table: " . $row["REP_TAB_NAME"]);
} catch (Exception $e) {
CLI::logging(CLI::error("Error:" . "Error in regenerate classes for table: " . $row["REP_TAB_NAME"] . ". " . $e));
}
}
$criteria = new \Criteria("workflow");
$criteria->addSelectColumn(\AdditionalTablesPeer::ADD_TAB_UID);
$criteria->addSelectColumn(\AdditionalTablesPeer::ADD_TAB_NAME);
$criteria->addSelectColumn(\AdditionalTablesPeer::ADD_TAB_CLASS_NAME);
$criteria->addSelectColumn(\AdditionalTablesPeer::DBS_UID);
$doSelect = \AdditionalTablesPeer::doSelectRS($criteria);
$doSelect->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($doSelect->next()) {
$row = $doSelect->getRow();
$fields = $this->getAdditionalTablesFields($row["ADD_TAB_UID"]);
try {
$pmTable = new \PmTable($row["ADD_TAB_NAME"]);
$pmTable->setDbConfigAdapter("mysql");
$pmTable->setColumns($fields);
$pmTable->prepare();
$pmTable->preparePropelIniFile();
$pmTable->buildSchema();
$pmTable->phingbuildModel();
$this->outVerboseln("* Regenerate classes for table: " . $row["ADD_TAB_NAME"]);
} catch (Exception $e) {
CLI::logging(CLI::error("Error:" . "Error in regenerate classes for table: " . $row["ADD_TAB_NAME"] . ". " . $e));
}
} }
unset($_SERVER["REQUEST_URI"]); unset($_SERVER["REQUEST_URI"]);
} catch (Exception $e) { } catch (Exception $e) {
CLI::logging(CLI::error("Error:" . "Error in updating consolidated files, proceed to regenerate manually: " . $e)); CLI::logging(CLI::error("Error:" . "Error in regenerate classes files, proceed to regenerate manually: " . $e));
} }
} }
@@ -116,6 +147,35 @@ class FixReferencePath
return $fields; return $fields;
} }
/**
* Gets the fields of the 'Additional Table'.
*
* @param string $addTabUid
* @return object
*/
public function getAdditionalTablesFields($addTabUid)
{
$fields = array();
$criteria = new \Criteria("workflow");
$criteria->add(\FieldsPeer::ADD_TAB_UID, $addTabUid);
$doSelect = \FieldsPeer::doSelectRS($criteria);
$doSelect->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($doSelect->next()) {
$row = $doSelect->getRow();
$object = new \stdClass();
$object->field_index = $row["FLD_INDEX"];
$object->field_name = $row["FLD_NAME"];
$object->field_description = $row["FLD_DESCRIPTION"];
$object->field_type = $row["FLD_TYPE"];
$object->field_size = $row["FLD_SIZE"];
$object->field_null = $row["FLD_NULL"];
$object->field_autoincrement = $row["FLD_AUTO_INCREMENT"];
$object->field_key = $row["FLD_KEY"];
$fields[] = $object;
}
return $fields;
}
/** /**
* Regenerate 'Propel' classes for 'Report Tables'. The name of the 'Report Table', * Regenerate 'Propel' classes for 'Report Tables'. The name of the 'Report Table',
* the fields and the related task are required. * the fields and the related task are required.
@@ -125,12 +185,8 @@ class FixReferencePath
* @param string $guid * @param string $guid
* @return void * @return void
*/ */
public function regeneratePropelClasses($repTabName, $fields, $guid) public function regeneratePropelClasses($repTabName, $className, $fields, $guid)
{ {
$consolidatedCases = new \ConsolidatedCases();
list($outFieldsClass, $outFields) = $consolidatedCases->buildReportVariables($fields);
$className = $repTabName;
$sourcePath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP; $sourcePath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP;
@unlink($sourcePath . $className . '.php'); @unlink($sourcePath . $className . '.php');
@@ -140,7 +196,7 @@ class FixReferencePath
@unlink($sourcePath . PATH_SEP . 'om' . PATH_SEP . 'Base' . $className . 'Peer.php'); @unlink($sourcePath . PATH_SEP . 'om' . PATH_SEP . 'Base' . $className . 'Peer.php');
$additionalTables = new \AdditionalTables(); $additionalTables = new \AdditionalTables();
$additionalTables->createPropelClasses($repTabName, $className, $outFieldsClass, $guid); $additionalTables->createPropelClasses($repTabName, $className, $fields, $guid);
} }
/** /**