643 lines
29 KiB
PHP
643 lines
29 KiB
PHP
<?php
|
|
|
|
class AdditionalTablesConsolidated extends AdditionalTables
|
|
{
|
|
public function createPropelClasses($sTableName, $sClassName, $aFields, $sAddTabUid)
|
|
{
|
|
try {
|
|
$aTypes = array('VARCHAR' => 'string',
|
|
'TEXT' => 'string',
|
|
'DATE' => 'int',
|
|
'INT' => 'int',
|
|
'FLOAT' => 'double');
|
|
$aCreoleTypes = array('VARCHAR' => 'VARCHAR',
|
|
'TEXT' => 'LONGVARCHAR',
|
|
'DATE' => 'TIMESTAMP',
|
|
'INT' => 'INTEGER',
|
|
'FLOAT' => 'DOUBLE');
|
|
if ($sClassName == '') {
|
|
$sClassName = $this->getPHPName($sTableName);
|
|
}
|
|
|
|
$sPath = PATH_DB . config("system.workspace") . PATH_SEP . 'classes' . PATH_SEP;
|
|
if (!file_exists($sPath)) {
|
|
G::mk_dir($sPath);
|
|
G::mk_dir($sPath . 'map');
|
|
G::mk_dir($sPath . 'om');
|
|
}
|
|
$aData = array();
|
|
$aData['pathClasses'] = substr(PATH_DB, 0, -1);
|
|
$aData['tableName'] = $sTableName;
|
|
$aData['className'] = $sClassName;
|
|
$aData['GUID'] = $sAddTabUid;
|
|
$aData['firstColumn'] = $aFields[1]['FLD_NAME'];
|
|
$aData['totalColumns'] = count($aFields);
|
|
$aData['useIdGenerator'] = 'false';
|
|
$oTP1 = new TemplatePower(PATH_TPL . 'additionalTables' . PATH_SEP . 'Table.tpl');
|
|
$oTP1->prepare();
|
|
$oTP1->assignGlobal($aData);
|
|
file_put_contents($sPath . $sClassName . '.php', $oTP1->getOutputContent());
|
|
$oTP2 = new TemplatePower(PATH_TPL . 'additionalTables' . PATH_SEP . 'TablePeer.tpl');
|
|
$oTP2->prepare();
|
|
$oTP2->assignGlobal($aData);
|
|
file_put_contents($sPath . $sClassName . 'Peer.php', $oTP2->getOutputContent());
|
|
$aColumns = array();
|
|
$aPKs = array();
|
|
$aNotPKs = array();
|
|
$i = 0;
|
|
foreach ($aFields as $iKey => $aField) {
|
|
$aColumn = array('name' => $aField['FLD_NAME'],
|
|
'phpName' => $this->getPHPName($aField['FLD_NAME']),
|
|
'type' => $aTypes[$aField['FLD_TYPE']],
|
|
'creoleType' => $aCreoleTypes[$aField['FLD_TYPE']],
|
|
'notNull' => ($aField['FLD_NULL'] == 'on' ? 'true' : 'false'),
|
|
'size' => (($aField['FLD_TYPE'] == 'VARCHAR') || ($aField['FLD_TYPE'] == 'INT') || ($aField['FLD_TYPE'] == 'FLOAT') ? $aField['FLD_SIZE'] : 'null'),
|
|
'var' => strtolower($aField['FLD_NAME']),
|
|
'attribute' => (($aField['FLD_TYPE'] == 'VARCHAR') || ($aField['FLD_TYPE'] == 'TEXT') || ($aField['FLD_TYPE'] == 'DATE') ? '$' . strtolower($aField['FLD_NAME']) . " = ''" : '$' . strtolower($aField['FLD_NAME']) . ' = 0'),
|
|
'index' => $i,
|
|
);
|
|
if ($aField['FLD_TYPE'] == 'DATE') {
|
|
$aColumn['getFunction'] = '
|
|
/**
|
|
* Get the [optionally formatted] [' . $aColumn['var'] . '] column value.
|
|
*
|
|
* @param string $format The date/time format string (either date()-style or strftime()-style).
|
|
* If format is NULL, then the integer unix timestamp will be returned.
|
|
* @return mixed Formatted date/time value as string or integer unix timestamp (if format is NULL).
|
|
* @throws PropelException - if unable to convert the date/time to timestamp.
|
|
*/
|
|
public function get' . $aColumn['phpName'] . '($format = "Y-m-d")
|
|
{
|
|
|
|
if ($this->' . $aColumn['var'] . ' === null || $this->' . $aColumn['var'] . ' === "") {
|
|
return null;
|
|
} elseif (!is_int($this->' . $aColumn['var'] . ')) {
|
|
// a non-timestamp value was set externally, so we convert it
|
|
if (($this->' . $aColumn['var'] . ' == "0000-00-00 00:00:00") || ($this->' . $aColumn['var'] . ' == "0000-00-00") || !$this->' . $aColumn['var'] . ') {
|
|
$ts = "0";
|
|
}
|
|
else {
|
|
$ts = strtotime($this->' . $aColumn['var'] . ');
|
|
}
|
|
if ($ts === -1 || $ts === false) { // in PHP 5.1 return value changes to FALSE
|
|
throw new PropelException("Unable to parse value of [' . $aColumn['var'] . '] as date/time value: " . var_export($this->' . $aColumn['var'] . ', true));
|
|
}
|
|
} else {
|
|
$ts = $this->' . $aColumn['var'] . ';
|
|
}
|
|
if ($format === null) {
|
|
return $ts;
|
|
} elseif (strpos($format, "%") !== false) {
|
|
return strftime($format, $ts);
|
|
} else {
|
|
return date($format, $ts);
|
|
}
|
|
}';
|
|
} else {
|
|
$aColumn['getFunction'] = '
|
|
/**
|
|
* Get the [' . $aColumn['var'] . '] column value.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function get' . $aColumn['phpName'] . '()
|
|
{
|
|
|
|
return $this->' . $aColumn['var'] . ';
|
|
}';
|
|
}
|
|
|
|
switch ($aField['FLD_TYPE']) {
|
|
case 'VARCHAR':
|
|
case 'TEXT':
|
|
$aColumn['setFunction'] = '
|
|
// 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->' . $aColumn['var'] . ' !== $v) {
|
|
$this->' . $aColumn['var'] . ' = $v;
|
|
$this->modifiedColumns[] = ' . $aData['className'] . 'Peer::' . $aColumn['name'] . ';
|
|
}';
|
|
break;
|
|
case 'DATE':
|
|
$aColumn['setFunction'] = '
|
|
if ($v !== null && !is_int($v)) {
|
|
// if($v == \'\')
|
|
// $ts = null;
|
|
// else
|
|
$ts = strtotime($v);
|
|
if ($ts === -1 || $ts === false) { // in PHP 5.1 return value changes to FALSE
|
|
//throw new PropelException("Unable to parse date/time value for [' . $aColumn['var'] . '] from input: " . var_export($v, true));
|
|
}
|
|
} else {
|
|
$ts = $v;
|
|
}
|
|
if ($this->' . $aColumn['var'] . ' !== $ts) {
|
|
$this->' . $aColumn['var'] . ' = $ts;
|
|
$this->modifiedColumns[] = ' . $aData['className'] . 'Peer::' . $aColumn['name'] . ';
|
|
}';
|
|
break;
|
|
case 'INT':
|
|
$aColumn['setFunction'] = '
|
|
// Since the native PHP type for this column is integer,
|
|
// we will cast the input value to an int (if it is not).
|
|
if ($v !== null && !is_int($v) && is_numeric($v)) {
|
|
$v = (int) $v;
|
|
}
|
|
|
|
if ($this->' . $aColumn['var'] . ' !== $v || $v === 1) {
|
|
$this->' . $aColumn['var'] . ' = $v;
|
|
$this->modifiedColumns[] = ' . $aData['className'] . 'Peer::' . $aColumn['name'] . ';
|
|
}';
|
|
break;
|
|
case 'FLOAT':
|
|
$aColumn['setFunction'] = '
|
|
if ($this->' . $aColumn['var'] . ' !== $v || $v === 0) {
|
|
$this->' . $aColumn['var'] . ' = $v;
|
|
$this->modifiedColumns[] = ' . $aData['className'] . 'Peer::' . $aColumn['name'] . ';
|
|
}';
|
|
break;
|
|
}
|
|
$aColumns[] = $aColumn;
|
|
if ($aField['FLD_KEY'] == 'on') {
|
|
$aPKs[] = $aColumn;
|
|
} else {
|
|
$aNotPKs[] = $aColumn;
|
|
}
|
|
if ($aField['FLD_AUTO_INCREMENT'] == 'on') {
|
|
$aData['useIdGenerator'] = 'true';
|
|
}
|
|
$i++;
|
|
}
|
|
|
|
$oTP3 = new TemplatePower(PATH_TPL . 'additionalTables' . PATH_SEP . 'map' . PATH_SEP . 'TableMapBuilder.tpl');
|
|
$oTP3->prepare();
|
|
$oTP3->assignGlobal($aData);
|
|
foreach ($aPKs as $iIndex => $aColumn) {
|
|
$oTP3->newBlock('primaryKeys');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP3->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
}
|
|
$oTP3->gotoBlock('_ROOT');
|
|
foreach ($aNotPKs as $iIndex => $aColumn) {
|
|
$oTP3->newBlock('columnsWhitoutKeys');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP3->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
}
|
|
file_put_contents($sPath . PATH_SEP . 'map' . PATH_SEP . $sClassName . 'MapBuilder.php', $oTP3->getOutputContent());
|
|
$oTP4 = new TemplatePower(PATH_TPL . 'additionalTables' . PATH_SEP . 'om' . PATH_SEP . 'BaseTable.tpl');
|
|
$oTP4->prepare();
|
|
switch (count($aPKs)) {
|
|
case 0:
|
|
$aData['getPrimaryKeyFunction'] = 'return null;';
|
|
$aData['setPrimaryKeyFunction'] = '';
|
|
break;
|
|
case 1:
|
|
$aData['getPrimaryKeyFunction'] = 'return $this->get' . $aPKs[0]['phpName'] . '();';
|
|
$aData['setPrimaryKeyFunction'] = '$this->set' . $aPKs[0]['phpName'] . '($key);';
|
|
break;
|
|
default:
|
|
$aData['getPrimaryKeyFunction'] = '$pks = array();' . "\n";
|
|
$aData['setPrimaryKeyFunction'] = '';
|
|
foreach ($aPKs as $iIndex => $aColumn) {
|
|
$aData['getPrimaryKeyFunction'] .= '$pks[' . $iIndex . '] = $this->get' . $aColumn['phpName'] . '();' . "\n";
|
|
$aData['setPrimaryKeyFunction'] .= '$this->set' . $aColumn['phpName'] . '($keys[' . $iIndex . ']);' . "\n";
|
|
}
|
|
$aData['getPrimaryKeyFunction'] .= 'return $pks;' . "\n";
|
|
break;
|
|
}
|
|
$oTP4->assignGlobal($aData);
|
|
foreach ($aColumns as $iIndex => $aColumn) {
|
|
$oTP4->newBlock('allColumns1');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
$oTP4->newBlock('allColumns2');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
$oTP4->newBlock('allColumns3');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
$oTP4->newBlock('allColumns4');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
$oTP4->newBlock('allColumns5');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
$oTP4->newBlock('allColumns6');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
$oTP4->newBlock('allColumns7');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
$oTP4->newBlock('allColumns8');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
$oTP4->newBlock('allColumns9');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
}
|
|
$oTP4->gotoBlock('_ROOT');
|
|
foreach ($aPKs as $iIndex => $aColumn) {
|
|
$oTP4->newBlock('primaryKeys1');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
}
|
|
$oTP4->gotoBlock('_ROOT');
|
|
foreach ($aPKs as $iIndex => $aColumn) {
|
|
$oTP4->newBlock('primaryKeys2');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
}
|
|
$oTP4->gotoBlock('_ROOT');
|
|
foreach ($aNotPKs as $iIndex => $aColumn) {
|
|
$oTP4->newBlock('columnsWhitoutKeys');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP4->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
}
|
|
file_put_contents($sPath . PATH_SEP . 'om' . PATH_SEP . 'Base' . $sClassName . '.php', $oTP4->getOutputContent());
|
|
$oTP5 = new TemplatePower(PATH_TPL . 'additionalTables' . PATH_SEP . 'om' . PATH_SEP . 'BaseTablePeer.tpl');
|
|
$oTP5->prepare();
|
|
$sKeys = '';
|
|
foreach ($aPKs as $iIndex => $aColumn) {
|
|
$sKeys .= '$' . $aColumn['var'] . ', ';
|
|
}
|
|
$sKeys = substr($sKeys, 0, -2);
|
|
//$sKeys = '$pm_unique_id';
|
|
if ($sKeys != '') {
|
|
$aData['sKeys'] = $sKeys;
|
|
} else {
|
|
$aData['sKeys'] = '$DUMMY';
|
|
}
|
|
$oTP5->assignGlobal($aData);
|
|
foreach ($aColumns as $iIndex => $aColumn) {
|
|
$oTP5->newBlock('allColumns1');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
$oTP5->newBlock('allColumns2');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
$oTP5->newBlock('allColumns3');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
$oTP5->newBlock('allColumns4');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
$oTP5->newBlock('allColumns5');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
$oTP5->newBlock('allColumns6');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
$oTP5->newBlock('allColumns7');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
$oTP5->newBlock('allColumns8');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
$oTP5->newBlock('allColumns9');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
$oTP5->newBlock('allColumns10');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
}
|
|
$oTP5->gotoBlock('_ROOT');
|
|
foreach ($aPKs as $iIndex => $aColumn) {
|
|
$oTP5->newBlock('primaryKeys1');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
}
|
|
foreach ($aPKs as $iIndex => $aColumn) {
|
|
$oTP5->newBlock('primaryKeys2');
|
|
$aKeys = array_keys($aColumn);
|
|
foreach ($aKeys as $sKey) {
|
|
$oTP5->assign($sKey, $aColumn[$sKey]);
|
|
}
|
|
}
|
|
file_put_contents($sPath . PATH_SEP . 'om' . PATH_SEP . 'Base' . $sClassName . 'Peer.php', $oTP5->getOutputContent());
|
|
} catch (Exception $oError) {
|
|
throw($oError);
|
|
}
|
|
}
|
|
}
|
|
|
|
class ajax_con extends WebResource
|
|
{
|
|
public function con_save_properties($sTasUid, $sDynUid, $sStatus, $sProUid, $sRepTabUid, $tableName, $title, $swOverwrite)
|
|
{
|
|
|
|
if ($sStatus == "1" && $sDynUid != "") {
|
|
//Verified as not to duplicate the name of the table
|
|
|
|
switch ($swOverwrite) {
|
|
case 1:
|
|
//Delete report table
|
|
$criteria = new Criteria();
|
|
|
|
$criteria->addSelectColumn(ReportTablePeer::REP_TAB_UID);
|
|
$criteria->add(ReportTablePeer::REP_TAB_NAME, $tableName);
|
|
|
|
$rsCriteria = ReportTablePeer::doSelectRS($criteria);
|
|
|
|
$rptUid = null;
|
|
|
|
if ($rsCriteria->next()) {
|
|
$row = $rsCriteria->getRow();
|
|
|
|
$rptUid = $row[0];
|
|
}
|
|
|
|
$rpts = new ReportTables();
|
|
|
|
if ($rptUid != null) {
|
|
$rpts->deleteReportTable($rptUid);
|
|
}
|
|
|
|
$sRepTabUid = "";
|
|
break;
|
|
case 2:
|
|
//Delete table
|
|
$rpts = new ReportTables();
|
|
$rpts->dropTable($tableName, "wf");
|
|
|
|
$sRepTabUid = "";
|
|
break;
|
|
}
|
|
|
|
$criteria = new Criteria();
|
|
$criteria->addSelectColumn(ReportTablePeer::REP_TAB_UID);
|
|
//$criteria->add(ReportTablePeer::PRO_UID, $sProUid);
|
|
$criteria->add(ReportTablePeer::REP_TAB_NAME, $tableName);
|
|
|
|
$result = ReportTablePeer::doSelectRS($criteria);
|
|
$result->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
if ($result->next()) {
|
|
$dataRes = $result->getRow();
|
|
|
|
if ($dataRes["REP_TAB_UID"] != $sRepTabUid) {
|
|
return 1;
|
|
}
|
|
} else {
|
|
//check if table $tableName exists
|
|
$con = Propel::getConnection("workflow");
|
|
$stmt = $con->createStatement();
|
|
|
|
$sql="SHOW TABLES";
|
|
$rs1 = $stmt->executeQuery($sql, ResultSet::FETCHMODE_NUM);
|
|
$rs1->next();
|
|
while ( is_array($row = $rs1->getRow() )) {
|
|
if ( $row[0] == $tableName ) {
|
|
return 2;
|
|
}
|
|
$rs1->next();
|
|
}
|
|
}
|
|
|
|
$_POST['form']['PRO_UID'] = $sProUid;
|
|
$_POST['form']['REP_TAB_UID'] = $sRepTabUid;
|
|
$_POST['form']['REP_TAB_NAME'] = $tableName;
|
|
$_POST['form']['REP_TAB_TYPE'] = "GRID";
|
|
$_POST['form']['REP_TAB_GRID'] = $sProUid . "-" . $sDynUid;
|
|
$_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();
|
|
|
|
$oReportTable = new ReportTable();
|
|
//if (!isset($_POST['form']['REP_TAB_CONNECTION'])) {
|
|
// $_POST['form']['REP_TAB_CONNECTION'] = 'report';
|
|
//}
|
|
if ($_POST['form']['REP_TAB_UID'] != "") {
|
|
$aReportTable = $oReportTable->load($_POST['form']['REP_TAB_UID']);
|
|
$sOldTableName = $aReportTable['REP_TAB_NAME'];
|
|
$sOldConnection = $aReportTable['REP_TAB_CONNECTION'];
|
|
} else {
|
|
$sOldTableName = $_POST['form']['REP_TAB_NAME'];
|
|
$sOldConnection = $_POST['form']['REP_TAB_CONNECTION'];
|
|
$_POST['form']['REP_TAB_TYPE'] = 'NORMAL';
|
|
$oReportTable->create($_POST['form']);
|
|
$_POST['form']['REP_TAB_UID'] = $oReportTable->getRepTabUid();
|
|
}
|
|
|
|
$_POST['form']['REP_TAB_TYPE'] = 'NORMAL';
|
|
$oReportTable->update($_POST['form']);
|
|
|
|
$_POST['form']['REP_TAB_TYPE'] = 'GRID';
|
|
|
|
$oReportVar = new ReportVar();
|
|
$oReportTables = new ReportTables();
|
|
$oReportTables->deleteAllReportVars($_POST['form']['REP_TAB_UID']);
|
|
|
|
$aFields = array();
|
|
|
|
if ($_POST['form']['REP_TAB_TYPE'] == 'GRID') {
|
|
$aAux = explode('-', $_POST['form']['REP_TAB_GRID']);
|
|
global $G_FORM;
|
|
|
|
$G_FORM = new FormBatchRouting($_POST["form"]["PRO_UID"] . PATH_SEP . $aAux[1], PATH_DYNAFORM, SYS_LANG, false);
|
|
$aAux = $G_FORM->getVars(false);
|
|
|
|
foreach ($aAux as $aField) {
|
|
$_POST['form']['FIELDS'][] = $aField['sName'] . '-' . $aField['sType'];
|
|
}
|
|
}
|
|
|
|
$aFieldsClases = array();
|
|
$i = 1;
|
|
$aFieldsClases[$i]['FLD_NAME'] = 'APP_UID';
|
|
$aFieldsClases[$i]['FLD_NULL'] = 'off';
|
|
$aFieldsClases[$i]['FLD_KEY'] = 'on';
|
|
$aFieldsClases[$i]['FLD_AUTO_INCREMENT'] = 'off';
|
|
$aFieldsClases[$i]['FLD_DESCRIPTION'] = '';
|
|
$aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ;
|
|
$aFieldsClases[$i]['FLD_SIZE'] = 32;
|
|
$i++;
|
|
$aFieldsClases[$i]['FLD_NAME'] = 'APP_NUMBER';
|
|
$aFieldsClases[$i]['FLD_NULL'] = 'off';
|
|
$aFieldsClases[$i]['FLD_KEY'] = 'on';
|
|
$aFieldsClases[$i]['FLD_AUTO_INCREMENT'] = 'off';
|
|
$aFieldsClases[$i]['FLD_DESCRIPTION'] = '';
|
|
$aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ;
|
|
$aFieldsClases[$i]['FLD_SIZE'] = 255;
|
|
|
|
foreach ($_POST['form']['FIELDS'] as $sField) {
|
|
$aField = explode('-', $sField);
|
|
$i++;
|
|
$aFieldsClases[$i]['FLD_NAME'] = $aField[0];
|
|
$aFieldsClases[$i]['FLD_NULL'] = 'off';
|
|
$aFieldsClases[$i]['FLD_KEY'] = 'off';
|
|
$aFieldsClases[$i]['FLD_AUTO_INCREMENT'] = 'off';
|
|
$aFieldsClases[$i]['FLD_DESCRIPTION'] = '';
|
|
|
|
switch ($aField[1]) {
|
|
case 'currency':
|
|
case 'percentage':
|
|
$sType = 'number';
|
|
$aFieldsClases[$i]['FLD_TYPE'] = 'FLOAT' ;
|
|
$aFieldsClases[$i]['FLD_SIZE'] = 255;
|
|
break;
|
|
case 'text':
|
|
case 'password':
|
|
case 'dropdown':
|
|
case 'yesno':
|
|
case 'checkbox':
|
|
case 'radiogroup':
|
|
case 'hidden':
|
|
case "link":
|
|
$sType = 'char';
|
|
$aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ;
|
|
$aFieldsClases[$i]['FLD_SIZE'] = 255;
|
|
break;
|
|
case 'textarea':
|
|
$sType = 'text';
|
|
$aFieldsClases[$i]['FLD_TYPE'] = 'TEXT' ;
|
|
$aFieldsClases[$i]['FLD_SIZE'] = '';
|
|
break;
|
|
case 'date':
|
|
$sType = 'date';
|
|
$aFieldsClases[$i]['FLD_TYPE'] = 'DATE' ;
|
|
$aFieldsClases[$i]['FLD_SIZE'] = '';
|
|
break;
|
|
default:
|
|
$sType = 'char';
|
|
$aFieldsClases[$i]['FLD_TYPE'] = 'VARCHAR' ;
|
|
$aFieldsClases[$i]['FLD_SIZE'] = 255;
|
|
break;
|
|
}
|
|
|
|
$oReportVar->create(array('REP_TAB_UID' => $_POST['form']['REP_TAB_UID'],
|
|
'PRO_UID' => $_POST['form']['PRO_UID'],
|
|
'REP_VAR_NAME' => $aField[0],
|
|
'REP_VAR_TYPE' => $sType));
|
|
$aFields[] = array('sFieldName' => $aField[0], 'sType' => $sType);
|
|
}
|
|
|
|
$_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'];
|
|
|
|
//clases
|
|
} else {
|
|
$oReportTables = new ReportTables();
|
|
if ($sRepTabUid != "") {
|
|
$oReportTables->deleteReportTable($sRepTabUid);
|
|
}
|
|
$sRepTabUid = "";
|
|
}
|
|
|
|
$oCaseConsolidated = CaseConsolidatedCorePeer::retrieveByPK($sTasUid);
|
|
|
|
if (!(is_object($oCaseConsolidated)) || get_class($oCaseConsolidated) != 'CaseConsolidated') {
|
|
$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);
|
|
}
|
|
|
|
if ($sStatus == '1') {
|
|
$oCaseConsolidated->setConStatus('ACTIVE');
|
|
} else {
|
|
$oCaseConsolidated->setConStatus('INACTIVE');
|
|
}
|
|
|
|
$oCaseConsolidated->setDynUid($sDynUid);
|
|
$oCaseConsolidated->setRepTabUid($sRepTabUid);
|
|
$oCaseConsolidated->save();
|
|
|
|
$sClassName = $tableName;//'__' . $sTasUid;
|
|
|
|
if ($sStatus == '1') {
|
|
//$oAdditionalTables->createPropelClasses($sTableName, $sClassName, $aFields, $sAddTabUid)
|
|
//require_once 'classes/model/AdditionalTables.php';
|
|
//$oAdditionalTables = new AdditionalTables();
|
|
$oAdditionalTables = new AdditionalTables();//AdditionalTablesConsolidated
|
|
|
|
$oAdditionalTables->createPropelClasses($tableName, $sClassName, $aFieldsClases, $sTasUid);
|
|
} else {
|
|
$sPath = PATH_DB . config("system.workspace") . PATH_SEP . 'classes' . PATH_SEP;
|
|
@unlink($sPath . $sClassName . '.php');
|
|
@unlink($sPath . $sClassName . 'Peer.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 . 'Peer.php');
|
|
}
|
|
|
|
return ($sRepTabUid);
|
|
}
|
|
}
|
|
|
|
$o = new ajax_con($_SERVER["REQUEST_URI"], $_POST);
|
|
|