$_SESSION['TRIGGER_DEBUG']['TRIGGERS_NAMES'] = $oCase->getTriggerNames($triggers); $_SESSION['TRIGGER_DEBUG']['TRIGGERS_VALUES'] = $triggers; } if ($_SESSION['TRIGGER_DEBUG']['NUM_TRIGGERS'] != 0) { //Execute after triggers - Start $Fields['APP_DATA'] = $oCase->ExecuteTriggers($_SESSION['TASK'], 'DYNAFORM', $_GET['UID'], 'AFTER', $Fields['APP_DATA']); //Execute after triggers - End } //save data in PM Tables if necessary $newValues = array(); foreach ($_POST['form'] as $sField => $sAux) { if (isset($oForm->fields[$sField]->pmconnection) && isset($oForm->fields[$sField]->pmfield)) { if ($oForm->fields[$sField]->pmconnection != '' && $oForm->fields[$sField]->pmfield != '') { if (isset($oForm->fields[$oForm->fields[$sField]->pmconnection])) { require_once PATH_CORE . 'classes' . PATH_SEP . 'model' . PATH_SEP . 'AdditionalTables.php'; $oAdditionalTables = new AdditionalTables(); try { $aData = $oAdditionalTables->load($oForm->fields[$oForm->fields[$sField]->pmconnection]->pmtable, true); } catch (Exception $oError) { $aData = array('FIELDS' => array()); } $aKeys = array(); $aAux = explode('|', $oForm->fields[$oForm->fields[$sField]->pmconnection]->keys); $i = 0; $aValues = array(); foreach ($aData['FIELDS'] as $aField) { if ($aField['FLD_KEY'] == '1') { $aKeys[$aField['FLD_NAME']] = isset($aAux[$i]) ? G::replaceDataField($aAux[$i], $Fields['APP_DATA']) : ''; $i++; } if ($aField['FLD_NAME'] == $oForm->fields[$sField]->pmfield) {
<?php require_once 'classes/model/AdditionalTables.php'; $oAdditionalTables = new AdditionalTables(); $aData = $oAdditionalTables->load($_POST['ADD_TABLE'], true); $addTabName = $aData['ADD_TAB_NAME']; $c = 1; foreach ($aData['FIELDS'] as $iRow => $aRow) { if ($aRow['FLD_KEY'] == 1) { $aRow['PRO_VARIABLE'] = ''; $aFields['FIELDS'][$c++] = $aRow; } } $aFields['DYN_UID'] = $_POST['DYN_UID']; $aFields['ADD_TABLE'] = $_POST['ADD_TABLE']; $aFields['PRO_UID'] = $_POST['PRO_UID']; $aFields['DYN_TITLE'] = $_POST['DYN_TITLE']; $aFields['DYN_TYPE'] = $_POST['DYN_TYPE']; $aFields['DYN_DESCRIPTION'] = $_POST['DYN_DESCRIPTION']; $aFields['VALIDATION_MESSAGE'] = G::LoadTranslation('ID_FILL_PRIMARY_KEYS'); G::LoadClass('xmlfield_InputPM'); $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent('xmlform', 'xmlform', 'dynaforms/dynaforms_AssignVariables', '', $aFields, SYS_URI . 'dynaforms/dynaforms_Save'); G::RenderPage('publish-raw', 'raw');
/** * get a value from a PM Table * * @param <Object> $oOwner * @return <String> $sValue */ public function getPMTableValue($oOwner) { $sValue = ''; if (isset($oOwner->fields[$this->pmconnection])) { if (defined('PATH_CORE')) { if (file_exists(PATH_CORE . 'classes' . PATH_SEP . 'model' . PATH_SEP . 'AdditionalTables.php')) { require_once PATH_CORE . 'classes' . PATH_SEP . 'model' . PATH_SEP . 'AdditionalTables.php'; $oAdditionalTables = new AdditionalTables(); try { $aData = $oAdditionalTables->load($oOwner->fields[$this->pmconnection]->pmtable, true); } catch (Exception $oError) { $aData = array('FIELDS' => array()); } $aKeys = array(); $aValues = explode('|', $oOwner->fields[$this->pmconnection]->keys); $i = 0; foreach ($aData['FIELDS'] as $aField) { if ($aField['FLD_KEY'] == '1') { // note added by gustavo cruz gustavo[at]colosa[dot]com // this additional [if] checks if a case variable has been set // in the keys attribute, so it can be parsed and replaced for // their respective value. if (preg_match("/@#/", $aValues[$i])) { // check if a case are running in order to prevent that preview is // erroneous rendered. if (isset($_SESSION['APPLICATION'])) { G::LoadClass('case'); $oApp = new Cases(); if ($oApp->loadCase($_SESSION['APPLICATION']) != null) { $aFields = $oApp->loadCase($_SESSION['APPLICATION']); $formVariable = substr($aValues[$i], 2); if (isset($aFields['APP_DATA'][$formVariable])) { $formVariableValue = $aFields['APP_DATA'][$formVariable]; $aKeys[$aField['FLD_NAME']] = isset($formVariableValue) ? G::replaceDataField($formVariableValue, $oOwner->values) : ''; } else { $aKeys[$aField['FLD_NAME']] = ''; } } else { $aKeys[$aField['FLD_NAME']] = ''; } } else { $aKeys[$aField['FLD_NAME']] = ''; } } else { $aKeys[$aField['FLD_NAME']] = isset($aValues[$i]) ? G::replaceDataField($aValues[$i], $oOwner->values) : ''; } $i++; } } try { $aData = $oAdditionalTables->getDataTable($oOwner->fields[$this->pmconnection]->pmtable, $aKeys); } catch (Exception $oError) { $aData = array(); } if (isset($aData[$this->pmfield])) { $sValue = $aData[$this->pmfield]; } } } } return $sValue; }
if (isset($_GET['stepid'])) { $aStepTypeId = explode('|', $_GET['stepid']); $_SESSION['stepUID'] = $_GET['stepid']; //$aStepTypeId = explode('-','2517180104cd42c25cc39e4071099227-BEFORE'); $sStep = $aStepTypeId[0]; $sType = $aStepTypeId[1]; } $start = isset($_POST['start']) ? $_POST['start'] : 0; $limit = isset($_POST['limit']) ? $_POST['limit'] : ''; switch ($_GET['action']) { case 'getDynaformList': $result = $oProcessMap->getExtDynaformsList($start, $limit, $_GET['pid']); print G::json_encode($result); break; case 'getPMTableDynaform': $oAdditionalTables = new AdditionalTables(); $aData = $oAdditionalTables->load($_GET['tabId'], true); $addTabName = $aData['ADD_TAB_NAME']; foreach ($aData['FIELDS'] as $iRow => $aRow) { if ($aRow['FLD_KEY'] == 1) { $rows[] = $aRow; } } $result['totalCount'] = count($rows); $result['data'] = $rows; print G::json_encode($result); break; case 'getAdditionalTables': $rows = $oProcessMap->getExtAdditionalTablesList(); $result['totalCount'] = count($rows); $result['data'] = $rows;
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 . SYS_SYS . 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'); }
public function con_save_properties($sTasUid, $sDynUid, $sStatus, $sProUid, $sRepTabUid, $tableName, $title, $swOverwrite) { G::LoadClass("reportTables"); 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(); G::LoadClass("reportTables"); $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::LoadClass("formBatchRouting"); $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 = 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 . SYS_SYS . 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); }
G::LoadClass("BasePeer"); G::LoadClass("configuration"); //require_once ("classes/model/Fields.php"); //require_once ("classes/model/AppCacheView.php"); //require_once ("classes/model/Process.php"); //require_once ("classes/model/Users.php"); $oHeadPublisher =& headPublisher::getSingleton(); // oHeadPublisher->setExtSkin( 'xtheme-blue'); //get the configuration for this action $conf = new Configurations(); try { // the setup for search is the same as the Sent (participated) $confCasesList = $conf->getConfiguration('casesList', $action == 'search' || $action == 'simple_search' ? 'search' : $action); $table = null; if (isset($confCasesList['PMTable'])) { $aditionalTable = new AdditionalTables(); $table = $aditionalTable->load($confCasesList['PMTable']); } $confCasesList = $table != null ? $confCasesList : array(); $generalConfCasesList = $conf->getConfiguration('ENVIRONMENT_SETTINGS', ''); } catch (Exception $e) { $confCasesList = array(); $generalConfCasesList = array(); } $caseListBuilder = count($confCasesList) ? 1 : 0; if ($caseListBuilder) { $urlProxy = 'proxyCasesList'; } // reassign header configuration $confReassignList = getReassignList(); // evaluates an action and the configuration for the list that will be rendered
public function _getDynafields($proUid, $type = 'xmlform', $start = null, $limit = null, $filter = null) { $cache = 1; if (!isset($_SESSION['_cache_pmtables']) || isset($_SESSION['_cache_pmtables']) && $_SESSION['_cache_pmtables']['pro_uid'] != $proUid || isset($_SESSION['_cache_pmtables']) && $_SESSION['_cache_pmtables']['dyn_uid'] != $this->dynUid) { require_once 'classes/model/Dynaform.php'; $cache = 0; $fields = array(); $fieldsNames = array(); $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(DynaformPeer::DYN_FILENAME); $oCriteria->add(DynaformPeer::PRO_UID, $proUid); $oCriteria->add(DynaformPeer::DYN_TYPE, $type); if (isset($this->dynUid)) { $oCriteria->add(DynaformPeer::DYN_UID, $this->dynUid); } $oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $excludeFieldsList = array('title', 'subtitle', 'link', 'file', 'button', 'reset', 'submit', 'listbox', 'checkgroup', 'grid', 'javascript', ''); $labelFieldsTypeList = array('dropdown', 'radiogroup'); G::loadSystem('dynaformhandler'); $index = 0; while ($aRow = $oDataset->getRow()) { if (file_exists(PATH_DYNAFORM . PATH_SEP . $aRow['DYN_FILENAME'] . '.xml')) { $dynaformHandler = new dynaformHandler(PATH_DYNAFORM . $aRow['DYN_FILENAME'] . '.xml'); $nodeFieldsList = $dynaformHandler->getFields(); foreach ($nodeFieldsList as $node) { $arrayNode = $dynaformHandler->getArray($node); $fieldName = $arrayNode['__nodeName__']; $fieldType = isset($arrayNode['type']) ? $arrayNode['type'] : ''; $fieldValidate = isset($arrayNode['validate']) ? $arrayNode['validate'] : ''; if (!in_array($fieldType, $excludeFieldsList) && !in_array($fieldName, $fieldsNames)) { $fields[] = array('FIELD_UID' => $fieldName . '-' . $fieldType, 'FIELD_NAME' => $fieldName, 'FIELD_VALIDATE' => $fieldValidate, '_index' => $index++, '_isset' => true); $fieldsNames[] = $fieldName; if (in_array($fieldType, $labelFieldsTypeList) && !in_array($fieldName . '_label', $fieldsNames)) { $fields[] = array('FIELD_UID' => $fieldName . '_label' . '-' . $fieldType, 'FIELD_NAME' => $fieldName . '_label', 'FIELD_VALIDATE' => $fieldValidate, '_index' => $index++, '_isset' => true); $fieldsNames[] = $fieldName; } } } } $oDataset->next(); } sort($fields); // if is a editing $fieldsEdit = array(); if (isset($_SESSION['ADD_TAB_UID'])) { require_once 'classes/model/AdditionalTables.php'; $additionalTables = new AdditionalTables(); $table = $additionalTables->load($_SESSION['ADD_TAB_UID'], true); foreach ($table['FIELDS'] as $i => $field) { array_push($fieldsEdit, $field['FLD_DYN_NAME']); } } //end editing $indexes = array(); foreach ($fields as $i => $field) { $fields[$i]['_index'] = $i; $indexes[$field['FIELD_NAME']] = $i; if (in_array($field['FIELD_NAME'], $fieldsEdit)) { $fields[$i]['_isset'] = false; } } $_SESSION['_cache_pmtables']['pro_uid'] = $proUid; $_SESSION['_cache_pmtables']['dyn_uid'] = $this->dynUid; $_SESSION['_cache_pmtables']['rows'] = $fields; $_SESSION['_cache_pmtables']['count'] = count($fields); $_SESSION['_cache_pmtables']['indexes'] = $indexes; } //end reload $fields = array(); $tmp = array(); foreach ($_SESSION['_cache_pmtables']['rows'] as $i => $row) { if (isset($filter) && $filter != '') { if ($row['_isset'] && stripos($row['FIELD_NAME'], $filter) !== false) { $tmp[] = $row; } } else { if ($row['_isset']) { $tmp[] = $row; } } } $fields = array_slice($tmp, $start, $limit); return array('cache' => $cache, 'count' => count($tmp), 'rows' => $fields); }
/** * show pmTable data list * * @param string $httpData->id */ public function data($httpData) { require_once 'classes/model/AdditionalTables.php'; $additionalTables = new AdditionalTables(); $tableDef = $additionalTables->load($httpData->id, true); $this->includeExtJS('pmTables/data', $this->debug); $this->setJSVar('tableDef', $tableDef); //g::pr($tableDef['FIELDS']); G::RenderPage('publish', 'extJs'); }
$filter = new InputFilter(); $_POST = $filter->xssFilterHard($_POST); require_once "classes/model/AdditionalTables.php"; require_once "classes/model/Fields.php"; // passing the parameters $pmTableName = isset($_POST['tableName']) ? $_POST['tableName'] : 'contenders'; $pmTableFields = isset($_POST['tableFields']) ? G::json_decode($_POST['tableFields']) : array(); // default parameters //$pmTableName = 'Sender'; $pmTableFields = array(array('FLD_NAME' => 'APP_UID'), array('FLD_NAME' => 'CON_NAME'), array('FLD_NAME' => 'CON_ADDR'), array('FLD_NAME' => '_cedula')); // setting the data to assemble the table $aData = array(); $aData['ADD_TAB_NAME'] = $pmTableName; // creating the objects to create the table and records $oFields = new Fields(); $oAdditionalTables = new AdditionalTables(); $sAddTabUid = $oAdditionalTables->create($aData, $pmTableFields); foreach ($pmTableFields as $iRow => $aRow) { $pmTableFields[$iRow]['FLD_NAME'] = strtoupper($aRow['FLD_NAME']); $pmTableFields[$iRow]['FLD_DESCRIPTION'] = isset($aRow['FLD_DESCRIPTION']) ? $aRow['FLD_DESCRIPTION'] : $aRow['FLD_NAME']; $pmTableFields[$iRow]['FLD_TYPE'] = isset($aRow['FLD_TYPE']) ? $aRow['FLD_TYPE'] : 'VARCHAR'; $pmTableFields[$iRow]['FLD_SIZE'] = isset($aRow['FLD_SIZE']) ? $aRow['FLD_SIZE'] : '32'; $pmTableFields[$iRow]['FLD_NULL'] = isset($aRow['FLD_NULL']) ? $aRow['FLD_NULL'] : 'off'; $pmTableFields[$iRow]['FLD_AUTO_INCREMENT'] = isset($aRow['FLD_AUTO_INCREMENT']) ? $aRow['FLD_AUTO_INCREMENT'] : 'off'; $pmTableFields[$iRow]['FLD_KEY'] = isset($aRow['FLD_KEY']) ? $aRow['FLD_KEY'] : 'off'; $pmTableFields[$iRow]['FLD_FOREIGN_KEY'] = isset($aRow['FLD_FOREIGN_KEY']) ? $aRow['FLD_FOREIGN_KEY'] : 'off'; $pmTableFields[$iRow]['FLD_FOREIGN_KEY_TABLE'] = isset($aRow['FLD_FOREIGN_KEY_TABLE']) ? $aRow['FLD_FOREIGN_KEY_TABLE'] : ''; } foreach ($pmTableFields as $iRow => $aRow) { $oFields->create(array('FLD_INDEX' => $iRow + 1, 'ADD_TAB_UID' => $sAddTabUid, 'FLD_NAME' => $aRow['FLD_NAME'], 'FLD_DESCRIPTION' => isset($aRow['FLD_DESCRIPTION']) ? $aRow['FLD_DESCRIPTION'] : '', 'FLD_TYPE' => isset($aRow['FLD_TYPE']) ? $aRow['FLD_TYPE'] : 'VARCHAR', 'FLD_SIZE' => isset($aRow['FLD_SIZE']) ? $aRow['FLD_SIZE'] : '32', 'FLD_NULL' => $aRow['FLD_NULL'] == 'on' ? 1 : 0, 'FLD_AUTO_INCREMENT' => $aRow['FLD_AUTO_INCREMENT'] == 'on' ? 1 : 0, 'FLD_KEY' => $aRow['FLD_KEY'] == 'on' ? 1 : 0, 'FLD_FOREIGN_KEY' => $aRow['FLD_FOREIGN_KEY'] == 'on' ? 1 : 0, 'FLD_FOREIGN_KEY_TABLE' => isset($aRow['FLD_FOREIGN_KEY_TABLE']) ? $aRow['FLD_FOREIGN_KEY_TABLE'] : '')); $aFields[] = array('sType' => isset($aRow['FLD_TYPE']) ? $aRow['FLD_TYPE'] : 'VARCHAR', 'iSize' => isset($aRow['FLD_SIZE']) ? $aRow['FLD_SIZE'] : '32', 'sFieldName' => $aRow['FLD_NAME'], 'bNull' => $aRow['FLD_NULL'] == 'on' ? 1 : 0, 'bAI' => $aRow['FLD_AUTO_INCREMENT'] == 'on' ? 1 : 0, 'bPrimaryKey' => $aRow['FLD_KEY'] == 'on' ? 1 : 0);
public function getAllData($sUID, $start = null, $limit = null, $keyOrderUppercase = true) { $addTab = new AdditionalTables(); $aData = $addTab->load($sUID, true); if (!isset($_SESSION['PROCESS'])) { $_SESSION["PROCESS"] = $aData['PRO_UID']; } $aData['DBS_UID'] = $aData['DBS_UID'] ? $aData['DBS_UID'] : 'workflow'; $sPath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP; $sClassName = $aData['ADD_TAB_CLASS_NAME'] != '' ? $aData['ADD_TAB_CLASS_NAME'] : $this->getPHPName($aData['ADD_TAB_NAME']); if (file_exists($sPath . $sClassName . '.php')) { require_once $sPath . $sClassName . '.php'; } else { return null; } $sClassPeerName = $sClassName . 'Peer'; $con = Propel::getConnection($aData['DBS_UID']); $oCriteria = new Criteria($aData['DBS_UID']); //eval('$oCriteria->addSelectColumn("\'1\' AS DUMMY");'); if ($keyOrderUppercase == true) { foreach ($aData['FIELDS'] as $aField) { eval('$oCriteria->addSelectColumn(' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ');'); if ($aField['FLD_KEY'] == '1') { eval('$oCriteria->addAscendingOrderByColumn(' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ');'); } } } $oCriteriaCount = clone $oCriteria; //$count = $sClassPeerName::doCount($oCriteria); eval('$count = ' . $sClassPeerName . '::doCount($oCriteria);'); if (isset($limit)) { $oCriteria->setLimit($limit); } if (isset($start)) { $oCriteria->setOffset($start); } //$rs = $sClassPeerName::doSelectRS($oCriteria); eval('$rs = ' . $sClassPeerName . '::doSelectRS($oCriteria);'); $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rows = array(); while ($rs->next()) { $rows[] = $rs->getRow(); } return array('rows' => $rows, 'count' => $count); }
public function getAll( $userUid, $start = null, $limit = null, $action = null, $filter = null, $search = null, $process = null, $status = null, $type = null, $dateFrom = null, $dateTo = null, $callback = null, $dir = null, $sort = "APP_CACHE_VIEW.APP_NUMBER", $category = null, $configuration = true, $paged = true ) { $callback = isset($callback)? $callback : "stcCallback1001"; $dir = isset($dir)? $dir : "DESC"; if (isset($sort)) { G::LoadClass('phpSqlParser'); $parser = new PHPSQLParser($sort); $sort = $parser->parsed; $sort = $sort[''][0]; } $sort = isset($sort)? $sort : ""; $start = isset($start)? $start : "0"; $limit = isset($limit)? $limit : "25"; $filter = isset($filter)? $filter : ""; $search = isset($search)? $search : ""; $process = isset($process)? $process : ""; $category = isset($category)? $category : ""; $status = isset($status)? $status : ""; $action = isset($action)? $action : "todo"; $type = isset($type)? $type : "extjs"; $dateFrom = isset($dateFrom)? $dateFrom : ""; $dateTo = isset($dateTo)? $dateTo : ""; G::LoadClass("BasePeer"); G::LoadClass("configuration"); //require_once ("classes/model/AppCacheView.php"); //require_once ("classes/model/AppDelegation.php"); //require_once ("classes/model/AdditionalTables.php"); //require_once ("classes/model/AppDelay.php"); //require_once ("classes/model/Fields.php"); //require_once ("classes/model/Users.php"); //require_once ("classes/model/Process.php"); $oAppCache = new AppCacheView(); if ($configuration == true) { //get data configuration $conf = new Configurations(); $confCasesList = $conf->getConfiguration("casesList", ($action == "search" || $action == "simple_search")? "search" : $action); $oAppCache->confCasesList = $confCasesList; } $delimiter = DBAdapter::getStringDelimiter(); // get the action based list switch ($action) { case "draft": $Criteria = $oAppCache->getDraftListCriteria($userUid); $CriteriaCount = $oAppCache->getDraftCountCriteria($userUid); break; case "sent": $Criteria = $oAppCache->getSentListCriteria($userUid); $CriteriaCount = $oAppCache->getSentCountCriteria($userUid); if (!empty($status)) { $Criteria->add(AppCacheViewPeer::APP_STATUS, $status); $CriteriaCount->add(AppCacheViewPeer::APP_STATUS, $status); } break; case "selfservice": case "unassigned": //$userUid can't be empty or null $Criteria = $oAppCache->getUnassignedListCriteria($userUid); $CriteriaCount = $oAppCache->getUnassignedCountCriteria($userUid); break; case "paused": $Criteria = $oAppCache->getPausedListCriteria($userUid); $CriteriaCount = $oAppCache->getPausedCountCriteria($userUid); break; case "completed": $Criteria = $oAppCache->getCompletedListCriteria($userUid); $CriteriaCount = $oAppCache->getCompletedCountCriteria($userUid); break; case "cancelled": $Criteria = $oAppCache->getCancelledListCriteria($userUid); $CriteriaCount = $oAppCache->getCancelledCountCriteria($userUid); break; case "search": //$Criteria = $oAppCache->getSearchListCriteria(); //$CriteriaCount = $oAppCache->getSearchCountCriteria(); switch ($status) { case "TO_DO": $Criteria = $oAppCache->getToDoListCriteria($userUid); $CriteriaCount = $oAppCache->getToDoCountCriteria($userUid); break; case "DRAFT": $Criteria = $oAppCache->getDraftListCriteria($userUid); $CriteriaCount = $oAppCache->getDraftCountCriteria($userUid); break; case "PAUSED": $Criteria = $oAppCache->getPausedListCriteria($userUid); $CriteriaCount = $oAppCache->getPausedCountCriteria($userUid); break; case "CANCELLED": $Criteria = $oAppCache->getCancelledListCriteria($userUid); $CriteriaCount = $oAppCache->getCancelledCountCriteria($userUid); break; case "COMPLETED": $Criteria = $oAppCache->getCompletedListCriteria($userUid); $CriteriaCount = $oAppCache->getCompletedCountCriteria($userUid); $Criteria->add (AppCacheViewPeer::DEL_LAST_INDEX,"1"); $CriteriaCount->add (AppCacheViewPeer::DEL_LAST_INDEX,"1"); break; default: //All status $Criteria = $oAppCache->getAllCasesListCriteria2($userUid); $CriteriaCount = $oAppCache->getAllCasesCountCriteria2($userUid); break; } break; case "simple_search": $Criteria = $oAppCache->getSimpleSearchListCriteria(); $CriteriaCount = $oAppCache->getSimpleSearchCountCriteria(); break; case "to_revise": $Criteria = $oAppCache->getToReviseListCriteria($userUid); $CriteriaCount = $oAppCache->getToReviseCountCriteria($userUid); break; case "to_reassign": $Criteria = $oAppCache->getToReassignListCriteria($userUid); $CriteriaCount = $oAppCache->getToReassignCountCriteria($userUid); break; case "all": $Criteria = $oAppCache->getAllCasesListCriteria($userUid); $CriteriaCount = $oAppCache->getAllCasesCountCriteria($userUid); break; case "gral": //General criteria probably will be deprecated $Criteria = $oAppCache->getGeneralListCriteria(); $CriteriaCount = $oAppCache->getGeneralCountCriteria(); break; case "todo": $Criteria = $oAppCache->getToDoListCriteria($userUid); $CriteriaCount = $oAppCache->getToDoCountCriteria($userUid); break; default: //All status $Criteria = $oAppCache->getAllCasesListCriteria2($userUid); $CriteriaCount = $oAppCache->getAllCasesCountCriteria2($userUid); break; } $arrayTaskTypeToExclude = array("WEBENTRYEVENT", "END-MESSAGE-EVENT", "START-MESSAGE-EVENT", "INTERMEDIATE-THROW-MESSAGE-EVENT", "INTERMEDIATE-CATCH-MESSAGE-EVENT"); $Criteria->addJoin(AppCacheViewPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN); $Criteria->add(TaskPeer::TAS_TYPE, $arrayTaskTypeToExclude, Criteria::NOT_IN); $CriteriaCount->addJoin(AppCacheViewPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN); $CriteriaCount->add(TaskPeer::TAS_TYPE, $arrayTaskTypeToExclude, Criteria::NOT_IN); $Criteria->addAlias( 'CU', 'USERS' ); $Criteria->addJoin( AppCacheViewPeer::USR_UID, 'CU.USR_UID', Criteria::LEFT_JOIN ); $Criteria->addAsColumn( 'USR_UID', 'CU.USR_UID' ); $Criteria->addAsColumn( 'USR_FIRSTNAME', 'CU.USR_FIRSTNAME' ); $Criteria->addAsColumn( 'USR_LASTNAME', 'CU.USR_LASTNAME' ); $Criteria->addAsColumn( 'USR_USERNAME', 'CU.USR_USERNAME' ); $CriteriaCount->addAlias( 'CU', 'USERS' ); $CriteriaCount->addJoin( AppCacheViewPeer::USR_UID, 'CU.USR_UID', Criteria::LEFT_JOIN ); $CriteriaCount->addAsColumn( 'USR_UID', 'CU.USR_UID' ); $CriteriaCount->addAsColumn( 'USR_FIRSTNAME', 'CU.USR_FIRSTNAME' ); $CriteriaCount->addAsColumn( 'USR_LASTNAME', 'CU.USR_LASTNAME' ); $CriteriaCount->addAsColumn( 'USR_USERNAME', 'CU.USR_USERNAME' ); //Current delegation $appdelcrTableName = AppCacheViewPeer::TABLE_NAME; $appdelcrAppTasTitle = "APPDELCR.APP_TAS_TITLE"; $appdelcrAppTasTitleCount = $appdelcrAppTasTitle; switch ($action) { case "sent": $appdelcrTableName = AppDelegationPeer::TABLE_NAME; $appdelcrAppTasTitle = "(SELECT CON_VALUE FROM CONTENT WHERE CON_ID = APPDELCR.TAS_UID AND CON_LANG = " . $delimiter . SYS_LANG . $delimiter . " AND CON_CATEGORY = " . $delimiter . "TAS_TITLE" . $delimiter . ")"; $appdelcrAppTasTitleCount = "APPDELCR.TAS_UID"; break; case "to_reassign": $appdelcrAppTasTitle = "APP_CACHE_VIEW.APP_TAS_TITLE"; $appdelcrAppTasTitleCount = $appdelcrAppTasTitle; break; } $Criteria->addAsColumn("APPDELCR_APP_TAS_TITLE", $appdelcrAppTasTitle); $CriteriaCount->addAsColumn("APPDELCR_APP_TAS_TITLE", $appdelcrAppTasTitleCount); $Criteria->addAsColumn("USRCR_USR_UID", "USRCR.USR_UID"); $Criteria->addAsColumn("USRCR_USR_FIRSTNAME", "USRCR.USR_FIRSTNAME"); $Criteria->addAsColumn("USRCR_USR_LASTNAME", "USRCR.USR_LASTNAME"); $Criteria->addAsColumn("USRCR_USR_USERNAME", "USRCR.USR_USERNAME"); $CriteriaCount->addAsColumn("USRCR_USR_UID", "USRCR.USR_UID"); $CriteriaCount->addAsColumn("USRCR_USR_FIRSTNAME", "USRCR.USR_FIRSTNAME"); $CriteriaCount->addAsColumn("USRCR_USR_LASTNAME", "USRCR.USR_LASTNAME"); $CriteriaCount->addAsColumn("USRCR_USR_USERNAME", "USRCR.USR_USERNAME"); $Criteria->addAlias("APPDELCR", $appdelcrTableName); $Criteria->addAlias("USRCR", UsersPeer::TABLE_NAME); $CriteriaCount->addAlias("APPDELCR", $appdelcrTableName); $CriteriaCount->addAlias("USRCR", UsersPeer::TABLE_NAME); $arrayCondition = array(); $arrayCondition[] = array(AppCacheViewPeer::APP_UID, "APPDELCR.APP_UID"); $arrayCondition[] = array("APPDELCR.DEL_LAST_INDEX", 1); $Criteria->addJoinMC($arrayCondition, Criteria::LEFT_JOIN); $CriteriaCount->addJoinMC($arrayCondition, Criteria::LEFT_JOIN); $arrayCondition = array(); $arrayCondition[] = array("APPDELCR.USR_UID", "USRCR.USR_UID"); $Criteria->addJoinMC($arrayCondition, Criteria::LEFT_JOIN); $CriteriaCount->addJoinMC($arrayCondition, Criteria::LEFT_JOIN); //Previous user if (($action == "todo" || $action == "selfservice" || $action == "unassigned" || $action == "paused" || $action == "to_revise" || $action == "sent") || ($status == "TO_DO" || $status == "DRAFT" || $status == "PAUSED" || $status == "CANCELLED" || $status == "COMPLETED")) { $Criteria->addAlias( 'PU', 'USERS' ); $Criteria->addJoin( AppCacheViewPeer::PREVIOUS_USR_UID, 'PU.USR_UID', Criteria::LEFT_JOIN ); $Criteria->addAsColumn( 'PREVIOUS_USR_FIRSTNAME', 'PU.USR_FIRSTNAME' ); $Criteria->addAsColumn( 'PREVIOUS_USR_LASTNAME', 'PU.USR_LASTNAME' ); $Criteria->addAsColumn( 'PREVIOUS_USR_USERNAME', 'PU.USR_USERNAME' ); $CriteriaCount->addAlias( 'PU', 'USERS' ); $CriteriaCount->addJoin( AppCacheViewPeer::PREVIOUS_USR_UID, 'PU.USR_UID', Criteria::LEFT_JOIN ); $CriteriaCount->addAsColumn( 'PREVIOUS_USR_FIRSTNAME', 'PU.USR_FIRSTNAME' ); $CriteriaCount->addAsColumn( 'PREVIOUS_USR_LASTNAME', 'PU.USR_LASTNAME' ); $CriteriaCount->addAsColumn( 'PREVIOUS_USR_USERNAME', 'PU.USR_USERNAME' ); } /* if (! is_array( $confCasesList )) { $rows = $this->getDefaultFields( $action ); $result = $this->genericJsonResponse( '', array (), $rows, 20, '' ); //$conf->saveObject($result,'casesList',$action,'','',''); } */ //Add the process filter if (!empty($process)) { $Criteria->add(AppCacheViewPeer::PRO_UID, $process, Criteria::EQUAL); $CriteriaCount->add(AppCacheViewPeer::PRO_UID, $process, Criteria::EQUAL); } //Add the category filter if (!empty($category)) { require_once 'classes/model/Process.php'; $Criteria->addAlias("CP", "PROCESS"); $Criteria->add("CP.PRO_CATEGORY", $category, Criteria::EQUAL); $Criteria->addJoin(AppCacheViewPeer::PRO_UID, "CP.PRO_UID", Criteria::LEFT_JOIN); $Criteria->addAsColumn("CATEGORY_UID", "CP.PRO_CATEGORY"); $CriteriaCount->addAlias("CP", "PROCESS"); $CriteriaCount->add("CP.PRO_CATEGORY", $category, Criteria::EQUAL); $CriteriaCount->addJoin(AppCacheViewPeer::PRO_UID, "CP.PRO_UID", Criteria::LEFT_JOIN); $CriteriaCount->addAsColumn("CATEGORY_UID", "CP.PRO_CATEGORY"); } // add the user filter /* if ($user != '') { $Criteria->add( AppCacheViewPeer::USR_UID, $user, Criteria::EQUAL ); $CriteriaCount->add( AppCacheViewPeer::USR_UID, $user, Criteria::EQUAL ); } if ($status != '') { $Criteria->add( AppCacheViewPeer::APP_STATUS, $status, Criteria::EQUAL ); $CriteriaCount->add( AppCacheViewPeer::APP_STATUS, $status, Criteria::EQUAL ); } */ if ($dateFrom != "") { if ($dateTo != "") { if ($dateFrom == $dateTo) { $dateSame = $dateFrom; $dateFrom = $dateSame . " 00:00:00"; $dateTo = $dateSame . " 23:59:59"; } else { $dateFrom = $dateFrom . " 00:00:00"; $dateTo = $dateTo . " 23:59:59"; } $Criteria->add( $Criteria->getNewCriterion( AppCacheViewPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL )->addAnd( $Criteria->getNewCriterion( AppCacheViewPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL ) ) ); $CriteriaCount->add( $CriteriaCount->getNewCriterion( AppCacheViewPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL )->addAnd( $Criteria->getNewCriterion( AppCacheViewPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL ) ) ); } else { $dateFrom = $dateFrom . " 00:00:00"; $Criteria->add( AppCacheViewPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL ); $CriteriaCount->add( AppCacheViewPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL ); } } elseif ($dateTo != "") { $dateTo = $dateTo . " 23:59:59"; $Criteria->add( AppCacheViewPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL ); $CriteriaCount->add( AppCacheViewPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL ); } //add the filter if ($filter != '') { switch ($filter) { case 'read': $Criteria->add( AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNOTNULL ); $CriteriaCount->add( AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNOTNULL ); break; case 'unread': $Criteria->add( AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNULL ); $CriteriaCount->add( AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNULL ); break; case 'started': $Criteria->add( AppCacheViewPeer::DEL_INDEX, 1, Criteria::EQUAL ); $CriteriaCount->add( AppCacheViewPeer::DEL_INDEX, 1, Criteria::EQUAL ); break; case 'completed': $Criteria->add( AppCacheViewPeer::APP_STATUS, 'COMPLETED', Criteria::EQUAL ); $CriteriaCount->add( AppCacheViewPeer::APP_STATUS, 'COMPLETED', Criteria::EQUAL ); break; } } //Add the search filter if ($search != '') { $oTmpCriteria = ''; //If there is PMTable for this case list if (is_array($oAppCache->confCasesList) && count($oAppCache->confCasesList) > 0 && isset($oAppCache->confCasesList["PMTable"]) && trim($oAppCache->confCasesList["PMTable"]) != "") { //Default configuration fields array $defaultFields = $oAppCache->getDefaultFields(); //Getting the table name $additionalTableUid = $oAppCache->confCasesList["PMTable"]; $additionalTable = AdditionalTablesPeer::retrieveByPK($additionalTableUid); $tableName = $additionalTable->getAddTabName(); $additionalTable = new AdditionalTables(); $tableData = $additionalTable->load($additionalTableUid, true); $tableField = array(); foreach ($tableData["FIELDS"] as $arrayField) { $tableField[] = $arrayField["FLD_NAME"]; } $oNewCriteria = new Criteria("workflow"); $sw = 0; foreach ($oAppCache->confCasesList["second"]["data"] as $fieldData) { if (!in_array($fieldData["name"], $defaultFields)) { if (in_array($fieldData["name"], $tableField)) { $fieldName = $tableName . "." . $fieldData["name"]; if ($sw == 0) { $oTmpCriteria = $oNewCriteria->getNewCriterion($fieldName, "%" . $search . "%", Criteria::LIKE); } else { $oTmpCriteria = $oNewCriteria->getNewCriterion($fieldName, "%" . $search . "%", Criteria::LIKE)->addOr($oTmpCriteria); } $sw = 1; } } } //add the default and hidden DEL_INIT_DATE } // the criteria adds new fields if there are defined PM Table Fields in the cases list if ($oTmpCriteria != '') { $Criteria->add( $Criteria->getNewCriterion( AppCacheViewPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE )->addOr( $Criteria->getNewCriterion( AppCacheViewPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE )->addOr( $Criteria->getNewCriterion( AppCacheViewPeer::APP_NUMBER, $search, Criteria::LIKE )->addOr( $oTmpCriteria ) ) ) ); } else { $Criteria->add( $Criteria->getNewCriterion( AppCacheViewPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE )->addOr( $Criteria->getNewCriterion( AppCacheViewPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE )->addOr( $Criteria->getNewCriterion( AppCacheViewPeer::APP_NUMBER, $search, Criteria::LIKE ) ) ) ); } // the count query needs to be the normal criteria query if there are defined PM Table Fields in the cases list if ($oTmpCriteria != '') { $CriteriaCount = $Criteria; } else { $CriteriaCount->add( $CriteriaCount->getNewCriterion( AppCacheViewPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE )->addOr( $CriteriaCount->getNewCriterion( AppCacheViewPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE )->addOr( $CriteriaCount->getNewCriterion( AppCacheViewPeer::APP_NUMBER, $search, Criteria::LIKE ) ) ) ); } } // this is the optimal way or query to render the cases search list // fixing the bug related to the wrong data displayed in the list /* if ($action == 'search') { $oDatasetIndex = AppCacheViewPeer::doSelectRS( $Criteria ); $oDatasetIndex->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDatasetIndex->next(); $maxDelIndexList = array (); // a list of MAX_DEL_INDEXES is required in order to validate the right row while ($aRow = $oDatasetIndex->getRow()) { $maxDelIndexList[] = $aRow['MAX_DEL_INDEX']; $oDatasetIndex->next(); } // adding the validation condition in order to get the right row using the group by sentence $Criteria->add( AppCacheViewPeer::DEL_INDEX, $maxDelIndexList, Criteria::IN ); // //$params = array($maxDelIndexList); } */ //here we count how many records exists for this criteria. //BUT there are some special cases, and if we dont optimize them the server will crash. $doCountAlreadyExecuted = $paged; //case 1. when the SEARCH action is selected and none filter, search criteria is defined, //we need to count using the table APPLICATION, because APP_CACHE_VIEW takes 3 seconds /* if ($action == 'search' && $filter == '' && $search == '' && $process == '' && $status == '' && $dateFrom == '' && $dateTo == '' && $category == '') { $totalCount = $oAppCache->getSearchAllCount(); $doCountAlreadyExecuted = true; } if ($category != '') { $totalCount = $oAppCache->getSearchCountCriteria(); $doCountAlreadyExecuted = true; } */ $tableNameAux = ''; $totalCount = 0; if ($doCountAlreadyExecuted == true) { // in the case of reassign the distinct attribute shows a diferent count result comparing to the // original list //Check also $distinct in the method getListCounters(), this in AppCacheView.php $distinct = true; if ($action != "sent" && (($action == "todo" || $action == "selfservice" || $action == "unassigned" || $action == "to_reassign" || $action == "to_revise") || ($status == "TO_DO"))) { $distinct = false; } // first check if there is a PMTable defined within the list, // the issue that brokes the normal criteria query seems to be fixed if (isset( $oAppCache->confCasesList['PMTable'] ) && ! empty( $oAppCache->confCasesList['PMTable'] )) { // then $oAdditionalTables = AdditionalTablesPeer::retrieveByPK( $oAppCache->confCasesList['PMTable'] ); $tableName = $oAdditionalTables->getAddTabName(); $tableNameAux = $tableName; $tableName = strtolower( $tableName ); $tableNameArray = explode( '_', $tableName ); foreach ($tableNameArray as $item) { $newTableName[] = ucfirst( $item ); } $tableName = implode( '', $newTableName ); // so the pm table class can be invoqued from the pm table model clases if (! class_exists( $tableName )) { require_once (PATH_DB . SYS_SYS . PATH_SEP . "classes" . PATH_SEP . $tableName . ".php"); } } $totalCount = AppCacheViewPeer::doCount($CriteriaCount, $distinct); } //Add sortable options $sortBk = $sort; if ($sortBk != "") { $sort = ""; //Current delegation (*) if (($action == "sent" || $action == "search" || $action == "simple_search" || $action == "to_revise" || $action == "to_reassign") && ($status != "TO_DO")) { switch ($sortBk) { case "APP_CACHE_VIEW.APP_CURRENT_USER": $sort = "USRCR_" . $conf->userNameFormatGetFirstFieldByUsersTable(); break; case "APP_CACHE_VIEW.APP_TAS_TITLE": $sort = "APPDELCR_APP_TAS_TITLE"; break; } } if (isset( $oAppCache->confCasesList['PMTable'] ) && ! empty( $oAppCache->confCasesList['PMTable'] ) && $tableNameAux != '') { $sortTable = explode(".", $sortBk); $additionalTableUid = $oAppCache->confCasesList["PMTable"]; require_once 'classes/model/Fields.php'; $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(FieldsPeer::FLD_UID); $oCriteria->addSelectColumn(FieldsPeer::FLD_INDEX); $oCriteria->addSelectColumn(FieldsPeer::FLD_NAME); $oCriteria->addSelectColumn(FieldsPeer::FLD_DESCRIPTION); $oCriteria->addSelectColumn(FieldsPeer::FLD_TYPE); $oCriteria->addSelectColumn(FieldsPeer::FLD_SIZE); $oCriteria->addSelectColumn(FieldsPeer::FLD_NULL); $oCriteria->addSelectColumn(FieldsPeer::FLD_AUTO_INCREMENT); $oCriteria->addSelectColumn(FieldsPeer::FLD_KEY); $oCriteria->addSelectColumn(FieldsPeer::FLD_FOREIGN_KEY); $oCriteria->addSelectColumn(FieldsPeer::FLD_FOREIGN_KEY_TABLE); $oCriteria->addSelectColumn(FieldsPeer::FLD_DYN_NAME); $oCriteria->addSelectColumn(FieldsPeer::FLD_DYN_UID); $oCriteria->addSelectColumn(FieldsPeer::FLD_FILTER); $oCriteria->add(FieldsPeer::ADD_TAB_UID, $additionalTableUid); $oCriteria->add(FieldsPeer::FLD_NAME, $sortTable[1]); $oCriteria->addAscendingOrderByColumn(FieldsPeer::FLD_INDEX); $oDataset = FieldsPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $row = $oDataset->getRow(); if (is_array($row)) { $sort = $tableNameAux . "." . $sortTable[1]; } } if ($sort == "") { $sort = $sortBk; } if (!in_array($sort, $Criteria->getSelectColumns())) { $sort = AppCacheViewPeer::APP_NUMBER; //DEFAULT VALUE } if ($dir == "DESC") { $Criteria->addDescendingOrderByColumn($sort); } else { $Criteria->addAscendingOrderByColumn($sort); } } //limit the results according the interface $Criteria->setLimit( $limit ); $Criteria->setOffset( $start ); //execute the query $oDataset = AppCacheViewPeer::doSelectRS( $Criteria, Propel::getDbConnection('workflow_ro') ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $result = array (); $result['totalCount'] = $totalCount; $rows = array (); $aPriorities = array ('1' => 'VL','2' => 'L','3' => 'N','4' => 'H','5' => 'VH'); $index = $start; while ($oDataset->next()) { $aRow = $oDataset->getRow(); //$aRow = $oAppCache->replaceRowUserData($aRow); /* * For participated cases, we want the last step in the case, not only the last step this user participated. To do that we get every case information again for the last step. (This could be solved by a subquery, but Propel might not support it and subqueries can be slower for larger * datasets). */ /*if ($action == 'sent' || $action == 'search') { $maxCriteria = new Criteria('workflow'); $maxCriteria->add(AppCacheViewPeer::APP_UID, $aRow['APP_UID'], Criteria::EQUAL); $maxCriteria->addDescendingOrderByColumn(AppCacheViewPeer::DEL_INDEX); $maxCriteria->setLimit(1); $maxDataset = AppCacheViewPeer::doSelectRS( $maxCriteria ); $maxDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $maxDataset->next(); $newData = $maxDataset->getRow(); foreach ($aRow as $col => $value) { if (array_key_exists($col, $newData)) $aRow[$col] = $newData[$col]; } $maxDataset->close(); }*/ //Current delegation (*) || $action == "search" || $action == "to_revise" if (($action == "sent" || $action == "simple_search" || $action == "to_reassign") && ($status != "TO_DO")) { //Current task $aRow["APP_TAS_TITLE"] = $aRow["APPDELCR_APP_TAS_TITLE"]; //Current user //if ($action != "to_reassign" ) { if (($action != "to_reassign") && ($action != "search") && ($action != "to revise")) { $aRow["USR_UID"] = $aRow["USRCR_USR_UID"]; $aRow["USR_FIRSTNAME"] = $aRow["USRCR_USR_FIRSTNAME"]; $aRow["USR_LASTNAME"] = $aRow["USRCR_USR_LASTNAME"]; $aRow["USR_USERNAME"] = $aRow["USRCR_USR_USERNAME"]; } } //Unassigned user if (! isset( $aRow['APP_CURRENT_USER'] )) { $aRow['APP_CURRENT_USER'] = "******" . strtoupper(G::LoadTranslation("ID_UNASSIGNED")) . "]"; } // replacing the status data with their respective translation if (isset( $aRow['APP_STATUS'] )) { $aRow['APP_STATUS_LABEL'] = G::LoadTranslation( "ID_{$aRow['APP_STATUS']}" ); } // replacing the priority data with their respective translation if (isset( $aRow['DEL_PRIORITY'] )) { $aRow['DEL_PRIORITY'] = G::LoadTranslation( "ID_PRIORITY_{$aPriorities[$aRow['DEL_PRIORITY']]}" ); } $rows[] = $aRow; } $result['data'] = $rows; return $result; }
/** * Get field names which are primary key in a PM Table * * @param string $additionalTableUid Unique id of PM Table * @param string $fieldNameForException Field name for the exception * * return array Return data with the primary keys */ public function getPmTablePrimaryKeyFields($additionalTableUid, $fieldNameForException) { try { $arrayFieldPk = array(); //Verify data $this->throwExceptionIfNotExistsPmTable($additionalTableUid, $fieldNameForException); //Get data //Load AdditionalTable $additionalTable = new \AdditionalTables(); $arrayAdditionalTableData = $additionalTable->load($additionalTableUid, true); foreach ($arrayAdditionalTableData["FIELDS"] as $key => $value) { if ($value["FLD_KEY"] == 1) { //Primary Key $arrayFieldPk[] = $value["FLD_NAME"]; } } //Return return $arrayFieldPk; } catch (\Exception $e) { throw $e; } }
public function getAllData($sUID, $start = null, $limit = null, $keyOrderUppercase = true, $filter = '', $appUid = false) { $addTab = new AdditionalTables(); $aData = $addTab->load($sUID, true); if (!isset($_SESSION['PROCESS'])) { $_SESSION["PROCESS"] = $aData['PRO_UID']; } $aData['DBS_UID'] = $aData['DBS_UID'] ? $aData['DBS_UID'] : 'workflow'; $sPath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP; $sClassName = ($aData['ADD_TAB_CLASS_NAME'] != '' ? $aData['ADD_TAB_CLASS_NAME'] : $this->getPHPName($aData['ADD_TAB_NAME'])); if (file_exists($sPath . $sClassName . '.php')) { require_once $sPath . $sClassName . '.php'; } else { return null; } $sClassPeerName = $sClassName . 'Peer'; $con = Propel::getConnection($aData['DBS_UID']); $oCriteria = new Criteria($aData['DBS_UID']); //eval('$oCriteria->addSelectColumn("\'1\' AS DUMMY");'); /* * data type: * 'INTEGER' 'BIGINT' 'SMALLINT' 'TINYINT' 'DECIMAL' 'DOUBLE' 'FLOAT' 'REAL' * 'CHAR' 'VARCHAR' 'LONGVARCHAR' 'BOOLEAN' 'DATE' 'DATETIME' 'TIME' */ $types = array('DECIMAL', 'DOUBLE', 'FLOAT', 'REAL'); if ($keyOrderUppercase) { foreach ($aData['FIELDS'] as $aField) { $field = '$oCriteria->addSelectColumn(' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ');'; if (in_array($aField['FLD_TYPE'], $types)) { $field = '$oCriteria->addAsColumn("' . $aField['FLD_NAME'] . '", "round(" . ' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ' . ", ' . ($aField['FLD_TYPE'] == 'DOUBLE' ? '8' : '2') . ')");'; } eval($field); /*if ($aField['FLD_KEY'] == '1') { eval('$oCriteria->addAscendingOrderByColumn('. $sClassPeerName . '::' . $aField['FLD_NAME'] . ');'); }*/ } } $oCriteriaCount = clone $oCriteria; //$count = $sClassPeerName::doCount($oCriteria); eval('$count = ' . $sClassPeerName . '::doCount($oCriteria);'); if ($filter != '' && is_string($filter)) { $stringOr = ''; $closure = ''; $types = array('INTEGER', 'BIGINT', 'SMALLINT', 'TINYINT', 'DECIMAL', 'DOUBLE', 'FLOAT', 'REAL'); foreach ($aData['FIELDS'] as $aField) { if (($appUid == false && $aField['FLD_NAME'] != 'APP_UID') || ($appUid == true)) { if (in_array($aField['FLD_TYPE'], $types)) { if (is_numeric($filter)) { $stringOr = $stringOr . '$a = $oCriteria->getNewCriterion(' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ', "' . $filter . '", Criteria::EQUAL)' . $closure . ';'; $closure = '->addOr($a)'; } } else { $stringOr = $stringOr . '$a = $oCriteria->getNewCriterion(' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ', "%' . $filter . '%", Criteria::LIKE)' . $closure . ';'; $closure = '->addOr($a)'; } } } $stringOr = $stringOr . '$oCriteria->add($a);'; eval($stringOr); $oCriteriaCount = clone $oCriteria; eval('$count = ' . $sClassPeerName . '::doCount($oCriteria);'); } G::LoadSystem('inputfilter'); $filter = new InputFilter(); $sClassPeerName = $filter->validateInput($sClassPeerName); if (isset($_POST['sort'])) { $_POST['sort'] = $filter->validateInput($_POST['sort']); $_POST['dir'] = $filter->validateInput($_POST['dir']); if ($_POST['dir'] == 'ASC') { if ($keyOrderUppercase) { eval('$oCriteria->addAscendingOrderByColumn("' . $_POST['sort'] . '");'); } else { eval('$oCriteria->addAscendingOrderByColumn(' . $sClassPeerName . '::' . $_POST['sort'] . ');'); } } else { if ($keyOrderUppercase) { eval('$oCriteria->addDescendingOrderByColumn("' . $_POST['sort'] . '");'); } else { eval('$oCriteria->addDescendingOrderByColumn(' . $sClassPeerName . '::' . $_POST['sort'] . ');'); } } } if (isset($limit)) { $oCriteria->setLimit($limit); } if (isset($start)) { $oCriteria->setOffset($start); } //$rs = $sClassPeerName::doSelectRS($oCriteria); eval('$rs = ' . $sClassPeerName . '::doSelectRS($oCriteria);'); $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rows = Array(); while ($rs->next()) { $rows[] = $rs->getRow(); } return array('rows' => $rows, 'count' => $count); }
/** * loads the configuration fields from the database based in an action parameter * then assemble the Criteria object with these data. * @param String $action * @return Criteria object $Criteria */ public function addPMFieldsToCriteria($action) { $caseColumns = array(); if (!class_exists('AdditionalTables')) { require_once ("classes/model/AdditionalTables.php"); } $caseReaderFields = array(); $oCriteria = new Criteria('workflow'); $oCriteria->clearSelectColumns(); //Default configuration fields array $defaultFields = $this->getDefaultFields(); //If there is PMTable for this case list if (is_array($this->confCasesList) && count($this->confCasesList) > 0 && isset($this->confCasesList["PMTable"]) && trim($this->confCasesList["PMTable"]) != "") { //Getting the table name $additionalTableUid = $this->confCasesList["PMTable"]; $additionalTable = AdditionalTablesPeer::retrieveByPK($additionalTableUid); $tableName = $additionalTable->getAddTabName(); $additionalTable = new AdditionalTables(); $tableData = $additionalTable->load($additionalTableUid, true); $tableField = array(); foreach ($tableData["FIELDS"] as $arrayField) { $tableField[] = $arrayField["FLD_NAME"]; } foreach ($this->confCasesList["second"]["data"] as $fieldData) { if (in_array($fieldData["name"], $defaultFields)) { switch ($fieldData["fieldType"]) { case "case field": $configTable = "APP_CACHE_VIEW"; break; case "delay field": $configTable = "APP_DELAY"; break; default: $configTable = "APP_CACHE_VIEW"; break; } $fieldName = $configTable . "." . $fieldData["name"]; $oCriteria->addSelectColumn($fieldName); } else { if (in_array($fieldData["name"], $tableField)) { $fieldName = $tableName . "." . $fieldData["name"]; $oCriteria->addSelectColumn($fieldName); } } } //add the default and hidden DEL_INIT_DATE $oCriteria->addSelectColumn('APP_CACHE_VIEW.DEL_INIT_DATE'); //$oCriteria->addAlias("PM_TABLE", $tableName); //Add the JOIN $oCriteria->addJoin(AppCacheViewPeer::APP_UID, $tableName.'.APP_UID', Criteria::LEFT_JOIN); return $oCriteria; } else { //This list do not have a PMTable if (is_array($this->confCasesList) && isset($this->confCasesList["second"]) && count($this->confCasesList["second"]["data"]) > 0) { foreach ($this->confCasesList["second"]["data"] as $fieldData) { if (in_array($fieldData["name"], $defaultFields)) { switch ($fieldData["fieldType"]) { case "case field": $configTable = "APP_CACHE_VIEW"; break; case "delay field": $configTable = "APP_DELAY"; break; default: $configTable = "APP_CACHE_VIEW"; break; } $fieldName = $configTable . "." . $fieldData["name"]; $oCriteria->addSelectColumn($fieldName); } } } else { foreach (AppCacheViewPeer::getFieldNames(BasePeer::TYPE_FIELDNAME) as $field) { $oCriteria->addSelectColumn("APP_CACHE_VIEW.$field"); } } //add the default and hidden DEL_INIT_DATE $oCriteria->addSelectColumn('APP_CACHE_VIEW.DEL_INIT_DATE'); return $oCriteria; } }
function saveConsolidated($data) { $status = $data['con_status']; $sTasUid = $data['tas_uid']; $sDynUid = $data['dyn_uid']; $sProUid = $data['pro_uid']; $sRepTabUid = $data['rep_uid']; $tableName = $data['table_name']; $title = $data['title']; if ($sRepTabUid != '') { if (!$status) { $oCaseConsolidated = new CaseConsolidatedCore(); $oCaseConsolidated = CaseConsolidatedCorePeer::retrieveByPK($sTasUid); if (!is_object($oCaseConsolidated) || get_class($oCaseConsolidated) != 'CaseConsolidatedCore') { $oCaseConsolidated = new CaseConsolidatedCore(); $oCaseConsolidated->setTasUid($sTasUid); $oCaseConsolidated->setConStatus('INACTIVE'); $oCaseConsolidated->save(); } else { $oCaseConsolidated->delete(); } return 1; } $rptUid = null; $criteria = new Criteria(); $criteria->addSelectColumn(ReportTablePeer::REP_TAB_UID); $criteria->add(ReportTablePeer::REP_TAB_UID, $sRepTabUid); $rsCriteria = ReportTablePeer::doSelectRS($criteria); if ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $rptUid = $row[0]; } $rpts = new ReportTables(); if ($rptUid != null) { $rpts->deleteReportTable($rptUid); } $sClassName = $tableName; $sPath = PATH_DB . SYS_SYS . 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'); $sRepTabUid = ''; } $_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; $_POST['form']['FIELDS'] = array(); G::LoadClass("reportTables"); $oReportTable = new ReportTable(); $sOldTableName = $_POST['form']['REP_TAB_NAME']; $sOldConnection = $_POST['form']['REP_TAB_CONNECTION']; $oReportTable->create($_POST['form']); $_POST['form']['REP_TAB_UID'] = $oReportTable->getRepTabUid(); $oReportVar = new ReportVar(); $oReportTables = new ReportTables(); $oReportTables->deleteAllReportVars($_POST['form']['REP_TAB_UID']); $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; $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); if ($aField[1] == 'title' || $aField[1] == 'submit') { continue; } $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']; $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); }
$oDataset = RoutePeer::doSelectRS($c); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $reportTablesOldList = array(); while ($oDataset->next()) { $reportTablesOldList[] = $oDataset->getRow(); } $addTab['count'] += count($reportTablesOldList); foreach ($reportTablesOldList as $i => $oldRepTab) { $addTab['rows'][] = array('ADD_TAB_UID' => $oldRepTab['REP_TAB_UID'], 'PRO_UID' => $oldRepTab['PRO_UID'], 'ADD_TAB_DESCRIPTION' => $oldRepTab['REP_TAB_TITLE'], 'ADD_TAB_NAME' => $oldRepTab['REP_TAB_NAME'], 'ADD_TAB_TYPE' => $oldRepTab['REP_TAB_TYPE'], 'TYPE' => 'CLASSIC'); } } echo G::json_encode($addTab); break; case 'updateTag': require_once 'classes/model/AdditionalTables.php'; $oAdditionalTables = new AdditionalTables(); $uid = $_REQUEST['ADD_TAB_UID']; $value = $_REQUEST['value']; $repTabData = array('ADD_TAB_UID' => $uid, 'ADD_TAB_TAG' => $value); $oAdditionalTables->update($repTabData); break; } /** * Translates a string with underscores into camel case (e.g. first_name -> firstName) * @param string $str String in underscore format * @param bool $capitalise_first_char If true, capitalise the first char in $str * @return string $str translated into camel caps */ function to_camel_case($str, $capitalise_first_char = true) { if ($capitalise_first_char) {
<?php $id = isset($_GET['id']) ? $_GET['id'] : false; $table = false; $oHeadPublisher =& headPublisher::getSingleton(); $oHeadPublisher->addExtJsScript('reportTables/edit', true); $oHeadPublisher->assign('ADD_TAB_UID', $id); if ($id) { // if is a edit request require_once 'classes/model/AdditionalTables.php'; require_once 'classes/model/Fields.php'; G::LoadClass('xmlfield_InputPM'); $additionalTables = new AdditionalTables(); $table = $additionalTables->load($id, true); $tableFields = array(); $fieldsList = array(); // list the case fields foreach ($table['FIELDS'] as $i => $field) { /*if ($field['FLD_NAME'] == 'APP_UID' || $field['FLD_NAME'] == 'APP_NUMBER' || $field['FLD_NAME'] == 'ROW') { unset($table['FIELDS'][$i]); continue; }*/ array_push($tableFields, $field['FLD_DYN_NAME']); } //list dynaform fields if ($table['ADD_TAB_TYPE'] == 'NORMAL') { $fields = getDynaformsVars($table['PRO_UID'], false); foreach ($fields as $field) { //select to not assigned fields for available grid if (!in_array($field['sName'], $tableFields)) { $fieldsList[] = array('FIELD_UID' => $field['sName'] . '-' . $field['sType'], 'FIELD_NAME' => $field['sName']);
public function _getDynafields($proUid, $type = 'xmlform', $start = null, $limit = null, $filter = null) { $cache = 1; if (!isset($_SESSION['_cache_pmtables']) || isset($_SESSION['_cache_pmtables']) && $_SESSION['_cache_pmtables']['pro_uid'] != $proUid || isset($_SESSION['_cache_pmtables']) && $_SESSION['_cache_pmtables']['dyn_uid'] != $this->dynUid) { require_once 'classes/model/Dynaform.php'; $cache = 0; $fields = array(); $fieldsNames = array(); $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(DynaformPeer::DYN_FILENAME); $oCriteria->add(DynaformPeer::PRO_UID, $proUid); $oCriteria->add(DynaformPeer::DYN_TYPE, $type); if (isset($this->dynUid)) { $oCriteria->add(DynaformPeer::DYN_UID, $this->dynUid); } $oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $excludeFieldsList = array('title', 'subtitle', 'link', 'file', 'button', 'reset', 'submit', 'listbox', 'checkgroup', 'grid', 'javascript', 'location', 'scannerCode', 'array'); $labelFieldsTypeList = array('dropdown', 'radiogroup'); G::loadSystem('dynaformhandler'); $index = 0; while ($aRow = $oDataset->getRow()) { if (file_exists(PATH_DYNAFORM . PATH_SEP . $aRow['DYN_FILENAME'] . '.xml')) { $dynaformHandler = new dynaformHandler(PATH_DYNAFORM . $aRow['DYN_FILENAME'] . '.xml'); $nodeFieldsList = $dynaformHandler->getFields(); foreach ($nodeFieldsList as $node) { $arrayNode = $dynaformHandler->getArray($node); $fieldName = $arrayNode['__nodeName__']; $fieldType = isset($arrayNode['type']) ? $arrayNode['type'] : ''; $fieldValidate = isset($arrayNode['validate']) ? $arrayNode['validate'] : ''; if (!in_array($fieldType, $excludeFieldsList) && !in_array($fieldName, $fieldsNames)) { $fields[] = array('FIELD_UID' => $fieldName . '-' . $fieldType, 'FIELD_NAME' => $fieldName, 'FIELD_VALIDATE' => $fieldValidate, '_index' => $index++, '_isset' => true); $fieldsNames[] = $fieldName; if (in_array($fieldType, $labelFieldsTypeList) && !in_array($fieldName . '_label', $fieldsNames)) { $fields[] = array('FIELD_UID' => $fieldName . '_label' . '-' . $fieldType, 'FIELD_NAME' => $fieldName . '_label', 'FIELD_VALIDATE' => $fieldValidate, '_index' => $index++, '_isset' => true); $fieldsNames[] = $fieldName; } } } } $oDataset->next(); } // getting bpmn projects $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(BpmnProcessPeer::PRJ_UID); $oCriteria->add(BpmnProcessPeer::PRJ_UID, $proUid); $oDataset = BpmnProcessPeer::doSelectRS($oCriteria, Propel::getDbConnection('workflow_ro')); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $row = $oDataset->getRow(); if (isset($row["PRJ_UID"])) { $sProcessUID = $row["PRJ_UID"]; $arrayDataTypeToExclude = array("array", "grid"); $arrayTypeToExclude = array("title", "subtitle", "link", "file", "button", "reset", "submit", "listbox", "grid", "array", "javascript", "location", "scannerCode"); $arrayControlSupported = array(); $dynaformAllControl = $this->getDynaformVariables($sProcessUID, $arrayTypeToExclude, true, "DATA"); foreach ($dynaformAllControl as $value) { $arrayControl = array_change_key_case($value, CASE_UPPER); if (isset($arrayControl["DATATYPE"]) && isset($arrayControl["TYPE"])) { if (!in_array($arrayControl["DATATYPE"], $arrayDataTypeToExclude) && !in_array($arrayControl["TYPE"], $arrayTypeToExclude)) { $arrayControlSupported[$arrayControl["VAR_UID"]] = $arrayControl["TYPE"]; } } } $dynaformNotAllowedVariables = $this->getDynaformVariables($sProcessUID, $arrayTypeToExclude, false); $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(ProcessVariablesPeer::VAR_UID); $oCriteria->addSelectColumn(ProcessVariablesPeer::VAR_NAME); $oCriteria->addSelectColumn(ProcessVariablesPeer::VAR_FIELD_TYPE); $oCriteria->add(ProcessVariablesPeer::PRJ_UID, $row["PRJ_UID"]); $oDataset = ProcessVariablesPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $index = 0; while ($oDataset->next()) { $row = $oDataset->getRow(); if (!in_array($row["VAR_NAME"], $dynaformNotAllowedVariables) && !in_array($row["VAR_FIELD_TYPE"], $arrayTypeToExclude) && !in_array($row["VAR_NAME"], $fieldsNames)) { array_push($fields, array("FIELD_UID" => $row["VAR_NAME"] . "-" . $row["VAR_FIELD_TYPE"], "FIELD_NAME" => $row["VAR_NAME"], "FIELD_VALIDATE" => "any", "_index" => $index++, "_isset" => true)); } array_push($fieldsNames, $row["VAR_NAME"]); if (isset($arrayControlSupported[$row["VAR_UID"]]) && !in_array($row["VAR_NAME"] . "_label", $fieldsNames)) { array_push($fields, array("FIELD_UID" => $row["VAR_NAME"] . "_label-" . $arrayControlSupported[$row["VAR_UID"]], "FIELD_NAME" => $row["VAR_NAME"] . "_label", "FIELD_VALIDATE" => "any", "_index" => $index++, "_isset" => true)); array_push($fieldsNames, $row["VAR_NAME"] . "_label"); } } } sort($fields); // if is a editing $fieldsEdit = array(); if (isset($_SESSION['ADD_TAB_UID'])) { require_once 'classes/model/AdditionalTables.php'; $additionalTables = new AdditionalTables(); $table = $additionalTables->load($_SESSION['ADD_TAB_UID'], true); foreach ($table['FIELDS'] as $i => $field) { array_push($fieldsEdit, $field['FLD_DYN_NAME']); } } //end editing $indexes = array(); foreach ($fields as $i => $field) { $fields[$i]['_index'] = $i; $indexes[$field['FIELD_NAME']] = $i; if (in_array($field['FIELD_NAME'], $fieldsEdit)) { $fields[$i]['_isset'] = false; } } $_SESSION['_cache_pmtables']['pro_uid'] = $proUid; $_SESSION['_cache_pmtables']['dyn_uid'] = $this->dynUid; $_SESSION['_cache_pmtables']['rows'] = $fields; $_SESSION['_cache_pmtables']['count'] = count($fields); $_SESSION['_cache_pmtables']['indexes'] = $indexes; } //end reload $fields = array(); $tmp = array(); foreach ($_SESSION['_cache_pmtables']['rows'] as $i => $row) { if (isset($filter) && $filter != '') { if ($row['_isset'] && stripos($row['FIELD_NAME'], $filter) !== false) { $tmp[] = $row; } } else { if ($row['_isset']) { $tmp[] = $row; } } } $fields = array_slice($tmp, $start, $limit); return array('cache' => $cache, 'count' => count($tmp), 'rows' => $fields); }