HOR-479 0018979: the table CASE_CONSOLIDATED is wrong

up observations
This commit is contained in:
Ronald Q
2016-06-06 14:25:18 -04:00
parent e73140f17d
commit 314faaa099
2 changed files with 240 additions and 148 deletions

View File

@@ -1,37 +1,141 @@
<?php <?php
G::LoadClass("pmFunctions"); G::LoadClass("pmFunctions");
G::LoadClass("reportTables"); G::LoadClass("reportTables");
class ConsolidatedCases class ConsolidatedCases
{ {
function saveConsolidated ($data) private $existTable;
{ private $existTableName;
$status = $data['con_status']; private $existCaseConsolidate;
$sTasUid = $data['tas_uid']; private $rowRepTab;
$sDynUid = $data['dyn_uid']; private $rowCaseConsCore;
$sProUid = $data['pro_uid'];
$sRepTabUid = $data['rep_uid'];
$tableName = $data['table_name'];
$title = $data['title'];
if ($sRepTabUid != '') { public function processConsolidated($data)
if (!$status) { {
$oCaseConsolidated = new CaseConsolidatedCore(); $Status = $data['con_status'];
$oCaseConsolidated = CaseConsolidatedCorePeer::retrieveByPK($sTasUid); $TasUid = $data['tas_uid'];
$DynUid = $data['dyn_uid'];
$ProUid = $data['pro_uid'];
$RepTabUid = $data['rep_uid'];
$TableName = $data['table_name'];
$Title = $data['title'];
if($this->isUpdateFields($data) && $Status) {
return true;
}
if ($this->existTable && $Status) {
throw (new \Exception(\G::LoadTranslation("ID_TABLE_ALREADY_EXISTS")));
}
if ($RepTabUid != '') {
$this->deleteRepTab($RepTabUid, $Status, $TasUid, $TableName);
if(!$Status){
return true;
}
$RepTabUid = '';
}
$_POST['form']['PRO_UID'] = $ProUid;
$_POST['form']['REP_TAB_UID'] = $RepTabUid;
$_POST['form']['REP_TAB_NAME'] = $TableName;
$_POST['form']['REP_TAB_TYPE'] = "NORMAL";
$_POST['form']['REP_TAB_GRID'] = '';
$_POST['form']['REP_TAB_CONNECTION'] = 'wf';
$_POST['form']['REP_TAB_CREATE_DATE'] = date("Y-m-d H:i:s");
$_POST['form']['REP_TAB_STATUS'] = 'ACTIVE';
$_POST['form']['REP_TAB_TITLE'] = $Title;
$_POST['form']['FIELDS'] = array();
$sOldTableName = $_POST['form']['REP_TAB_NAME'];
$sOldConnection = $_POST['form']['REP_TAB_CONNECTION'];
$_POST['form']['REP_TAB_UID'] = $this->createReportTable($_POST['form']);
$oReportTables = new ReportTables();
$oReportTables->deleteAllReportVars($_POST['form']['REP_TAB_UID']);
G::LoadClass("pmDynaform");
$pmDyna = new pmDynaform(array());
$pmDyna->fields["CURRENT_DYNAFORM"] = $DynUid;
$dataDyna = $pmDyna->getDynaform();
$json = G::json_decode($dataDyna["DYN_CONTENT"]);
$fieldsDyna = $json->items[0]->items;
$valueType = array(
'text',
'textarea',
'dropdown',
'checkbox',
'datetime',
'yesno',
'date',
'hidden',
'currency',
'percentage',
'link'
);
foreach ($fieldsDyna as $value) {
foreach ($value as $val) {
if (isset($val->type)) {
if (in_array($val->type, $valueType)) {
$_POST['form']['FIELDS'][] = $val->name . '-' . $val->type;
}
}
}
}
list($aFieldsClass, $aFields) = $this->createReportVariables($_POST['form']['REP_TAB_UID'], $ProUid, $_POST['form']['FIELDS']);
$_POST['form']['REP_TAB_TYPE'] = "NORMAL";
$oReportTables->dropTable($sOldTableName, $sOldConnection);
$oReportTables->createTable($_POST['form']['REP_TAB_NAME'], $_POST['form']['REP_TAB_CONNECTION'], $_POST['form']['REP_TAB_TYPE'], $aFields);
$oReportTables->populateTable($_POST['form']['REP_TAB_NAME'], $_POST['form']['REP_TAB_CONNECTION'], $_POST['form']['REP_TAB_TYPE'], $aFields, $_POST['form']['PRO_UID'], '');
$sRepTabUid = $_POST['form']['REP_TAB_UID'];
$oCaseConsolidated = CaseConsolidatedCorePeer::retrieveByPK($TasUid);
if (!(is_object($oCaseConsolidated)) || get_class($oCaseConsolidated) != 'CaseConsolidatedCore') { if (!(is_object($oCaseConsolidated)) || get_class($oCaseConsolidated) != 'CaseConsolidatedCore') {
$oCaseConsolidated = new CaseConsolidatedCore(); $oCaseConsolidated = new CaseConsolidatedCore();
$oCaseConsolidated->setTasUid($sTasUid); $oCaseConsolidated->setTasUid($TasUid);
}
if ($this->existCaseConsolidate) {
$oCaseConsolidated->delete();
$oCaseConsolidated = CaseConsolidatedCorePeer::retrieveByPK($TasUid);
}
if (!(is_object($oCaseConsolidated)) || get_class($oCaseConsolidated) != 'CaseConsolidatedCore') {
$oCaseConsolidated = new CaseConsolidatedCore();
$oCaseConsolidated->setTasUid($TasUid);
}
$oCaseConsolidated->setConStatus('ACTIVE');
$oCaseConsolidated->setDynUid($DynUid);
$oCaseConsolidated->setRepTabUid($sRepTabUid);
$oCaseConsolidated->save();
$sClassName = $TableName;
$oAdditionalTables = new AdditionalTables();
$oAdditionalTables->createPropelClasses($TableName, $sClassName, $aFieldsClass, $TasUid);
}
public function deleteRepTab($RepTabUid, $Status, $TasUid, $TableName)
{
if (!$Status) {
$oCaseConsolidated = CaseConsolidatedCorePeer::retrieveByPK($TasUid);
if (!(is_object($oCaseConsolidated)) || get_class($oCaseConsolidated) != 'CaseConsolidatedCore') {
$oCaseConsolidated = new CaseConsolidatedCore();
$oCaseConsolidated->setTasUid($TasUid);
$oCaseConsolidated->setConStatus('INACTIVE'); $oCaseConsolidated->setConStatus('INACTIVE');
$oCaseConsolidated->save(); $oCaseConsolidated->save();
}else{ } else {
$oCaseConsolidated->delete(); $oCaseConsolidated->delete();
} }
return 1; return;
} }
$rptUid = null; $rptUid = null;
$criteria = new Criteria(); $criteria = new Criteria();
$criteria->addSelectColumn(ReportTablePeer::REP_TAB_UID); $criteria->addSelectColumn(ReportTablePeer::REP_TAB_UID);
$criteria->add(ReportTablePeer::REP_TAB_UID, $sRepTabUid); $criteria->add(ReportTablePeer::REP_TAB_UID, $RepTabUid);
$rsCriteria = ReportTablePeer::doSelectRS($criteria); $rsCriteria = ReportTablePeer::doSelectRS($criteria);
if ($rsCriteria->next()) { if ($rsCriteria->next()) {
@@ -44,7 +148,7 @@ class ConsolidatedCases
$rpts->deleteReportTable($rptUid); $rpts->deleteReportTable($rptUid);
} }
$sClassName = $tableName; $sClassName = $TableName;
$sPath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP; $sPath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP;
@unlink($sPath . $sClassName . '.php'); @unlink($sPath . $sClassName . '.php');
@@ -52,87 +156,108 @@ class ConsolidatedCases
@unlink($sPath . PATH_SEP . 'map' . PATH_SEP . $sClassName . 'MapBuilder.php'); @unlink($sPath . PATH_SEP . 'map' . PATH_SEP . $sClassName . 'MapBuilder.php');
@unlink($sPath . PATH_SEP . 'om' . PATH_SEP . 'Base' . $sClassName . '.php'); @unlink($sPath . PATH_SEP . 'om' . PATH_SEP . 'Base' . $sClassName . '.php');
@unlink($sPath . PATH_SEP . 'om' . PATH_SEP . 'Base' . $sClassName . 'Peer.php'); @unlink($sPath . PATH_SEP . 'om' . PATH_SEP . 'Base' . $sClassName . 'Peer.php');
return;
$sRepTabUid = '';
} }
$_POST['form']['PRO_UID'] = $sProUid; public function isUpdateFields($data)
$_POST['form']['REP_TAB_UID'] = $sRepTabUid; {
$_POST['form']['REP_TAB_NAME'] = $tableName; $oSession = new DBSession(new DBConnection());
$_POST['form']['REP_TAB_TYPE'] = "NORMAL"; $oTables = $oSession->Execute('SHOW TABLES FROM ' . DB_NAME);
$_POST['form']['REP_TAB_GRID'] = ''; $this->existTable = false;
$_POST['form']['REP_TAB_CONNECTION'] = 'wf'; while ($aRow = $oTables->read()) {
$_POST['form']['REP_TAB_CREATE_DATE'] = date("Y-m-d H:i:s"); if (in_array($data['table_name'], $aRow)) {
$_POST['form']['REP_TAB_STATUS'] = 'ACTIVE'; $this->existTable = true;
$_POST['form']['REP_TAB_TITLE'] = $title; break;
$_POST['form']['FIELDS'] = array(); }
}
$this->existTableName = $this->existTableName($data['table_name']);
$this->existCaseConsolidate = $this->existCaseConsolidate($data['tas_uid']);
unset($data['title']);
unset($data['con_status']);
$diff = $data;
if ($this->existTableName) {
$diff = array_diff($data, $this->rowRepTab);
}
if ($this->existCaseConsolidate){
$diff = array_diff($diff, $this->rowCaseConsCore);
}
return count($diff) <= 0;
}
public function existTableName($name)
{
$criteria = new Criteria();
$criteria->add(ReportTablePeer::REP_TAB_NAME, $name);
$rsCriteria = ReportTablePeer::doSelectRS($criteria);
$existName = false;
if ($rsCriteria->next()) {
$this->rowRepTab = $rsCriteria->getRow();
$existName = true;
}
return $existName;
}
public function existCaseConsolidate($taskUid)
{
$criteria = new Criteria();
$criteria->add(CaseConsolidatedCorePeer::TAS_UID, $taskUid);
$rsCriteria = CaseConsolidatedCorePeer::doSelectRS($criteria);
$existCaseConsolidate = false;
if ($rsCriteria->next()) {
$this->rowCaseConsCore = $rsCriteria->getRow();
$existCaseConsolidate = true;
}
return $existCaseConsolidate;
}
public function createReportTable($dataRepTab)
{
G::LoadClass("reportTables"); G::LoadClass("reportTables");
$oReportTable = new ReportTable(); $oReportTable = new ReportTable();
$oReportTable->create($dataRepTab);
return $oReportTable->getRepTabUid();
}
$sOldTableName = $_POST['form']['REP_TAB_NAME']; public function createReportVariables($RepTabUid, $ProUid, $formFields)
$sOldConnection = $_POST['form']['REP_TAB_CONNECTION']; {
$oReportTable->create($_POST['form']);
$_POST['form']['REP_TAB_UID'] = $oReportTable->getRepTabUid();
$oReportVar = new ReportVar(); $oReportVar = new ReportVar();
$oReportTables = new ReportTables(); $fieldsClass = array();
$oReportTables->deleteAllReportVars($_POST['form']['REP_TAB_UID']); $fields = array();
$aFields = array();
G::LoadClass("pmDynaform");
$pmDyna = new pmDynaform(array());
$pmDyna->fields["CURRENT_DYNAFORM"] = $sDynUid;
$dataDyna = $pmDyna->getDynaform();
$json = G::json_decode($dataDyna["DYN_CONTENT"]);
$fieldsDyna = $json->items[0]->items;
foreach ($fieldsDyna as $value) {
foreach ($value as $val) {
if(isset($val->type)){
if ($val->type == 'text' || $val->type == 'textarea' || $val->type == 'dropdown' || $val->type == 'checkbox' || $val->type == 'datetime' || $val->type == 'yesno' || $val->type == 'date' || $val->type == 'hidden' || $val->type == 'currency' || $val->type == 'percentage' || $val->type == 'link'){
$_POST['form']['FIELDS'][] = $val->name . '-' . $val->type;
}
}
}
}
$aFieldsClases = array();
$i = 1; $i = 1;
$aFieldsClases[$i]['FLD_NAME'] = 'APP_UID'; $fieldsClass[$i]['FLD_NAME'] = 'APP_UID';
$aFieldsClases[$i]['FLD_NULL'] = 'off'; $fieldsClass[$i]['FLD_NULL'] = 'off';
$aFieldsClases[$i]['FLD_KEY'] = 'on'; $fieldsClass[$i]['FLD_KEY'] = 'on';
$aFieldsClases[$i]['FLD_AUTO_INCREMENT'] = 'off'; $fieldsClass[$i]['FLD_AUTO_INCREMENT'] = 'off';
$aFieldsClases[$i]['FLD_DESCRIPTION'] = ''; $fieldsClass[$i]['FLD_DESCRIPTION'] = '';
$aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ; $fieldsClass[$i]['FLD_TYPE'] = 'VARCHAR' ;
$aFieldsClases[$i]['FLD_SIZE'] = 32; $fieldsClass[$i]['FLD_SIZE'] = 32;
$i++; $i++;
$aFieldsClases[$i]['FLD_NAME'] = 'APP_NUMBER'; $fieldsClass[$i]['FLD_NAME'] = 'APP_NUMBER';
$aFieldsClases[$i]['FLD_NULL'] = 'off'; $fieldsClass[$i]['FLD_NULL'] = 'off';
$aFieldsClases[$i]['FLD_KEY'] = 'on'; $fieldsClass[$i]['FLD_KEY'] = 'on';
$aFieldsClases[$i]['FLD_AUTO_INCREMENT'] = 'off'; $fieldsClass[$i]['FLD_AUTO_INCREMENT'] = 'off';
$aFieldsClases[$i]['FLD_DESCRIPTION'] = ''; $fieldsClass[$i]['FLD_DESCRIPTION'] = '';
$aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ; $fieldsClass[$i]['FLD_TYPE'] = 'VARCHAR' ;
$aFieldsClases[$i]['FLD_SIZE'] = 255; $fieldsClass[$i]['FLD_SIZE'] = 255;
foreach ($_POST['form']['FIELDS'] as $sField) { foreach ($formFields as $sField) {
$aField = explode('-', $sField); $aField = explode('-', $sField);
if ($aField[1] == 'title' || $aField[1] == 'submit') { if ($aField[1] == 'title' || $aField[1] == 'submit') {
continue; continue;
} }
$i++; $i++;
$aFieldsClases[$i]['FLD_NAME'] = $aField[0]; $fieldsClass[$i]['FLD_NAME'] = $aField[0];
$aFieldsClases[$i]['FLD_NULL'] = 'off'; $fieldsClass[$i]['FLD_NULL'] = 'off';
$aFieldsClases[$i]['FLD_KEY'] = 'off'; $fieldsClass[$i]['FLD_KEY'] = 'off';
$aFieldsClases[$i]['FLD_AUTO_INCREMENT'] = 'off'; $fieldsClass[$i]['FLD_AUTO_INCREMENT'] = 'off';
$aFieldsClases[$i]['FLD_DESCRIPTION'] = ''; $fieldsClass[$i]['FLD_DESCRIPTION'] = '';
switch ($aField[1]) { switch ($aField[1]) {
case 'currency': case 'currency':
case 'percentage': case 'percentage':
$sType = 'number'; $sType = 'number';
$aFieldsClases[$i]['FLD_TYPE'] = 'FLOAT' ; $fieldsClass[$i]['FLD_TYPE'] = 'FLOAT' ;
$aFieldsClases[$i]['FLD_SIZE'] = 255; $fieldsClass[$i]['FLD_SIZE'] = 255;
break; break;
case 'text': case 'text':
case 'password': case 'password':
@@ -143,67 +268,34 @@ class ConsolidatedCases
case 'hidden': case 'hidden':
case "link": case "link":
$sType = 'char'; $sType = 'char';
$aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ; $fieldsClass[$i]['FLD_TYPE'] = 'VARCHAR' ;
$aFieldsClases[$i]['FLD_SIZE'] = 255; $fieldsClass[$i]['FLD_SIZE'] = 255;
break; break;
case 'textarea': case 'textarea':
$sType = 'text'; $sType = 'text';
$aFieldsClases[$i]['FLD_TYPE'] = 'TEXT' ; $fieldsClass[$i]['FLD_TYPE'] = 'TEXT' ;
$aFieldsClases[$i]['FLD_SIZE'] = ''; $fieldsClass[$i]['FLD_SIZE'] = '';
break; break;
case 'date': case 'date':
$sType = 'date'; $sType = 'date';
$aFieldsClases[$i]['FLD_TYPE'] = 'DATE' ; $fieldsClass[$i]['FLD_TYPE'] = 'DATE' ;
$aFieldsClases[$i]['FLD_SIZE'] = ''; $fieldsClass[$i]['FLD_SIZE'] = '';
break; break;
default: default:
$sType = 'char'; $sType = 'char';
$aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ; $fieldsClass[$i]['FLD_TYPE'] = 'VARCHAR' ;
$aFieldsClases[$i]['FLD_SIZE'] = 255; $fieldsClass[$i]['FLD_SIZE'] = 255;
break; break;
} }
$oReportVar->create(array('REP_TAB_UID' => $_POST['form']['REP_TAB_UID'], $oReportVar->create(array(
'PRO_UID' => $_POST['form']['PRO_UID'], 'REP_TAB_UID' => $RepTabUid,
'PRO_UID' => $ProUid,
'REP_VAR_NAME' => $aField[0], 'REP_VAR_NAME' => $aField[0],
'REP_VAR_TYPE' => $sType)); 'REP_VAR_TYPE' => $sType)
$aFields[] = array('sFieldName' => $aField[0], 'sType' => $sType); );
$fields[] = array('sFieldName' => $aField[0], 'sType' => $sType);
} }
return array($fieldsClass, $fields);
$_POST['form']['REP_TAB_TYPE'] = "NORMAL";
$oReportTables->dropTable($sOldTableName, $sOldConnection);
$oReportTables->createTable($_POST['form']['REP_TAB_NAME'], $_POST['form']['REP_TAB_CONNECTION'], $_POST['form']['REP_TAB_TYPE'], $aFields);
$oReportTables->populateTable($_POST['form']['REP_TAB_NAME'], $_POST['form']['REP_TAB_CONNECTION'], $_POST['form']['REP_TAB_TYPE'], $aFields, $_POST['form']['PRO_UID'], '');
$sRepTabUid = $_POST['form']['REP_TAB_UID'];
$oCaseConsolidated = CaseConsolidatedCorePeer::retrieveByPK($sTasUid);
if (!(is_object($oCaseConsolidated)) || get_class($oCaseConsolidated) != 'CaseConsolidatedCore') {
$oCaseConsolidated = new CaseConsolidatedCore();
$oCaseConsolidated->setTasUid($sTasUid);
}
$criteria = new Criteria();
$criteria->addSelectColumn(CaseConsolidatedCorePeer::TAS_UID);
$criteria->add(CaseConsolidatedCorePeer::TAS_UID, $sTasUid);
$rsCriteria = CaseConsolidatedCorePeer::doSelectRS($criteria);
if ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$oCaseConsolidated->delete();
$oCaseConsolidated = CaseConsolidatedCorePeer::retrieveByPK($sTasUid);
}
if (!(is_object($oCaseConsolidated)) || get_class($oCaseConsolidated) != 'CaseConsolidatedCore') {
$oCaseConsolidated = new CaseConsolidatedCore();
$oCaseConsolidated->setTasUid($sTasUid);
}
$oCaseConsolidated->setConStatus('ACTIVE');
$oCaseConsolidated->setDynUid($sDynUid);
$oCaseConsolidated->setRepTabUid($sRepTabUid);
$oCaseConsolidated->save();
$sClassName = $tableName;
$oAdditionalTables = new AdditionalTables();
$oAdditionalTables->createPropelClasses($tableName, $sClassName, $aFieldsClases, $sTasUid);
} }
} }

View File

@@ -450,7 +450,7 @@ class Task
'table_name' => $arrayProperty['CONSOLIDATE_DATA']['consolidated_table'], 'table_name' => $arrayProperty['CONSOLIDATE_DATA']['consolidated_table'],
'title' => $arrayProperty['CONSOLIDATE_DATA']['consolidated_title'] 'title' => $arrayProperty['CONSOLIDATE_DATA']['consolidated_title']
); );
$consolidated->saveConsolidated($dataConso); $consolidated->processConsolidated($dataConso);
} }
} }
$arrayResult["status"] = "OK"; $arrayResult["status"] = "OK";