BUG 0000 Adjustment in import process in PMTables and ReportTables.
This commit is contained in:
@@ -1472,102 +1472,22 @@ var additionalTablesDataDelete = function(sUID, sKeys) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
switch (DB_ADAPTER) {
|
|
||||||
case 'mysql':
|
|
||||||
//select cases for this Process, ordered by APP_NUMBER
|
|
||||||
$oCriteria = new Criteria('workflow');
|
|
||||||
$oCriteria->add(ApplicationPeer::PRO_UID, $sProcessUid);
|
|
||||||
$oCriteria->addAscendingOrderByColumn(ApplicationPeer::APP_NUMBER);
|
|
||||||
$oDataset = ApplicationPeer::doSelectRS($oCriteria);
|
|
||||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
||||||
$oDataset->next();
|
|
||||||
while ($aRow = $oDataset->getRow()) {
|
|
||||||
$aData = unserialize($aRow['APP_DATA']);
|
|
||||||
|
|
||||||
//delete previous record from this report table ( previous records in case this is a grid )
|
$tableExists = true;
|
||||||
$deleteSql = 'DELETE FROM `' . $sTableName . "` WHERE APP_UID = '" . $aRow['APP_UID'] . "'";
|
$sDataBase = 'database_' . strtolower(DB_ADAPTER);
|
||||||
$rsDel = $stmt->executeQuery( $deleteSql );
|
if(G::LoadSystemExist($sDataBase)){
|
||||||
if ($sType == 'NORMAL') {
|
G::LoadSystem($sDataBase);
|
||||||
$sQuery = 'INSERT INTO `' . $sTableName . '` (';
|
$oDataBase = new database();
|
||||||
$sQuery .= '`APP_UID`,`APP_NUMBER`';
|
$sDataBase = $sConnection;
|
||||||
|
if($sDataBase == 'workflow')
|
||||||
|
$sDataBase = DB_NAME;
|
||||||
|
$tableExists = $oDataBase->tableExists($sTableName, $sDataBase);
|
||||||
|
}
|
||||||
|
if($tableExists) {
|
||||||
|
|
||||||
foreach ($aFields as $aField) {
|
switch (DB_ADAPTER) {
|
||||||
if ($aField['FLD_NAME'] != 'APP_UID' && $aField['FLD_NAME'] != 'APP_NUMBER' && $aField['FLD_NAME'] != 'ROW')
|
case 'mysql':
|
||||||
$sQuery .= ',`' . $aField['FLD_NAME'] . '`';
|
//select cases for this Process, ordered by APP_NUMBER
|
||||||
}
|
|
||||||
|
|
||||||
$sQuery .= ") VALUES ('" . $aRow['APP_UID'] . "'," . (int)$aRow['APP_NUMBER'];
|
|
||||||
foreach ($aFields as $aField) {
|
|
||||||
if ($aField['FLD_NAME'] == 'APP_UID' || $aField['FLD_NAME'] == 'APP_NUMBER' || $aField['FLD_NAME'] == 'ROW') continue;
|
|
||||||
|
|
||||||
switch ($aField['FLD_TYPE']) {
|
|
||||||
case 'INT':
|
|
||||||
case 'FLOAT':
|
|
||||||
$sQuery .= ',' . (isset($aData[$aField['FLD_DYN_NAME']]) ? (float)str_replace(',', '', $aData[$aField['FLD_DYN_NAME']]) : '0');
|
|
||||||
break;
|
|
||||||
case 'VARCHAR':
|
|
||||||
case 'TEXT':
|
|
||||||
if (!isset($aData[$aField['FLD_NAME']])) {
|
|
||||||
$aData[$aField['FLD_NAME']] = '';
|
|
||||||
}
|
|
||||||
$sQuery .= ",'" . (isset($aData[$aField['FLD_DYN_NAME']]) ? mysql_real_escape_string($aData[$aField['FLD_DYN_NAME']]) : '') . "'";
|
|
||||||
break;
|
|
||||||
case 'DATE':
|
|
||||||
$value = (isset($aData[$aField['FLD_DYN_NAME']]) && trim($aData[$aField['FLD_DYN_NAME']])) != '' ? "'" . $aData[$aField['FLD_DYN_NAME']] . "'" : 'NULL';
|
|
||||||
$sQuery .= "," . $value;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$sQuery .= ')';
|
|
||||||
|
|
||||||
$rs = $stmt->executeQuery( $sQuery );
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (isset($aData[$sGrid])) {
|
|
||||||
foreach ($aData[$sGrid] as $iRow => $aGridRow) {
|
|
||||||
$sQuery = 'INSERT INTO `' . $sTableName . '` (';
|
|
||||||
$sQuery .= '`APP_UID`,`APP_NUMBER`,`ROW`';
|
|
||||||
|
|
||||||
foreach ($aFields as $aField) {
|
|
||||||
if ($aField['FLD_NAME'] != 'APP_UID' && $aField['FLD_NAME'] != 'APP_NUMBER' && $aField['FLD_NAME'] != 'ROW')
|
|
||||||
$sQuery .= ',`' . $aField['FLD_NAME'] . '`';
|
|
||||||
}
|
|
||||||
|
|
||||||
$sQuery .= ") VALUES ('" . $aRow['APP_UID'] . "'," . (int)$aRow['APP_NUMBER'] . ',' . $iRow;
|
|
||||||
foreach ($aFields as $aField) {
|
|
||||||
if ($aField['FLD_NAME'] != 'APP_UID' || $aField['FLD_NAME'] != 'APP_NUMBER' || $aField['FLD_NAME'] != 'ROW') continue;
|
|
||||||
|
|
||||||
switch ($aField['FLD_TYPE']) {
|
|
||||||
case 'INT':
|
|
||||||
case 'FLOAT':
|
|
||||||
$sQuery .= ',' . (isset($aGridRow[$aField['FLD_NAME']]) ? (float)str_replace(',', '', $aGridRow[$aField['FLD_NAME']]) : '0');
|
|
||||||
break;
|
|
||||||
case 'VARCHAR':
|
|
||||||
case 'TEXT':
|
|
||||||
if (!isset($aGridRow[$aField['FLD_NAME']])) {
|
|
||||||
$aGridRow[$aField['FLD_NAME']] = '';
|
|
||||||
}
|
|
||||||
$sQuery .= ",'" . (isset($aGridRow[$aField['FLD_NAME']]) ? mysql_real_escape_string($aGridRow[$aField['FLD_NAME']]) : '') . "'";
|
|
||||||
break;
|
|
||||||
case 'DATE':
|
|
||||||
$value = (isset($aGridRow[$aField['FLD_NAME']]) && trim($aGridRow[$aField['FLD_NAME']])) != '' ? "'" . $aGridRow[$aField['FLD_NAME']] . "'" : 'NULL';
|
|
||||||
$sQuery .= "," . $value;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$sQuery .= ')';
|
|
||||||
$rs = $stmt->executeQuery( $sQuery );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$oDataset->next();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* For SQLServer code
|
|
||||||
*/
|
|
||||||
case 'mssql':
|
|
||||||
$oCriteria = new Criteria('workflow');
|
$oCriteria = new Criteria('workflow');
|
||||||
$oCriteria->add(ApplicationPeer::PRO_UID, $sProcessUid);
|
$oCriteria->add(ApplicationPeer::PRO_UID, $sProcessUid);
|
||||||
$oCriteria->addAscendingOrderByColumn(ApplicationPeer::APP_NUMBER);
|
$oCriteria->addAscendingOrderByColumn(ApplicationPeer::APP_NUMBER);
|
||||||
@@ -1576,58 +1496,76 @@ var additionalTablesDataDelete = function(sUID, sKeys) {
|
|||||||
$oDataset->next();
|
$oDataset->next();
|
||||||
while ($aRow = $oDataset->getRow()) {
|
while ($aRow = $oDataset->getRow()) {
|
||||||
$aData = unserialize($aRow['APP_DATA']);
|
$aData = unserialize($aRow['APP_DATA']);
|
||||||
mysql_query('DELETE FROM [' . $sTableName . "] WHERE APP_UID = '" . $aRow['APP_UID'] . "'");
|
|
||||||
|
//delete previous record from this report table ( previous records in case this is a grid )
|
||||||
|
$deleteSql = 'DELETE FROM `' . $sTableName . "` WHERE APP_UID = '" . $aRow['APP_UID'] . "'";
|
||||||
|
$rsDel = $stmt->executeQuery( $deleteSql );
|
||||||
if ($sType == 'NORMAL') {
|
if ($sType == 'NORMAL') {
|
||||||
$sQuery = 'INSERT INTO [' . $sTableName . '] (';
|
$sQuery = 'INSERT INTO `' . $sTableName . '` (';
|
||||||
$sQuery .= '[APP_UID],[APP_NUMBER]';
|
$sQuery .= '`APP_UID`,`APP_NUMBER`';
|
||||||
|
|
||||||
foreach ($aFields as $aField) {
|
foreach ($aFields as $aField) {
|
||||||
$sQuery .= ',[' . $aField['sFieldName'] . ']';
|
if ($aField['FLD_NAME'] != 'APP_UID' && $aField['FLD_NAME'] != 'APP_NUMBER' && $aField['FLD_NAME'] != 'ROW')
|
||||||
|
$sQuery .= ',`' . $aField['FLD_NAME'] . '`';
|
||||||
}
|
}
|
||||||
|
|
||||||
$sQuery .= ") VALUES ('" . $aRow['APP_UID'] . "'," . (int)$aRow['APP_NUMBER'];
|
$sQuery .= ") VALUES ('" . $aRow['APP_UID'] . "'," . (int)$aRow['APP_NUMBER'];
|
||||||
foreach ($aFields as $aField) {
|
foreach ($aFields as $aField) {
|
||||||
switch ($aField['sType']) {
|
if ($aField['FLD_NAME'] == 'APP_UID' || $aField['FLD_NAME'] == 'APP_NUMBER' || $aField['FLD_NAME'] == 'ROW') continue;
|
||||||
case 'number':
|
|
||||||
$sQuery .= ',' . (isset($aData[$aField['sFieldName']]) ? (float)str_replace(',', '', $aData[$aField['sFieldName']]) : '0');
|
switch ($aField['FLD_TYPE']) {
|
||||||
break;
|
case 'INT':
|
||||||
case 'char':
|
case 'FLOAT':
|
||||||
case 'text':
|
$sQuery .= ',' . (isset($aData[$aField['FLD_DYN_NAME']]) ? (float)str_replace(',', '', $aData[$aField['FLD_DYN_NAME']]) : '0');
|
||||||
if (!isset($aData[$aField['sFieldName']])) {
|
break;
|
||||||
$aData[$aField['sFieldName']] = '';
|
case 'VARCHAR':
|
||||||
|
case 'TEXT':
|
||||||
|
if (!isset($aData[$aField['FLD_NAME']])) {
|
||||||
|
$aData[$aField['FLD_NAME']] = '';
|
||||||
}
|
}
|
||||||
$sQuery .= ",'" . (isset($aData[$aField['sFieldName']]) ? mysql_real_escape_string($aData[$aField['sFieldName']]) : '') . "'";
|
$sQuery .= ",'" . (isset($aData[$aField['FLD_DYN_NAME']]) ? mysql_real_escape_string($aData[$aField['FLD_DYN_NAME']]) : '') . "'";
|
||||||
break;
|
break;
|
||||||
case 'date':
|
case 'DATE':
|
||||||
$sQuery .= ",'" . (isset($aData[$aField['sFieldName']]) ? $aData[$aField['sFieldName']] : '') . "'";
|
$value = (isset($aData[$aField['FLD_DYN_NAME']]) && trim($aData[$aField['FLD_DYN_NAME']])) != '' ? "'" . $aData[$aField['FLD_DYN_NAME']] . "'" : 'NULL';
|
||||||
break;
|
$sQuery .= "," . $value;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$sQuery .= ')';
|
$sQuery .= ')';
|
||||||
|
|
||||||
$rs = $stmt->executeQuery( $sQuery );
|
$rs = $stmt->executeQuery( $sQuery );
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (isset($aData[$sGrid])) {
|
if (isset($aData[$sGrid])) {
|
||||||
foreach ($aData[$sGrid] as $iRow => $aGridRow) {
|
foreach ($aData[$sGrid] as $iRow => $aGridRow) {
|
||||||
$sQuery = 'INSERT INTO [' . $sTableName . '] (';
|
$sQuery = 'INSERT INTO `' . $sTableName . '` (';
|
||||||
$sQuery .= '`APP_UID`,`APP_NUMBER`,`ROW`';
|
$sQuery .= '`APP_UID`,`APP_NUMBER`,`ROW`';
|
||||||
|
|
||||||
foreach ($aFields as $aField) {
|
foreach ($aFields as $aField) {
|
||||||
$sQuery .= ',[' . $aField['sFieldName'] . ']';
|
if ($aField['FLD_NAME'] != 'APP_UID' && $aField['FLD_NAME'] != 'APP_NUMBER' && $aField['FLD_NAME'] != 'ROW')
|
||||||
|
$sQuery .= ',`' . $aField['FLD_NAME'] . '`';
|
||||||
}
|
}
|
||||||
|
|
||||||
$sQuery .= ") VALUES ('" . $aRow['APP_UID'] . "'," . (int)$aRow['APP_NUMBER'] . ',' . $iRow;
|
$sQuery .= ") VALUES ('" . $aRow['APP_UID'] . "'," . (int)$aRow['APP_NUMBER'] . ',' . $iRow;
|
||||||
foreach ($aFields as $aField) {
|
foreach ($aFields as $aField) {
|
||||||
switch ($aField['sType']) {
|
if ($aField['FLD_NAME'] != 'APP_UID' || $aField['FLD_NAME'] != 'APP_NUMBER' || $aField['FLD_NAME'] != 'ROW') continue;
|
||||||
case 'number':
|
|
||||||
$sQuery .= ',' . (isset($aGridRow[$aField['sFieldName']]) ? (float)str_replace(',', '', $aGridRow[$aField['sFieldName']]) : '0');
|
switch ($aField['FLD_TYPE']) {
|
||||||
break;
|
case 'INT':
|
||||||
case 'char':
|
case 'FLOAT':
|
||||||
case 'text':
|
$sQuery .= ',' . (isset($aGridRow[$aField['FLD_NAME']]) ? (float)str_replace(',', '', $aGridRow[$aField['FLD_NAME']]) : '0');
|
||||||
if (!isset($aGridRow[$aField['sFieldName']])) {
|
break;
|
||||||
$aGridRow[$aField['sFieldName']] = '';
|
case 'VARCHAR':
|
||||||
|
case 'TEXT':
|
||||||
|
if (!isset($aGridRow[$aField['FLD_NAME']])) {
|
||||||
|
$aGridRow[$aField['FLD_NAME']] = '';
|
||||||
}
|
}
|
||||||
$sQuery .= ",'" . (isset($aGridRow[$aField['sFieldName']]) ? mysql_real_escape_string($aGridRow[$aField['sFieldName']]) : '') . "'";
|
$sQuery .= ",'" . (isset($aGridRow[$aField['FLD_NAME']]) ? mysql_real_escape_string($aGridRow[$aField['FLD_NAME']]) : '') . "'";
|
||||||
break;
|
break;
|
||||||
case 'date':
|
case 'DATE':
|
||||||
$sQuery .= ",'" . (isset($aGridRow[$aField['sFieldName']]) ? $aGridRow[$aField['sFieldName']] : '') . "'";
|
$value = (isset($aGridRow[$aField['FLD_NAME']]) && trim($aGridRow[$aField['FLD_NAME']])) != '' ? "'" . $aGridRow[$aField['FLD_NAME']] . "'" : 'NULL';
|
||||||
break;
|
$sQuery .= "," . $value;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$sQuery .= ')';
|
$sQuery .= ')';
|
||||||
@@ -1637,8 +1575,84 @@ var additionalTablesDataDelete = function(sUID, sKeys) {
|
|||||||
}
|
}
|
||||||
$oDataset->next();
|
$oDataset->next();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For SQLServer code
|
||||||
|
*/
|
||||||
|
case 'mssql':
|
||||||
|
$oCriteria = new Criteria('workflow');
|
||||||
|
$oCriteria->add(ApplicationPeer::PRO_UID, $sProcessUid);
|
||||||
|
$oCriteria->addAscendingOrderByColumn(ApplicationPeer::APP_NUMBER);
|
||||||
|
$oDataset = ApplicationPeer::doSelectRS($oCriteria);
|
||||||
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||||
|
$oDataset->next();
|
||||||
|
while ($aRow = $oDataset->getRow()) {
|
||||||
|
$aData = unserialize($aRow['APP_DATA']);
|
||||||
|
mysql_query('DELETE FROM [' . $sTableName . "] WHERE APP_UID = '" . $aRow['APP_UID'] . "'");
|
||||||
|
if ($sType == 'NORMAL') {
|
||||||
|
$sQuery = 'INSERT INTO [' . $sTableName . '] (';
|
||||||
|
$sQuery .= '[APP_UID],[APP_NUMBER]';
|
||||||
|
foreach ($aFields as $aField) {
|
||||||
|
$sQuery .= ',[' . $aField['sFieldName'] . ']';
|
||||||
|
}
|
||||||
|
$sQuery .= ") VALUES ('" . $aRow['APP_UID'] . "'," . (int)$aRow['APP_NUMBER'];
|
||||||
|
foreach ($aFields as $aField) {
|
||||||
|
switch ($aField['sType']) {
|
||||||
|
case 'number':
|
||||||
|
$sQuery .= ',' . (isset($aData[$aField['sFieldName']]) ? (float)str_replace(',', '', $aData[$aField['sFieldName']]) : '0');
|
||||||
|
break;
|
||||||
|
case 'char':
|
||||||
|
case 'text':
|
||||||
|
if (!isset($aData[$aField['sFieldName']])) {
|
||||||
|
$aData[$aField['sFieldName']] = '';
|
||||||
|
}
|
||||||
|
$sQuery .= ",'" . (isset($aData[$aField['sFieldName']]) ? mysql_real_escape_string($aData[$aField['sFieldName']]) : '') . "'";
|
||||||
|
break;
|
||||||
|
case 'date':
|
||||||
|
$sQuery .= ",'" . (isset($aData[$aField['sFieldName']]) ? $aData[$aField['sFieldName']] : '') . "'";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$sQuery .= ')';
|
||||||
|
$rs = $stmt->executeQuery( $sQuery );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (isset($aData[$sGrid])) {
|
||||||
|
foreach ($aData[$sGrid] as $iRow => $aGridRow) {
|
||||||
|
$sQuery = 'INSERT INTO [' . $sTableName . '] (';
|
||||||
|
$sQuery .= '`APP_UID`,`APP_NUMBER`,`ROW`';
|
||||||
|
foreach ($aFields as $aField) {
|
||||||
|
$sQuery .= ',[' . $aField['sFieldName'] . ']';
|
||||||
|
}
|
||||||
|
$sQuery .= ") VALUES ('" . $aRow['APP_UID'] . "'," . (int)$aRow['APP_NUMBER'] . ',' . $iRow;
|
||||||
|
foreach ($aFields as $aField) {
|
||||||
|
switch ($aField['sType']) {
|
||||||
|
case 'number':
|
||||||
|
$sQuery .= ',' . (isset($aGridRow[$aField['sFieldName']]) ? (float)str_replace(',', '', $aGridRow[$aField['sFieldName']]) : '0');
|
||||||
|
break;
|
||||||
|
case 'char':
|
||||||
|
case 'text':
|
||||||
|
if (!isset($aGridRow[$aField['sFieldName']])) {
|
||||||
|
$aGridRow[$aField['sFieldName']] = '';
|
||||||
|
}
|
||||||
|
$sQuery .= ",'" . (isset($aGridRow[$aField['sFieldName']]) ? mysql_real_escape_string($aGridRow[$aField['sFieldName']]) : '') . "'";
|
||||||
|
break;
|
||||||
|
case 'date':
|
||||||
|
$sQuery .= ",'" . (isset($aGridRow[$aField['sFieldName']]) ? $aGridRow[$aField['sFieldName']] : '') . "'";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$sQuery .= ')';
|
||||||
|
$rs = $stmt->executeQuery( $sQuery );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$oDataset->next();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception $oError) {
|
catch (Exception $oError) {
|
||||||
|
|||||||
@@ -570,6 +570,7 @@ class pmTablesProxy extends HttpProxyController
|
|||||||
|
|
||||||
if($tRecord){
|
if($tRecord){
|
||||||
$tNameOld = $contentSchema['ADD_TAB_NAME'];
|
$tNameOld = $contentSchema['ADD_TAB_NAME'];
|
||||||
|
$contentSchema['ADD_TAB_UID'] = G::generateUniqueID();
|
||||||
$contentSchema['ADD_TAB_NAME'] = "{$contentSchema['ADD_TAB_NAME']}".sizeof($tRecord);
|
$contentSchema['ADD_TAB_NAME'] = "{$contentSchema['ADD_TAB_NAME']}".sizeof($tRecord);
|
||||||
$contentSchema['ADD_TAB_CLASS_NAME'] = "{$contentSchema['ADD_TAB_CLASS_NAME']}".sizeof($tRecord);
|
$contentSchema['ADD_TAB_CLASS_NAME'] = "{$contentSchema['ADD_TAB_CLASS_NAME']}".sizeof($tRecord);
|
||||||
$oMap->addRoute($tNameOld, $contentSchema['ADD_TAB_NAME']);
|
$oMap->addRoute($tNameOld, $contentSchema['ADD_TAB_NAME']);
|
||||||
@@ -627,7 +628,7 @@ class pmTablesProxy extends HttpProxyController
|
|||||||
|
|
||||||
$isReportTable = $contentSchema['PRO_UID'] != '' ? true : false;
|
$isReportTable = $contentSchema['PRO_UID'] != '' ? true : false;
|
||||||
if ($isReportTable) {
|
if ($isReportTable) {
|
||||||
$oAdditionalTables->populateReportTable($contentSchema['ADD_TAB_NAME'], $contentSchema['ADD_TAB_CONNECTION'], $contentSchema['ADD_TAB_TYPE'], $contentSchema['FIELDS'], $contentSchema['ADD_UID'], $contentSchema['ADD_TAB_GRID']);
|
$oAdditionalTables->populateReportTable($contentSchema['ADD_TAB_NAME'], $contentSchema['DBS_UID'], $contentSchema['ADD_TAB_TYPE'], $contentSchema['FIELDS'], $contentSchema['PRO_UID'], $contentSchema['ADD_TAB_GRID']);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user