273 lines
9.6 KiB
PHP
273 lines
9.6 KiB
PHP
<?php
|
|
|
|
$sTasUid = $_REQUEST['tas_uid'];
|
|
$sDynUid = $_REQUEST['dyn_uid'];
|
|
$sStatus = $_REQUEST['status'];
|
|
$sProUid = $_REQUEST['pro_uid'];
|
|
$sRepTabUid = $_REQUEST['rep_uid'];
|
|
$tableName = $_REQUEST['table_name'];
|
|
$title = $_REQUEST['title'];
|
|
$swOverwrite = $_REQUEST['overwrite'];
|
|
$isBPMN = $_REQUEST['isBPMN'];
|
|
|
|
if ($sStatus == "1" && $sDynUid != "") {
|
|
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();
|
|
}
|
|
}
|
|
|
|
if ($isBPMN) {
|
|
$_POST['form']['PRO_UID'] = $sProUid;
|
|
$_POST['form']['REP_TAB_UID'] = $sRepTabUid;
|
|
$_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;
|
|
} else {
|
|
$_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']);
|
|
|
|
$oReportVar = new ReportVar();
|
|
$oReportTables = new ReportTables();
|
|
$oReportTables->deleteAllReportVars($_POST['form']['REP_TAB_UID']);
|
|
|
|
$aFields = array();
|
|
|
|
if ($isBPMN) {
|
|
|
|
$pmDyna = new PmDynaform(array());
|
|
$pmDyna->fields["CURRENT_DYNAFORM"] = $sDynUid;
|
|
$dataDyna = $pmDyna->getDynaform();
|
|
$json = G::json_decode($dataDyna["DYN_CONTENT"]);
|
|
$data = $pmDyna->jsonr($json);
|
|
G::pr($data); die;
|
|
} else {
|
|
$aAux = explode('-', $_POST['form']['REP_TAB_GRID']);
|
|
global $G_FORM;
|
|
|
|
require_once "classes/class.formBatchRouting.php";
|
|
|
|
$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 = "";
|
|
}
|
|
|
|
require_once ("classes/model/CaseConsolidatedPeer.php");
|
|
require_once ("classes/model/CaseConsolidated.php");
|
|
|
|
$oCaseConsolidated = CaseConsolidatedPeer::retrieveByPK($sTasUid);
|
|
|
|
if (!(is_object($oCaseConsolidated)) || get_class($oCaseConsolidated) != 'CaseConsolidated') {
|
|
$oCaseConsolidated = new CaseConsolidated();
|
|
$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');
|
|
}
|