BUG 0000 Fix Bug in import process in ReportTables.

This commit is contained in:
Hector Cortez
2011-07-22 19:40:49 -04:00
parent f0bd3f5035
commit f8bfb6fb85
2 changed files with 14 additions and 5 deletions

View File

@@ -1317,7 +1317,9 @@ var additionalTablesDataDelete = function(sUID, sKeys) {
$aData = $this->load($sUID, true); $aData = $this->load($sUID, true);
$sPath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP; $sPath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP;
$sClassName = ($aData['ADD_TAB_CLASS_NAME'] != '' ? $aData['ADD_TAB_CLASS_NAME'] : $this->getPHPName($aData['ADD_TAB_NAME'])); $sClassName = ($aData['ADD_TAB_CLASS_NAME'] != '' ? $aData['ADD_TAB_CLASS_NAME'] : $this->getPHPName($aData['ADD_TAB_NAME']));
$oConnection = Propel::getConnection(FieldsPeer::DATABASE_NAME); // $oConnection = Propel::getConnection(FieldsPeer::DATABASE_NAME);
$oConnection = Propel::getConnection($aData['DBS_UID']);
$stmt = $oConnection->createStatement();
require_once $sPath . $sClassName . '.php'; require_once $sPath . $sClassName . '.php';
$sKeys = ''; $sKeys = '';
foreach ($aData['FIELDS'] as $aField) { foreach ($aData['FIELDS'] as $aField) {
@@ -1328,11 +1330,16 @@ var additionalTablesDataDelete = function(sUID, sKeys) {
} }
} }
$sKeys = substr($sKeys, 0, -1); $sKeys = substr($sKeys, 0, -1);
eval('$oClass = ' . $sClassName . 'Peer::retrieveByPK(' . $sKeys . ');'); $sqlExists = "SELECT COUNT(" . $aField['FLD_NAME'] . ") AS NRO_REGS FROM `" . $aData['ADD_TAB_NAME'] . "` ";
if (is_null($oClass)) { $rsExists = $stmt->executeQuery( $sqlExists, ResultSet::FETCHMODE_ASSOC);
$rsExists->next();
$aRow2 = $rsExists->getRow();
if ( $aRow2['NRO_REGS'] !='0' ) {
$oClass = new $sClassName; $oClass = new $sClassName;
foreach ($aFields as $sKey => $sValue) { foreach ($aFields as $sKey => $sValue) {
eval('$oClass->set' . $this->getPHPName($sKey) . '($aFields["' . $sKey . '"]);'); if(!preg_match("/\(?\)/", $sKey))
eval('$oClass->set' . $this->getPHPName($sKey) . '($aFields["' . $sKey . '"]);');
} }
if ($oClass->validate()) { if ($oClass->validate()) {
$oConnection->begin(); $oConnection->begin();
@@ -1484,6 +1491,8 @@ var additionalTablesDataDelete = function(sUID, sKeys) {
G::LoadSystem($sDataBase); G::LoadSystem($sDataBase);
$oDataBase = new database(); $oDataBase = new database();
$sDataBase = $sConnection; $sDataBase = $sConnection;
if($sDataBase == 'rp')
$sDataBase = DB_REPORT_NAME;
if($sDataBase == 'workflow') if($sDataBase == 'workflow')
$sDataBase = DB_NAME; $sDataBase = DB_NAME;
$tableExists = $oDataBase->tableExists($sTableName, $sDataBase); $tableExists = $oDataBase->tableExists($sTableName, $sDataBase);

View File

@@ -655,7 +655,7 @@ class pmTablesProxy extends HttpProxyController
'bPrimaryKey' => $contentSchema['FIELDS'][$iRow]['FLD_KEY'] 'bPrimaryKey' => $contentSchema['FIELDS'][$iRow]['FLD_KEY']
); );
} }
$oAdditionalTables->createTable($contentSchema['ADD_TAB_NAME'], 'wf', $aFields); $oAdditionalTables->createTable($contentSchema['ADD_TAB_NAME'], $contentSchema['DBS_UID'], $aFields);
for($i=1; $i <= count($contentSchema['FIELDS']); $i++){ for($i=1; $i <= count($contentSchema['FIELDS']); $i++){
$contentSchema['FIELDS'][$i]['FLD_NULL'] = $contentSchema['FIELDS'][$i]['FLD_NULL'] == '1' ? 'on' : ''; $contentSchema['FIELDS'][$i]['FLD_NULL'] = $contentSchema['FIELDS'][$i]['FLD_NULL'] == '1' ? 'on' : '';