Files
luos/workflow/engine/methods/cases/caseConsolidated.php

273 lines
9.6 KiB
PHP
Raw Normal View History

2015-03-23 19:02:38 -04:00
<?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) {
2017-08-11 15:49:39 -04:00
$pmDyna = new PmDynaform(array());
2015-03-23 19:02:38 -04:00
$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 {
2017-10-10 12:33:25 -04:00
$sPath = PATH_DB . config("system.workspace") . PATH_SEP . 'classes' . PATH_SEP;
2015-03-23 19:02:38 -04:00
@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');
}