. * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. * */ unset($_POST['form']['ADD_TAB_NAME_OLD']); unset($_POST['form']['ADD_TAB_CLASS_NAME_OLD']); if (!isset($_POST['form']['ADD_TAB_SDW_LOG_INSERT'])) { $_POST['form']['ADD_TAB_SDW_LOG_INSERT'] = ''; } if (!isset($_POST['form']['ADD_TAB_SDW_LOG_UPDATE'])) { $_POST['form']['ADD_TAB_SDW_LOG_UPDATE'] = ''; } if (!isset($_POST['form']['ADD_TAB_SDW_LOG_DELETE'])) { $_POST['form']['ADD_TAB_SDW_LOG_DELETE'] = ''; } if (!isset($_POST['form']['ADD_TAB_SDW_LOG_SELECT'])) { $_POST['form']['ADD_TAB_SDW_LOG_SELECT'] = ''; } if (!isset($_POST['form']['ADD_TAB_SDW_MAX_LENGTH'])) { $_POST['form']['ADD_TAB_SDW_MAX_LENGTH'] = 0; } if (!isset($_POST['form']['ADD_TAB_SDW_AUTO_DELETE'])) { $_POST['form']['ADD_TAB_SDW_AUTO_DELETE'] = ''; } foreach ($_POST['form']['FIELDS'] as $iRow => $aRow) { if (!isset($_POST['form']['FIELDS'][$iRow]['FLD_NULL'])) { $_POST['form']['FIELDS'][$iRow]['FLD_NULL'] = ''; } if (!isset($_POST['form']['FIELDS'][$iRow]['FLD_AUTO_INCREMENT'])) { $_POST['form']['FIELDS'][$iRow]['FLD_AUTO_INCREMENT'] = ''; } if (!isset($_POST['form']['FIELDS'][$iRow]['FLD_KEY'])) { $_POST['form']['FIELDS'][$iRow]['FLD_KEY'] = ''; } if (!isset($_POST['form']['FIELDS'][$iRow]['FLD_FOREIGN_KEY'])) { $_POST['form']['FIELDS'][$iRow]['FLD_FOREIGN_KEY'] = ''; } if (!isset($_POST['form']['FIELDS'][$iRow]['FLD_FOREIGN_KEY_TABLE'])) { $_POST['form']['FIELDS'][$iRow]['FLD_FOREIGN_KEY_TABLE'] = ''; } if (!isset($_POST['form']['FIELDS'][$iRow]['FLD_NULL_HDN'])) { $_POST['form']['FIELDS'][$iRow]['FLD_NULL_HDN'] = ''; } if (!isset($_POST['form']['FIELDS'][$iRow]['FLD_KEY_HDN'])) { $_POST['form']['FIELDS'][$iRow]['FLD_KEY_HDN'] = ''; } // replace values check if (isset($_POST['form']['FIELDS'][$iRow]['FLD_KEY']) && $_POST['form']['FIELDS'][$iRow]['FLD_KEY_HDN'] == 'on') { $_POST['form']['FIELDS'][$iRow]['FLD_KEY'] = $_POST['form']['FIELDS'][$iRow]['FLD_KEY_HDN']; } if (isset($_POST['form']['FIELDS'][$iRow]['FLD_NULL']) && $_POST['form']['FIELDS'][$iRow]['FLD_NULL_HDN'] == 'on') { $_POST['form']['FIELDS'][$iRow]['FLD_NULL'] = $_POST['form']['FIELDS'][$iRow]['FLD_NULL_HDN']; } } $aKeys = array(); $aDynavars = array(); $aNoKeys = array(); foreach ($_POST['form']['FIELDS'] as $aRow) { if ($aRow['FLD_KEY'] == 'on') { $aKeys[] = $aRow; if(isset($aRow['CASE_VARIABLE'])) $aDynavars[] = array('FLD_UID'=>$aRow['FLD_UID'],'CASE_VARIABLE'=>$aRow['CASE_VARIABLE']); else $aDynavars[] = array('FLD_UID'=>$aRow['FLD_UID'],'CASE_VARIABLE'=>''); } else { $aNoKeys[] = $aRow; } } //print_r($_POST); $aDynavars = serialize($aDynavars); //var_dump($aKeys); //print_r($aDynavars); //die; $_POST['form']['FIELDS'] = array(); $i = 1; foreach ($aKeys as $aRow) { $_POST['form']['FIELDS'][$i] = $aRow; $i++; } foreach ($aNoKeys as $aRow) { $_POST['form']['FIELDS'][$i] = $aRow; $i++; } require_once 'classes/model/AdditionalTables.php'; $oAdditionalTables = new AdditionalTables(); require_once 'classes/model/Fields.php'; $oFields = new Fields(); if ($_POST['form']['ADD_TAB_UID'] == '') { // We verified that the table does not exist. $aNameTable = $oAdditionalTables->loadByName($_POST['form']['ADD_TAB_NAME']); if(is_array($aNameTable)) { G::SendMessageText('There is already a table named "' . $_POST['form']['ADD_TAB_NAME'] . '" in the database. Table creation canceled.', 'warning'); G::header('Location: additionalTablesList'); die; } // Reserved Words $aReservedWords = array ('ALTER', 'CLOSE', 'COMMIT', 'CREATE', 'DECLARE', 'DELETE', 'DROP', 'FETCH', 'FUNCTION', 'GRANT', 'INDEX', 'INSERT', 'OPEN', 'REVOKE', 'ROLLBACK', 'SELECT', 'SYNONYM', 'TABLE', 'UPDATE', 'VIEW' ); if (in_array(strtoupper($_POST['form']['ADD_TAB_NAME']), $aReservedWords) ) { G::SendMessageText('Could not create the table with the name "' . $_POST['form']['ADD_TAB_NAME'] . '" because it is a reserved word.', 'warning'); G::header('Location: additionalTablesList'); die; } $arrFields = $_POST['form']['FIELDS']; $newaFields = array(); foreach ($arrFields as $arrField){ $arrField['FLD_NAME'] = strtoupper($arrField['FLD_NAME']); $newaFields[] = $arrField; } $sAddTabUid = $oAdditionalTables->create(array('ADD_TAB_NAME' => $_POST['form']['ADD_TAB_NAME'], 'ADD_TAB_CLASS_NAME' => $_POST['form']['ADD_TAB_CLASS_NAME'], 'ADD_TAB_DESCRIPTION' => $_POST['form']['ADD_TAB_DESCRIPTION'], 'ADD_TAB_SDW_LOG_INSERT' => ($_POST['form']['ADD_TAB_SDW_LOG_INSERT'] == 'on' ? 1 : 0), 'ADD_TAB_SDW_LOG_UPDATE' => ($_POST['form']['ADD_TAB_SDW_LOG_UPDATE'] == 'on' ? 1 : 0), 'ADD_TAB_SDW_LOG_DELETE' => ($_POST['form']['ADD_TAB_SDW_LOG_DELETE'] == 'on' ? 1 : 0), 'ADD_TAB_SDW_LOG_SELECT' => ($_POST['form']['ADD_TAB_SDW_LOG_SELECT'] == 'on' ? 1 : 0), 'ADD_TAB_SDW_MAX_LENGTH' => $_POST['form']['ADD_TAB_SDW_MAX_LENGTH'], 'ADD_TAB_SDW_AUTO_DELETE' => ($_POST['form']['ADD_TAB_SDW_AUTO_DELETE'] == 'on' ? 1 : 0), 'ADD_TAB_DYNAVARS' => $aDynavars, 'ADD_TAB_PLG_UID' => ''), $newaFields); $aFields = array(); /*$aFields[] = array('sType' => 'INT', 'iSize' => '11', 'sFieldName' => 'PM_UNIQUE_ID', 'bNull' => 0, 'bAI' => 1, 'bPrimaryKey' => 1);*/ foreach ($_POST['form']['FIELDS'] as $iRow => $aRow) { $oFields->create(array('FLD_INDEX' => $iRow, 'ADD_TAB_UID' => $sAddTabUid, 'FLD_NAME' => strtoupper($_POST['form']['FIELDS'][$iRow]['FLD_NAME']), 'FLD_DESCRIPTION' => $_POST['form']['FIELDS'][$iRow]['FLD_DESCRIPTION'], 'FLD_TYPE' => $_POST['form']['FIELDS'][$iRow]['FLD_TYPE'], 'FLD_SIZE' => $_POST['form']['FIELDS'][$iRow]['FLD_SIZE'], 'FLD_NULL' => ($_POST['form']['FIELDS'][$iRow]['FLD_NULL'] == 'on' ? 1 : 0), 'FLD_AUTO_INCREMENT' => ($_POST['form']['FIELDS'][$iRow]['FLD_AUTO_INCREMENT'] == 'on' ? 1 : 0), 'FLD_KEY' => ($_POST['form']['FIELDS'][$iRow]['FLD_KEY'] == 'on' ? 1 : 0), 'FLD_FOREIGN_KEY' => ($_POST['form']['FIELDS'][$iRow]['FLD_FOREIGN_KEY'] == 'on' ? 1 : 0), 'FLD_FOREIGN_KEY_TABLE' => $_POST['form']['FIELDS'][$iRow]['FLD_FOREIGN_KEY_TABLE'])); $aFields[] = array('sType' => $_POST['form']['FIELDS'][$iRow]['FLD_TYPE'], 'iSize' => $_POST['form']['FIELDS'][$iRow]['FLD_SIZE'], 'sFieldName' => strtoupper($_POST['form']['FIELDS'][$iRow]['FLD_NAME']), 'bNull' => ($_POST['form']['FIELDS'][$iRow]['FLD_NULL'] == 'on' ? 1 : 0), 'bAI' => ($_POST['form']['FIELDS'][$iRow]['FLD_AUTO_INCREMENT'] == 'on' ? 1 : 0), 'bPrimaryKey' => ($_POST['form']['FIELDS'][$iRow]['FLD_KEY'] == 'on' ? 1 : 0)); } $oAdditionalTables->createTable($_POST['form']['ADD_TAB_NAME'], 'wf', $aFields); $oAdditionalTables->createPropelClasses($_POST['form']['ADD_TAB_NAME'], $_POST['form']['ADD_TAB_CLASS_NAME'], $newaFields, $sAddTabUid); } else { $aData = $oAdditionalTables->load($_POST['form']['ADD_TAB_UID'], true); $oAdditionalTables->update(array('ADD_TAB_UID' => $_POST['form']['ADD_TAB_UID'], 'ADD_TAB_NAME' => $_POST['form']['ADD_TAB_NAME'], 'ADD_TAB_CLASS_NAME' => $_POST['form']['ADD_TAB_CLASS_NAME'], 'ADD_TAB_DESCRIPTION' => $_POST['form']['ADD_TAB_DESCRIPTION'], 'ADD_TAB_SDW_LOG_INSERT' => ($_POST['form']['ADD_TAB_SDW_LOG_INSERT'] == 'on' ? 1 : 0), 'ADD_TAB_SDW_LOG_UPDATE' => ($_POST['form']['ADD_TAB_SDW_LOG_UPDATE'] == 'on' ? 1 : 0), 'ADD_TAB_SDW_LOG_DELETE' => ($_POST['form']['ADD_TAB_SDW_LOG_DELETE'] == 'on' ? 1 : 0), 'ADD_TAB_SDW_LOG_SELECT' => ($_POST['form']['ADD_TAB_SDW_LOG_SELECT'] == 'on' ? 1 : 0), 'ADD_TAB_SDW_MAX_LENGTH' => $_POST['form']['ADD_TAB_SDW_MAX_LENGTH'], 'ADD_TAB_SDW_AUTO_DELETE' => ($_POST['form']['ADD_TAB_SDW_AUTO_DELETE'] == 'on' ? 1 : 0), 'ADD_TAB_DYNAVARS' => $aDynavars, 'ADD_TAB_PLG_UID' => ''), $_POST['form']['FIELDS']); $oCriteria = new Criteria('workflow'); $oCriteria->add(FieldsPeer::ADD_TAB_UID, $_POST['form']['ADD_TAB_UID']); FieldsPeer::doDelete($oCriteria); $aNewFields = array(); foreach ($_POST['form']['FIELDS'] as $iRow => $aField) { $sUID = $oFields->create(array('FLD_UID' => $_POST['form']['FIELDS'][$iRow]['FLD_UID'], 'ADD_TAB_UID' => $_POST['form']['ADD_TAB_UID'], 'FLD_INDEX' => $iRow, 'FLD_NAME' => strtoupper($_POST['form']['FIELDS'][$iRow]['FLD_NAME']), 'FLD_DESCRIPTION' => $_POST['form']['FIELDS'][$iRow]['FLD_DESCRIPTION'], 'FLD_TYPE' => $_POST['form']['FIELDS'][$iRow]['FLD_TYPE'], 'FLD_SIZE' => $_POST['form']['FIELDS'][$iRow]['FLD_SIZE'], 'FLD_NULL' => ($_POST['form']['FIELDS'][$iRow]['FLD_NULL'] == 'on' ? 1 : 0), 'FLD_AUTO_INCREMENT' => ($_POST['form']['FIELDS'][$iRow]['FLD_AUTO_INCREMENT'] == 'on' ? 1 : 0), 'FLD_KEY' => ($_POST['form']['FIELDS'][$iRow]['FLD_KEY'] == 'on' ? 1 : 0), 'FLD_FOREIGN_KEY' => ($_POST['form']['FIELDS'][$iRow]['FLD_FOREIGN_KEY'] == 'on' ? 1 : 0), 'FLD_FOREIGN_KEY_TABLE' => $_POST['form']['FIELDS'][$iRow]['FLD_FOREIGN_KEY_TABLE'])); $aNewFields[$sUID] = $aField; } $aOldFields = array(); foreach ($aData['FIELDS'] as $aField) { $aOldFields[$aField['FLD_UID']] = $aField; } $oAdditionalTables->updateTable($_POST['form']['ADD_TAB_NAME'], 'wf', $aNewFields, $aOldFields); $oAdditionalTables->createPropelClasses($_POST['form']['ADD_TAB_NAME'], $_POST['form']['ADD_TAB_CLASS_NAME'], $_POST['form']['FIELDS'], $aData['ADD_TAB_UID']); } G::header('Location: additionalTablesList');