CODE STYLE workflow/engine/methods/reportTables/

FILES:
edit.php
main.php
reportTables_Ajax.php
reportTables_Delete.php
reportTables_Edit.php
reportTables_Save.php
This commit is contained in:
jennylee
2012-10-17 12:35:18 -04:00
parent c1f29f8729
commit 2ba2258eea
6 changed files with 639 additions and 694 deletions

View File

@@ -1,80 +1,75 @@
<?php <?php
$id = isset($_GET['id']) ? $_GET['id'] : false; $id = isset( $_GET['id'] ) ? $_GET['id'] : false;
$table = false; $table = false;
$oHeadPublisher =& headPublisher::getSingleton(); $oHeadPublisher = & headPublisher::getSingleton();
$oHeadPublisher->addExtJsScript('reportTables/edit', true ); $oHeadPublisher->addExtJsScript( 'reportTables/edit', true );
$oHeadPublisher->assign('ADD_TAB_UID', $id); $oHeadPublisher->assign( 'ADD_TAB_UID', $id );
if ($id) { // if is a edit request if ($id) { // if is a edit request
require_once 'classes/model/AdditionalTables.php'; require_once 'classes/model/AdditionalTables.php';
require_once 'classes/model/Fields.php'; require_once 'classes/model/Fields.php';
G::LoadClass('xmlfield_InputPM'); G::LoadClass( 'xmlfield_InputPM' );
$additionalTables = new AdditionalTables(); $additionalTables = new AdditionalTables();
$table = $additionalTables->load($id, true); $table = $additionalTables->load( $id, true );
$tableFields = array(); $tableFields = array ();
$fieldsList = array(); $fieldsList = array ();
// list the case fields // list the case fields
foreach ($table['FIELDS'] as $i=>$field) { foreach ($table['FIELDS'] as $i => $field) {
/*if ($field['FLD_NAME'] == 'APP_UID' || $field['FLD_NAME'] == 'APP_NUMBER' || $field['FLD_NAME'] == 'ROW') { /*if ($field['FLD_NAME'] == 'APP_UID' || $field['FLD_NAME'] == 'APP_NUMBER' || $field['FLD_NAME'] == 'ROW') {
unset($table['FIELDS'][$i]); unset($table['FIELDS'][$i]);
continue; continue;
}*/ }*/
array_push($tableFields, $field['FLD_DYN_NAME']); 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']
);
}
} }
} else {
list($gridName, $gridId) = explode('-', $table['ADD_TAB_GRID']);
$G_FORM = new Form($table['PRO_UID'] . '/' . $gridId, PATH_DYNAFORM, SYS_LANG, false); //list dynaform fields
$gridFields = $G_FORM->getVars(false); 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']
);
}
}
} else {
list ($gridName, $gridId) = explode( '-', $table['ADD_TAB_GRID'] );
foreach ($gridFields as $gfield) { $G_FORM = new Form( $table['PRO_UID'] . '/' . $gridId, PATH_DYNAFORM, SYS_LANG, false );
if (!in_array($gfield['sName'], $tableFields)) { $gridFields = $G_FORM->getVars( false );
$fieldsList[] = array(
'FIELD_UID' => $gfield['sName'] . '-' . $gfield['sType'], foreach ($gridFields as $gfield) {
'FIELD_NAME' => $gfield['sName'] if (! in_array( $gfield['sName'], $tableFields )) {
); $fieldsList[] = array ('FIELD_UID' => $gfield['sName'] . '-' . $gfield['sType'],'FIELD_NAME' => $gfield['sName']
} );
}
}
} }
}
$oHeadPublisher->assign('avFieldsList', $fieldsList); $oHeadPublisher->assign( 'avFieldsList', $fieldsList );
} }
$repTabPluginPermissions = false; $repTabPluginPermissions = false;
global $G_TMP_MENU; global $G_TMP_MENU;
$oMenu = new Menu(); $oMenu = new Menu();
$oMenu->load('setup'); $oMenu->load( 'setup' );
foreach( $oMenu->Options as $i=>$option) { foreach ($oMenu->Options as $i => $option) {
if ($oMenu->Types[$i] == 'private' && $oMenu->Id[$i] == 'PLUGIN_REPTAB_PERMISSIONS') { if ($oMenu->Types[$i] == 'private' && $oMenu->Id[$i] == 'PLUGIN_REPTAB_PERMISSIONS') {
$repTabPluginPermissions = array(); $repTabPluginPermissions = array ();
$repTabPluginPermissions['label'] = $oMenu->Labels[$i]; $repTabPluginPermissions['label'] = $oMenu->Labels[$i];
$repTabPluginPermissions['fn'] = $oMenu->Options[$i]; $repTabPluginPermissions['fn'] = $oMenu->Options[$i];
break; break;
} }
} }
$oHeadPublisher->assign('_plugin_permissions', $repTabPluginPermissions); $oHeadPublisher->assign( '_plugin_permissions', $repTabPluginPermissions );
$oHeadPublisher->assign('PRO_UID', isset($_GET['PRO_UID'])? $_GET['PRO_UID'] : false); $oHeadPublisher->assign( 'PRO_UID', isset( $_GET['PRO_UID'] ) ? $_GET['PRO_UID'] : false );
$oHeadPublisher->assign('TABLE', $table); $oHeadPublisher->assign( 'TABLE', $table );
G::RenderPage( 'publish', 'extJs' );
G::RenderPage('publish', 'extJs');

View File

@@ -12,48 +12,47 @@
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/ */
global $RBAC; global $RBAC;
$RBAC->requirePermissions('PM_SETUP_ADVANCE'); $RBAC->requirePermissions( 'PM_SETUP_ADVANCE' );
$G_PUBLISH = new Publisher; $G_PUBLISH = new Publisher();
G::LoadClass('configuration'); G::LoadClass( 'configuration' );
$c = new Configurations(); $c = new Configurations();
$configPage = $c->getConfiguration('additionalTablesList', 'pageSize','',$_SESSION['USER_LOGGED']); $configPage = $c->getConfiguration( 'additionalTablesList', 'pageSize', '', $_SESSION['USER_LOGGED'] );
$Config['pageSize'] = isset($configPage['pageSize']) ? $configPage['pageSize'] : 20; $Config['pageSize'] = isset( $configPage['pageSize'] ) ? $configPage['pageSize'] : 20;
$oHeadPublisher =& headPublisher::getSingleton(); $oHeadPublisher = & headPublisher::getSingleton();
$repTabPluginPermissions = false; $repTabPluginPermissions = false;
global $G_TMP_MENU; global $G_TMP_MENU;
$oMenu = new Menu(); $oMenu = new Menu();
$oMenu->load('setup'); $oMenu->load( 'setup' );
$simpleREportsPlugin = false; $simpleREportsPlugin = false;
foreach( $oMenu->Options as $i=>$option) { foreach ($oMenu->Options as $i => $option) {
if ($oMenu->Types[$i] == 'private' && $oMenu->Id[$i] == 'PLUGIN_REPTAB_PERMISSIONS') { if ($oMenu->Types[$i] == 'private' && $oMenu->Id[$i] == 'PLUGIN_REPTAB_PERMISSIONS') {
$simpleREportsPlugin = array(); $simpleREportsPlugin = array ();
$simpleREportsPlugin['label'] = $oMenu->Labels[$i]; $simpleREportsPlugin['label'] = $oMenu->Labels[$i];
$simpleREportsPlugin['fn'] = $oMenu->Options[$i]; $simpleREportsPlugin['fn'] = $oMenu->Options[$i];
break; break;
} }
} }
$oHeadPublisher->assign('_PLUGIN_SIMPLEREPORTS', $simpleREportsPlugin); $oHeadPublisher->assign( '_PLUGIN_SIMPLEREPORTS', $simpleREportsPlugin );
$oHeadPublisher->addExtJsScript('reportTables/main', true); //adding a javascript file .js $oHeadPublisher->addExtJsScript( 'reportTables/main', true ); //adding a javascript file .js
$oHeadPublisher->addContent('reportTables/main'); //adding a html file .html. $oHeadPublisher->addContent( 'reportTables/main' ); //adding a html file .html.
$oHeadPublisher->assign('FORMATS',$c->getFormats()); $oHeadPublisher->assign( 'FORMATS', $c->getFormats() );
$oHeadPublisher->assign('CONFIG', $Config); $oHeadPublisher->assign( 'CONFIG', $Config );
$oHeadPublisher->assign('PRO_UID', isset($_GET['PRO_UID'])? $_GET['PRO_UID'] : false); $oHeadPublisher->assign( 'PRO_UID', isset( $_GET['PRO_UID'] ) ? $_GET['PRO_UID'] : false );
G::RenderPage('publish', 'extJs'); G::RenderPage( 'publish', 'extJs' );

View File

@@ -12,551 +12,509 @@
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/ */
G::LoadClass('case'); G::LoadClass( 'case' );
$action = $_REQUEST['action']; $action = $_REQUEST['action'];
unset($_POST['action']); unset( $_POST['action'] );
switch($action) { switch ($action) {
case 'availableFieldsReportTables': case 'availableFieldsReportTables':
G::LoadClass('reportTables'); G::LoadClass( 'reportTables' );
G::LoadClass('xmlfield_InputPM'); G::LoadClass( 'xmlfield_InputPM' );
$aFields['FIELDS'] = array(); $aFields['FIELDS'] = array ();
$aFields['PRO_UID'] = $_POST['PRO_UID']; $aFields['PRO_UID'] = $_POST['PRO_UID'];
if(isset($_POST['TYPE']) && $_POST['TYPE'] == 'GRID') { if (isset( $_POST['TYPE'] ) && $_POST['TYPE'] == 'GRID') {
$aProcessGridFields = Array(); $aProcessGridFields = Array ();
if (isset($_POST['GRID_UID'])) { if (isset( $_POST['GRID_UID'] )) {
global $G_FORM; global $G_FORM;
list($gridName, $gridId) = explode('-', $_POST['GRID_UID']); list ($gridName, $gridId) = explode( '-', $_POST['GRID_UID'] );
// $G_FORM = new Form($_POST['PRO_UID'] . '/' . $gridId, PATH_DYNAFORM, SYS_LANG, false); // $G_FORM = new Form($_POST['PRO_UID'] . '/' . $gridId, PATH_DYNAFORM, SYS_LANG, false);
//$gridFields = $G_FORM->getVars(false); //$gridFields = $G_FORM->getVars(false);
$gridFields = getGridDynafields($_POST['PRO_UID'], $gridId); $gridFields = getGridDynafields( $_POST['PRO_UID'], $gridId );
foreach ($gridFields as $gfield) { foreach ($gridFields as $gfield) {
$aProcessGridFields[] = array( $aProcessGridFields[] = array ('FIELD_UID' => $gfield['name'] . '-' . $gfield['type'],'FIELD_NAME' => $gfield['name']
'FIELD_UID' => $gfield['name'] . '-' . $gfield['type'], );
'FIELD_NAME' => $gfield['name'] }
); } else {
$gridFields = getGridFields( $aFields['PRO_UID'] );
foreach ($gridFields as $gfield) {
$aProcessGridFields[] = array ('FIELD_UID' => $gfield['name'] . '-' . $gfield['xmlform'],'FIELD_NAME' => $gfield['name']
);
}
}
$resultList['processFields'] = $aProcessGridFields;
} else {
$aProcessFields = Array ();
//$dynFields = getDynaformsVars($aFields['PRO_UID'], false);
$dynFields = getDynafields( $aFields['PRO_UID'] );
foreach ($dynFields as $dfield) {
$aProcessFields[] = array ('FIELD_UID' => $dfield['name'] . '-' . $dfield['type'],'FIELD_NAME' => $dfield['name']
);
}
$resultList['processFields'] = $aProcessFields;
} }
} else {
$gridFields = getGridFields($aFields['PRO_UID']);
foreach ($gridFields as $gfield) { echo G::json_encode( $resultList );
$aProcessGridFields[] = array(
'FIELD_UID' => $gfield['name'] . '-' . $gfield['xmlform'], break;
'FIELD_NAME' => $gfield['name']
); case 'fieldsList':
G::LoadClass( 'reportTables' );
G::LoadClass( 'xmlfield_InputPM' );
$aFields['FIELDS'] = array ();
$oReportTable = new ReportTable();
$aFields = $oReportTable->load( $_POST['REP_TAB_UID'] );
$aTheFields = getDynaformsVars( $aFields['PRO_UID'], false );
$oReportTables = new ReportTables();
$aVars = $oReportTables->getTableVars( $_POST['REP_TAB_UID'] );
$aFields['FIELDS'] = array ();
foreach ($aTheFields as $aField) {
if (in_array( $aField['sName'], $aVars )) {
$aResultFields[] = array ('FIELD_UID' => $aField['sName'] . '-' . $aField['sType'],'FIELD_NAME' => $aField['sName'],'FIELD_DYNAFORM' => $aField['sName']
);
}
} }
}
$resultList['processFields'] = $aProcessGridFields;
} else { $result->success = true;
$aProcessFields = Array(); $result->data = $aResultFields;
//$dynFields = getDynaformsVars($aFields['PRO_UID'], false); echo G::json_encode( $result );
$dynFields = getDynafields($aFields['PRO_UID']); break;
foreach ($dynFields as $dfield) {
$aProcessFields[] = array(
'FIELD_UID' => $dfield['name'] . '-' . $dfield['type'],
'FIELD_NAME' => $dfield['name']
);
}
$resultList['processFields'] = $aProcessFields;
}
echo G::json_encode($resultList);
break;
case 'fieldsList':
G::LoadClass('reportTables');
G::LoadClass('xmlfield_InputPM');
$aFields['FIELDS'] = array();
$oReportTable = new ReportTable();
$aFields = $oReportTable->load($_POST['REP_TAB_UID']);
$aTheFields = getDynaformsVars($aFields['PRO_UID'], false);
$oReportTables = new ReportTables();
$aVars = $oReportTables->getTableVars($_POST['REP_TAB_UID']);
$aFields['FIELDS'] = array();
foreach ($aTheFields as $aField) {
if (in_array($aField['sName'], $aVars)) {
$aResultFields[] = array('FIELD_UID' => $aField['sName'] . '-' . $aField['sType'],
'FIELD_NAME' => $aField['sName'],
'FIELD_DYNAFORM' => $aField['sName']);
}
}
$result->success = true;
$result->data=$aResultFields;
echo G::json_encode($result);
break;
case 'getDbConnectionsList': case 'getDbConnectionsList':
G::LoadClass ( 'dbConnections'); G::LoadClass( 'dbConnections' );
$proUid = $_POST['PRO_UID']; $proUid = $_POST['PRO_UID'];
$dbConn = new DbConnections(); $dbConn = new DbConnections();
$dbConnections = $dbConn->getConnectionsProUid($proUid); $dbConnections = $dbConn->getConnectionsProUid( $proUid );
$defaultConnections = array ( $defaultConnections = array (array ('DBS_UID' => 'workflow','DBS_NAME' => 'Workflow'
array('DBS_UID'=>'workflow', 'DBS_NAME'=>'Workflow'), ),array ('DBS_UID' => 'rp','DBS_NAME' => 'REPORT'
array('DBS_UID'=>'rp', 'DBS_NAME'=>'REPORT') )
); );
echo G::json_encode(array_merge($defaultConnections, $dbConnections)); echo G::json_encode( array_merge( $defaultConnections, $dbConnections ) );
break; break;
case 'getProcessList': case 'getProcessList':
require_once 'classes/model/Process.php'; require_once 'classes/model/Process.php';
$process = new Process();
echo G::json_encode($process->getAll());
break;
$process = new Process();
echo G::json_encode( $process->getAll() );
break;
case 'save': case 'save':
require_once 'classes/model/AdditionalTables.php'; require_once 'classes/model/AdditionalTables.php';
require_once 'classes/model/Fields.php'; require_once 'classes/model/Fields.php';
try { try {
$data = $_POST; $data = $_POST;
$data['columns'] = G::json_decode($_POST['columns']); //decofing data columns $data['columns'] = G::json_decode( $_POST['columns'] ); //decofing data columns
// Reserved Words
$aReservedWords = array(
'ALTER', 'CLOSE', 'COMMIT', 'CREATE', 'DECLARE',
'DELETE', 'DROP', 'FETCH', 'FUNCTION', 'GRANT',
'INDEX', 'INSERT', 'OPEN', 'REVOKE', 'ROLLBACK',
'SELECT', 'SYNONYM', 'TABLE', 'UPDATE', 'VIEW',
'APP_UID', 'ROW'
);
$oAdditionalTables = new AdditionalTables();
$oFields = new Fields();
// verify if exists.
$aNameTable = $oAdditionalTables->loadByName($data['REP_TAB_NAME']);
$repTabClassName = to_camel_case($data['REP_TAB_NAME']);
$repTabData = array(
'ADD_TAB_UID' => $data['REP_TAB_UID'],
'ADD_TAB_NAME' => $data['REP_TAB_NAME'],
'ADD_TAB_CLASS_NAME' => $repTabClassName,
'ADD_TAB_DESCRIPTION' => $data['REP_TAB_DSC'],
'ADD_TAB_PLG_UID' => '',
'DBS_UID' => $data['REP_TAB_CONNECTION'],
'PRO_UID' => $data['PRO_UID'],
'ADD_TAB_TYPE' => $data['REP_TAB_TYPE'],
'ADD_TAB_GRID' => $data['REP_TAB_GRID']
);
$columns = $data['columns'];
if ($data['REP_TAB_UID'] == '') { //new report table
//setting default columns
$defaultColumns = array();
$application = new stdClass(); //APPLICATION KEY
$application->uid = '';
$application->field_dyn = '';
$application->field_uid = '';
$application->field_name = 'APP_UID';
$application->field_label = 'APP_UID';
$application->field_type = 'VARCHAR';
$application->field_size = 32;
$application->field_dyn = '';
$application->field_key = 1;
$application->field_null = 0;
$application->field_filter = false;
array_push($defaultColumns, $application);
$application = new stdClass(); //APP_NUMBER
$application->uid = '';
$application->field_dyn = '';
$application->field_uid = '';
$application->field_name = 'APP_NUMBER';
$application->field_label = 'APP_NUMBER';
$application->field_type = 'INT';
$application->field_size = 11;
$application->field_dyn = '';
$application->field_key = 1;
$application->field_null =0;
$application->field_filter = false;
array_push($defaultColumns, $application);
//if it is a grid report table
if ($data['REP_TAB_TYPE'] == 'GRID') { //GRID INDEX
$gridIndex = new stdClass();
$gridIndex->uid = '';
$gridIndex->field_dyn = '';
$gridIndex->field_uid = '';
$gridIndex->field_name = 'ROW';
$gridIndex->field_label = 'ROW';
$gridIndex->field_type = 'INT';
$gridIndex->field_size = '11';
$gridIndex->field_dyn = '';
$gridIndex->field_null = 0;
$gridIndex->field_filter = false;
array_push($defaultColumns, $gridIndex);
}
$columns = array_merge($defaultColumns, $columns);
/** validations **/ // Reserved Words
if(is_array($aNameTable)) { $aReservedWords = array ('ALTER','CLOSE','COMMIT','CREATE','DECLARE','DELETE','DROP','FETCH','FUNCTION','GRANT','INDEX','INSERT','OPEN','REVOKE','ROLLBACK','SELECT','SYNONYM','TABLE','UPDATE','VIEW','APP_UID','ROW'
throw new Exception('The table "' . $data['REP_TAB_NAME'] . '" already exits.');
}
if (in_array(strtoupper($data['REP_TAB_NAME']), $aReservedWords) ) {
throw new Exception('Could not create the table with the name "' . $data['REP_TAB_NAME'] . '" because it is a reserved word.');
}
//create record
$addTabUid = $oAdditionalTables->create($repTabData);
} else { //editing report table
$addTabUid = $data['REP_TAB_UID'];
//loading old data before update
$addTabBeforeData = $oAdditionalTables->load($addTabUid, true);
//updating record
$oAdditionalTables->update($repTabData);
//removing old data fields references
$oCriteria = new Criteria('workflow');
$oCriteria->add(FieldsPeer::ADD_TAB_UID, $data['REP_TAB_UID']);
//$oCriteria->add(FieldsPeer::FLD_NAME, 'APP_UID', Criteria::NOT_EQUAL);
//$oCriteria->add(FieldsPeer::FLD_NAME, 'ROW', Criteria::NOT_EQUAL);
FieldsPeer::doDelete($oCriteria);
//getting old fieldnames
$oldFields = array();
foreach ($addTabBeforeData['FIELDS'] as $field) {
//if ($field['FLD_NAME'] == 'APP_UID' || $field['FLD_NAME'] == 'ROW') continue;
$oldFields[$field['FLD_UID']] = $field;
}
}
$aFields = array();
$fieldsList = array();
$editFieldsList = array();
foreach ($columns as $i => $column) {
$field = array(
'FLD_UID' => $column->uid,
'FLD_INDEX' => $i,
'ADD_TAB_UID' => $addTabUid,
'FLD_NAME' => $column->field_name,
'FLD_DESCRIPTION' => $column->field_label,
'FLD_TYPE' => $column->field_type,
'FLD_SIZE' => $column->field_size,
'FLD_NULL' => (isset($column->field_null) ? $column->field_null : 1),
'FLD_AUTO_INCREMENT' => 0,
'FLD_KEY' => (isset($column->field_key) ? $column->field_key : 0),
'FLD_FOREIGN_KEY' => 0,
'FLD_FOREIGN_KEY_TABLE' => '',
'FLD_DYN_NAME' => $column->field_dyn,
'FLD_DYN_UID' => $column->field_uid,
'FLD_FILTER' => (isset($column->field_filter) && $column->field_filter ? 1 : 0)
);
$fieldUid = $oFields->create($field);
$fieldsList[] = $field;
if($data['REP_TAB_UID'] == '') { //new
$aFields[] = array(
'sType' => $column->field_type,
'iSize' => $column->field_size,
'sFieldName' => $column->field_name,
'bNull' => (isset($column->field_null) ? $column->field_null : 1),
'bAI' => 0,
'bPrimaryKey' => (isset($column->field_key) ? $column->field_key : 0)
); );
} else { //editing
$field['FLD_UID'] = $fieldUid; $oAdditionalTables = new AdditionalTables();
$aFields[$fieldUid] = $field; $oFields = new Fields();
}
} // verify if exists.
if ($data['REP_TAB_UID'] == '') { //create a new report table $aNameTable = $oAdditionalTables->loadByName( $data['REP_TAB_NAME'] );
$oAdditionalTables->createTable($data['REP_TAB_NAME'], $data['REP_TAB_CONNECTION'], $aFields);
} else { //editing $repTabClassName = to_camel_case( $data['REP_TAB_NAME'] );
//print_R($aFields);
$oAdditionalTables->updateTable($data['REP_TAB_NAME'], $data['REP_TAB_CONNECTION'], $aFields, $oldFields); $repTabData = array ('ADD_TAB_UID' => $data['REP_TAB_UID'],'ADD_TAB_NAME' => $data['REP_TAB_NAME'],'ADD_TAB_CLASS_NAME' => $repTabClassName,'ADD_TAB_DESCRIPTION' => $data['REP_TAB_DSC'],'ADD_TAB_PLG_UID' => '','DBS_UID' => $data['REP_TAB_CONNECTION'],'PRO_UID' => $data['PRO_UID'],'ADD_TAB_TYPE' => $data['REP_TAB_TYPE'],'ADD_TAB_GRID' => $data['REP_TAB_GRID']
);
$columns = $data['columns'];
if ($data['REP_TAB_UID'] == '') { //new report table
//setting default columns
$defaultColumns = array ();
$application = new stdClass(); //APPLICATION KEY
$application->uid = '';
$application->field_dyn = '';
$application->field_uid = '';
$application->field_name = 'APP_UID';
$application->field_label = 'APP_UID';
$application->field_type = 'VARCHAR';
$application->field_size = 32;
$application->field_dyn = '';
$application->field_key = 1;
$application->field_null = 0;
$application->field_filter = false;
array_push( $defaultColumns, $application );
$application = new stdClass(); //APP_NUMBER
$application->uid = '';
$application->field_dyn = '';
$application->field_uid = '';
$application->field_name = 'APP_NUMBER';
$application->field_label = 'APP_NUMBER';
$application->field_type = 'INT';
$application->field_size = 11;
$application->field_dyn = '';
$application->field_key = 1;
$application->field_null = 0;
$application->field_filter = false;
array_push( $defaultColumns, $application );
//if it is a grid report table
if ($data['REP_TAB_TYPE'] == 'GRID') { //GRID INDEX
$gridIndex = new stdClass();
$gridIndex->uid = '';
$gridIndex->field_dyn = '';
$gridIndex->field_uid = '';
$gridIndex->field_name = 'ROW';
$gridIndex->field_label = 'ROW';
$gridIndex->field_type = 'INT';
$gridIndex->field_size = '11';
$gridIndex->field_dyn = '';
$gridIndex->field_null = 0;
$gridIndex->field_filter = false;
array_push( $defaultColumns, $gridIndex );
}
$columns = array_merge( $defaultColumns, $columns );
/**
* validations *
*/
if (is_array( $aNameTable )) {
throw new Exception( 'The table "' . $data['REP_TAB_NAME'] . '" already exits.' );
}
if (in_array( strtoupper( $data['REP_TAB_NAME'] ), $aReservedWords )) {
throw new Exception( 'Could not create the table with the name "' . $data['REP_TAB_NAME'] . '" because it is a reserved word.' );
}
//create record
$addTabUid = $oAdditionalTables->create( $repTabData );
} else { //editing report table
$addTabUid = $data['REP_TAB_UID'];
//loading old data before update
$addTabBeforeData = $oAdditionalTables->load( $addTabUid, true );
//updating record
$oAdditionalTables->update( $repTabData );
//removing old data fields references
$oCriteria = new Criteria( 'workflow' );
$oCriteria->add( FieldsPeer::ADD_TAB_UID, $data['REP_TAB_UID'] );
//$oCriteria->add(FieldsPeer::FLD_NAME, 'APP_UID', Criteria::NOT_EQUAL);
//$oCriteria->add(FieldsPeer::FLD_NAME, 'ROW', Criteria::NOT_EQUAL);
FieldsPeer::doDelete( $oCriteria );
//getting old fieldnames
$oldFields = array ();
foreach ($addTabBeforeData['FIELDS'] as $field) {
//if ($field['FLD_NAME'] == 'APP_UID' || $field['FLD_NAME'] == 'ROW') continue;
$oldFields[$field['FLD_UID']] = $field;
}
}
$aFields = array ();
$fieldsList = array ();
$editFieldsList = array ();
foreach ($columns as $i => $column) {
$field = array ('FLD_UID' => $column->uid,'FLD_INDEX' => $i,'ADD_TAB_UID' => $addTabUid,'FLD_NAME' => $column->field_name,'FLD_DESCRIPTION' => $column->field_label,'FLD_TYPE' => $column->field_type,'FLD_SIZE' => $column->field_size,'FLD_NULL' => (isset( $column->field_null ) ? $column->field_null : 1),'FLD_AUTO_INCREMENT' => 0,'FLD_KEY' => (isset( $column->field_key ) ? $column->field_key : 0),'FLD_FOREIGN_KEY' => 0,'FLD_FOREIGN_KEY_TABLE' => '','FLD_DYN_NAME' => $column->field_dyn,'FLD_DYN_UID' => $column->field_uid,'FLD_FILTER' => (isset( $column->field_filter ) && $column->field_filter ? 1 : 0)
);
$fieldUid = $oFields->create( $field );
$fieldsList[] = $field;
if ($data['REP_TAB_UID'] == '') { //new
$aFields[] = array ('sType' => $column->field_type,'iSize' => $column->field_size,'sFieldName' => $column->field_name,'bNull' => (isset( $column->field_null ) ? $column->field_null : 1),'bAI' => 0,'bPrimaryKey' => (isset( $column->field_key ) ? $column->field_key : 0)
);
} else { //editing
$field['FLD_UID'] = $fieldUid;
$aFields[$fieldUid] = $field;
}
}
if ($data['REP_TAB_UID'] == '') { //create a new report table
$oAdditionalTables->createTable( $data['REP_TAB_NAME'], $data['REP_TAB_CONNECTION'], $aFields );
} else { //editing
//print_R($aFields);
$oAdditionalTables->updateTable( $data['REP_TAB_NAME'], $data['REP_TAB_CONNECTION'], $aFields, $oldFields );
}
$oAdditionalTables->createPropelClasses( $data['REP_TAB_NAME'], $repTabClassName, $fieldsList, $addTabUid );
$oAdditionalTables->populateReportTable( $data['REP_TAB_NAME'], $data['REP_TAB_CONNECTION'], $data['REP_TAB_TYPE'], $fieldsList, $data['PRO_UID'], $data['REP_TAB_GRID'] );
$result->success = true;
} catch (Exception $e) {
$result->success = false;
$result->msg = $e->getMessage();
$result->trace = $e->getTraceAsString();
} }
$oAdditionalTables->createPropelClasses($data['REP_TAB_NAME'], $repTabClassName, $fieldsList, $addTabUid); echo G::json_encode( $result );
break;
$oAdditionalTables->populateReportTable($data['REP_TAB_NAME'], $data['REP_TAB_CONNECTION'], $data['REP_TAB_TYPE'], $fieldsList, $data['PRO_UID'], $data['REP_TAB_GRID']);
$result->success = true;
} catch (Exception $e) {
$result->success = false;
$result->msg = $e->getMessage();
$result->trace = $e->getTraceAsString();
}
echo G::json_encode($result);
break;
case 'delete': case 'delete':
require_once 'classes/model/AdditionalTables.php'; require_once 'classes/model/AdditionalTables.php';
G::LoadClass('reportTables'); G::LoadClass( 'reportTables' );
$rows = G::json_decode($_REQUEST['rows']); $rows = G::json_decode( $_REQUEST['rows'] );
$rp = new reportTables(); $rp = new reportTables();
$at = new AdditionalTables(); $at = new AdditionalTables();
try { try {
foreach ($rows as $row ) { foreach ($rows as $row) {
if($row->type == 'CLASSIC') { if ($row->type == 'CLASSIC') {
$rp->deleteReportTable($row->id); $rp->deleteReportTable( $row->id );
} else { } else {
$at->deleteAll($row->id); $at->deleteAll( $row->id );
} }
}
$result->success = true;
} catch (Exception $e) {
$result->success = false;
$result->msg = $e->getMessage();
} }
$result->success = true; echo G::json_encode( $result );
} catch(Exception $e) { break;
$result->success = false;
$result->msg = $e->getMessage();
}
echo G::json_encode($result);
break;
case 'list': case 'list':
require_once 'classes/model/AdditionalTables.php'; require_once 'classes/model/AdditionalTables.php';
G::LoadClass('configuration'); G::LoadClass( 'configuration' );
G::LoadClass('processMap'); G::LoadClass( 'processMap' );
$configigurations = new Configurations(); $configigurations = new Configurations();
$oProcessMap = new processMap(); $oProcessMap = new processMap();
$config = $configigurations->getConfiguration('additionalTablesList', 'pageSize','',$_SESSION['USER_LOGGED']); $config = $configigurations->getConfiguration( 'additionalTablesList', 'pageSize', '', $_SESSION['USER_LOGGED'] );
$env = $configigurations->getConfiguration('ENVIRONMENT_SETTINGS', ''); $env = $configigurations->getConfiguration( 'ENVIRONMENT_SETTINGS', '' );
$limit_size = isset($config['pageSize']) ? $config['pageSize'] : 20; $limit_size = isset( $config['pageSize'] ) ? $config['pageSize'] : 20;
$start = isset($_REQUEST['start']) ? $_REQUEST['start'] : 0; $start = isset( $_REQUEST['start'] ) ? $_REQUEST['start'] : 0;
$limit = isset($_REQUEST['limit']) ? $_REQUEST['limit'] : $limit_size; $limit = isset( $_REQUEST['limit'] ) ? $_REQUEST['limit'] : $limit_size;
$filter = isset($_REQUEST['textFilter']) ? $_REQUEST['textFilter'] : ''; $filter = isset( $_REQUEST['textFilter'] ) ? $_REQUEST['textFilter'] : '';
$pro_uid = isset($_REQUEST['pro_uid']) ? $_REQUEST['pro_uid'] : ''; $pro_uid = isset( $_REQUEST['pro_uid'] ) ? $_REQUEST['pro_uid'] : '';
$process = $pro_uid == '' ? array('not_equal'=>$pro_uid) : array('equal'=>$pro_uid); $process = $pro_uid == '' ? array ('not_equal' => $pro_uid
$addTab = AdditionalTables::getAll($start, $limit, $filter, $process); ) : array ('equal' => $pro_uid
);
$addTab = AdditionalTables::getAll( $start, $limit, $filter, $process );
if ($pro_uid != '') { if ($pro_uid != '') {
$c = $oProcessMap->getReportTablesCriteria($pro_uid); $c = $oProcessMap->getReportTablesCriteria( $pro_uid );
$oDataset = RoutePeer::doSelectRS($c); $oDataset = RoutePeer::doSelectRS( $c );
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$reportTablesOldList = array(); $reportTablesOldList = array ();
while($oDataset->next()) { while ($oDataset->next()) {
$reportTablesOldList[] = $oDataset->getRow(); $reportTablesOldList[] = $oDataset->getRow();
} }
$addTab['count'] += count($reportTablesOldList); $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'
);
}
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;
echo G::json_encode($addTab);
break;
case 'updateTag': case 'updateTag':
require_once 'classes/model/AdditionalTables.php'; require_once 'classes/model/AdditionalTables.php';
$oAdditionalTables = new AdditionalTables(); $oAdditionalTables = new AdditionalTables();
$uid = $_REQUEST['ADD_TAB_UID']; $uid = $_REQUEST['ADD_TAB_UID'];
$value = $_REQUEST['value']; $value = $_REQUEST['value'];
$repTabData = array( $repTabData = array ('ADD_TAB_UID' => $uid,'ADD_TAB_TAG' => $value
'ADD_TAB_UID' => $uid, );
'ADD_TAB_TAG' => $value $oAdditionalTables->update( $repTabData );
); break;
$oAdditionalTables->update($repTabData);
break;
} }
/**
* Translates a string with underscores into camel case (e.g.
/** * first_name -> firstName)
* Translates a string with underscores into camel case (e.g. first_name -> firstName) *
* @param string $str String in underscore format * @param string $str String in underscore format
* @param bool $capitalise_first_char If true, capitalise the first char in $str * @param bool $capitalise_first_char If true, capitalise the first char in $str
* @return string $str translated into camel caps * @return string $str translated into camel caps
*/ */
function to_camel_case($str, $capitalise_first_char = true) { function to_camel_case ($str, $capitalise_first_char = true)
if($capitalise_first_char) { {
$str[0] = strtoupper($str[0]); if ($capitalise_first_char) {
$str[0] = strtoupper( $str[0] );
} }
$func = create_function('$c', 'return strtoupper($c[1]);'); $func = create_function( '$c', 'return strtoupper($c[1]);' );
return preg_replace_callback('/_([a-z])/', $func, $str); return preg_replace_callback( '/_([a-z])/', $func, $str );
} }
function getDynafields ($proUid, $type = 'xmlform')
{
function getDynafields($proUid, $type = 'xmlform')
{
require_once 'classes/model/Dynaform.php'; require_once 'classes/model/Dynaform.php';
$fields = array(); $fields = array ();
$fieldsNames = array(); $fieldsNames = array ();
$oCriteria = new Criteria('workflow'); $oCriteria = new Criteria( 'workflow' );
$oCriteria->addSelectColumn(DynaformPeer::DYN_FILENAME); $oCriteria->addSelectColumn( DynaformPeer::DYN_FILENAME );
$oCriteria->add(DynaformPeer::PRO_UID, $proUid); $oCriteria->add( DynaformPeer::PRO_UID, $proUid );
$oCriteria->add(DynaformPeer::DYN_TYPE, $type); $oCriteria->add( DynaformPeer::DYN_TYPE, $type );
$oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset = DynaformPeer::doSelectRS( $oCriteria );
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oDataset->next(); $oDataset->next();
$excludeFieldsList = array('title', 'subtitle', 'link', 'file', 'button', 'reset', 'submit', $excludeFieldsList = array ('title','subtitle','link','file','button','reset','submit','listbox','checkgroup','grid','javascript'
'listbox', 'checkgroup', 'grid', 'javascript'); );
$labelFieldsTypeList = array('dropdown', 'checkbox', 'radiogroup', 'yesno'); $labelFieldsTypeList = array ('dropdown','checkbox','radiogroup','yesno'
);
while ($aRow = $oDataset->getRow()) { while ($aRow = $oDataset->getRow()) {
if (file_exists(PATH_DYNAFORM . PATH_SEP . $aRow['DYN_FILENAME'] . '.xml')) { if (file_exists( PATH_DYNAFORM . PATH_SEP . $aRow['DYN_FILENAME'] . '.xml' )) {
$G_FORM = new Form($aRow['DYN_FILENAME'], PATH_DYNAFORM, SYS_LANG); $G_FORM = new Form( $aRow['DYN_FILENAME'], PATH_DYNAFORM, SYS_LANG );
if ($G_FORM->type == 'xmlform' || $G_FORM->type == '') { if ($G_FORM->type == 'xmlform' || $G_FORM->type == '') {
foreach($G_FORM->fields as $fieldName => $fieldNode) { foreach ($G_FORM->fields as $fieldName => $fieldNode) {
if (!in_array($fieldNode->type, $excludeFieldsList) && !in_array($fieldName, $fieldsNames)) { if (! in_array( $fieldNode->type, $excludeFieldsList ) && ! in_array( $fieldName, $fieldsNames )) {
$fields[] = array('name' => $fieldName, 'type' => $fieldNode->type, 'label'=> $fieldNode->label); $fields[] = array ('name' => $fieldName,'type' => $fieldNode->type,'label' => $fieldNode->label
$fieldsNames[] = $fieldName; );
$fieldsNames[] = $fieldName;
if (in_array($fieldNode->type, $labelFieldsTypeList) && !in_array($fieldName.'_label', $fieldsNames)) { if (in_array( $fieldNode->type, $labelFieldsTypeList ) && ! in_array( $fieldName . '_label', $fieldsNames )) {
$fields[] = array('name' => $fieldName . '_label', 'type' => $fieldNode->type, 'label'=>$fieldNode->label . '_label'); $fields[] = array ('name' => $fieldName . '_label','type' => $fieldNode->type,'label' => $fieldNode->label . '_label'
$fieldsNames[] = $fieldName; );
} $fieldsNames[] = $fieldName;
}
}
}
} }
}
} }
} $oDataset->next();
$oDataset->next();
} }
return $fields; return $fields;
} }
function getGridDynafields($proUid, $gridId) function getGridDynafields ($proUid, $gridId)
{ {
$fields = array(); $fields = array ();
$fieldsNames = array(); $fieldsNames = array ();
$excludeFieldsList = array('title', 'subtitle', 'link', 'file', 'button', 'reset', 'submit', $excludeFieldsList = array ('title','subtitle','link','file','button','reset','submit','listbox','checkgroup','grid','javascript'
'listbox', 'checkgroup', 'grid', 'javascript'); );
$labelFieldsTypeList = array('dropdown', 'checkbox', 'radiogroup', 'yesno'); $labelFieldsTypeList = array ('dropdown','checkbox','radiogroup','yesno'
);
$G_FORM = new Form($proUid . '/' . $gridId, PATH_DYNAFORM, SYS_LANG, false); $G_FORM = new Form( $proUid . '/' . $gridId, PATH_DYNAFORM, SYS_LANG, false );
if ($G_FORM->type == 'grid') { if ($G_FORM->type == 'grid') {
foreach($G_FORM->fields as $fieldName => $fieldNode) { foreach ($G_FORM->fields as $fieldName => $fieldNode) {
if (!in_array($fieldNode->type, $excludeFieldsList) && !in_array($fieldName, $fieldsNames)) { if (! in_array( $fieldNode->type, $excludeFieldsList ) && ! in_array( $fieldName, $fieldsNames )) {
$fields[] = array('name' => $fieldName, 'type' => $fieldNode->type, 'label'=> $fieldNode->label); $fields[] = array ('name' => $fieldName,'type' => $fieldNode->type,'label' => $fieldNode->label
$fieldsNames[] = $fieldName; );
$fieldsNames[] = $fieldName;
if (in_array($fieldNode->type, $labelFieldsTypeList) && !in_array($fieldName.'_label', $fieldsNames)) { if (in_array( $fieldNode->type, $labelFieldsTypeList ) && ! in_array( $fieldName . '_label', $fieldsNames )) {
$fields[] = array('name' => $fieldName . '_label', 'type' => $fieldNode->type, 'label'=>$fieldNode->label . '_label'); $fields[] = array ('name' => $fieldName . '_label','type' => $fieldNode->type,'label' => $fieldNode->label . '_label'
$fieldsNames[] = $fieldName; );
} $fieldsNames[] = $fieldName;
}
}
} }
}
} }
return $fields; return $fields;
} }
function getGridFields($proUid) function getGridFields ($proUid)
{ {
$aFields = array(); $aFields = array ();
$aFieldsNames = array(); $aFieldsNames = array ();
require_once 'classes/model/Dynaform.php'; require_once 'classes/model/Dynaform.php';
$oCriteria = new Criteria('workflow'); $oCriteria = new Criteria( 'workflow' );
$oCriteria->addSelectColumn(DynaformPeer::DYN_FILENAME); $oCriteria->addSelectColumn( DynaformPeer::DYN_FILENAME );
$oCriteria->add(DynaformPeer::PRO_UID, $proUid); $oCriteria->add( DynaformPeer::PRO_UID, $proUid );
$oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset = DynaformPeer::doSelectRS( $oCriteria );
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oDataset->next(); $oDataset->next();
while ($aRow = $oDataset->getRow()) { while ($aRow = $oDataset->getRow()) {
$G_FORM = new Form($aRow['DYN_FILENAME'], PATH_DYNAFORM, SYS_LANG); $G_FORM = new Form( $aRow['DYN_FILENAME'], PATH_DYNAFORM, SYS_LANG );
if ($G_FORM->type == 'xmlform') { if ($G_FORM->type == 'xmlform') {
foreach($G_FORM->fields as $k => $v) { foreach ($G_FORM->fields as $k => $v) {
if ($v->type == 'grid') { if ($v->type == 'grid') {
if (!in_array($k, $aFieldsNames)) { if (! in_array( $k, $aFieldsNames )) {
$aFields[] = array('name' => $k, 'xmlform' => str_replace($proUid . '/', '', $v->xmlGrid)); $aFields[] = array ('name' => $k,'xmlform' => str_replace( $proUid . '/', '', $v->xmlGrid )
$aFieldsNames[] = $k; );
$aFieldsNames[] = $k;
}
}
} }
}
} }
} $oDataset->next();
$oDataset->next();
} }
return $aFields; return $aFields;
} }
function getAllFields($filepath, $includeTypes=array(), $excludeTypes=array()) function getAllFields ($filepath, $includeTypes = array(), $excludeTypes = array())
{ {
$G_FORM = new Form($filepath, PATH_DYNAFORM, SYS_LANG); $G_FORM = new Form( $filepath, PATH_DYNAFORM, SYS_LANG );
$fields = array(); $fields = array ();
$fieldsNames = array(); $fieldsNames = array ();
$labelFieldsTypeList = array('dropdown', 'checkbox', 'radiogroup', 'yesno'); $labelFieldsTypeList = array ('dropdown','checkbox','radiogroup','yesno'
);
if ($G_FORM->type == 'xmlform' || $G_FORM->type == '') { if ($G_FORM->type == 'xmlform' || $G_FORM->type == '') {
foreach($G_FORM->fields as $fieldName => $fieldNode) { foreach ($G_FORM->fields as $fieldName => $fieldNode) {
if (!in_array($fieldNode->type, $excludeTypes)) { if (! in_array( $fieldNode->type, $excludeTypes )) {
continue; continue;
} }
if (count($includeTypes) > 0) { if (count( $includeTypes ) > 0) {
if (in_array($fieldNode->type, $includeTypes) && !in_array($fieldName, $fieldsNames)) { if (in_array( $fieldNode->type, $includeTypes ) && ! in_array( $fieldName, $fieldsNames )) {
$fields[] = array('name' => $fieldName, 'type' => $fieldNode->type, 'label'=> $fieldNode->label); $fields[] = array ('name' => $fieldName,'type' => $fieldNode->type,'label' => $fieldNode->label
$fieldsNames[] = $fieldName; );
$fieldsNames[] = $fieldName;
if (in_array($fieldNode->type, $labelFieldsTypeList) && !in_array($fieldName.'_label', $fieldsNames)) {
$fields[] = array('name' => $fieldName . '_label', 'type' => $fieldNode->type, 'label'=>$fieldNode->label . '_label'); if (in_array( $fieldNode->type, $labelFieldsTypeList ) && ! in_array( $fieldName . '_label', $fieldsNames )) {
$fieldsNames[] = $fieldName; $fields[] = array ('name' => $fieldName . '_label','type' => $fieldNode->type,'label' => $fieldNode->label . '_label'
);
$fieldsNames[] = $fieldName;
}
}
continue;
}
if (! in_array( $fieldName, $fieldsNames )) {
$fields[] = array ('name' => $fieldName,'type' => $fieldNode->type,'label' => $fieldNode->label
);
$fieldsNames[] = $fieldName;
if (in_array( $fieldNode->type, $labelFieldsTypeList ) && ! in_array( $fieldName . '_label', $fieldsNames )) {
$fields[] = array ('name' => $fieldName . '_label','type' => $fieldNode->type,'label' => $fieldNode->label . '_label'
);
$fieldsNames[] = $fieldName;
}
} }
}
continue;
} }
if (!in_array($fieldName, $fieldsNames)) {
$fields[] = array('name' => $fieldName, 'type' => $fieldNode->type, 'label'=> $fieldNode->label);
$fieldsNames[] = $fieldName;
if (in_array($fieldNode->type, $labelFieldsTypeList) && !in_array($fieldName.'_label', $fieldsNames)) {
$fields[] = array('name' => $fieldName . '_label', 'type' => $fieldNode->type, 'label'=>$fieldNode->label . '_label');
$fieldsNames[] = $fieldName;
}
}
}
} }
return $fields; return $fields;
} }

View File

@@ -12,26 +12,26 @@
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/ */
if (($RBAC_Response=$RBAC->userCanAccess("PM_FACTORY"))!=1) return $RBAC_Response; if (($RBAC_Response = $RBAC->userCanAccess( "PM_FACTORY" )) != 1)
G::LoadClass('reportTables'); return $RBAC_Response;
try{ G::LoadClass( 'reportTables' );
try {
$oReportTables = new ReportTables(); $oReportTables = new ReportTables();
$oReportTables->deleteReportTable($_POST['REP_TAB_UID']); $oReportTables->deleteReportTable( $_POST['REP_TAB_UID'] );
$result->success = true; $result->success = true;
$result->msg = G::LoadTranslation('ID_REPORTTABLE_REMOVED'); $result->msg = G::LoadTranslation( 'ID_REPORTTABLE_REMOVED' );
} catch (Exception $e) { } catch (Exception $e) {
$result->success = false; $result->success = false;
$result->msg = $e->getMessage(); $result->msg = $e->getMessage();
} }
print G::json_encode($result); print G::json_encode( $result );
?> ?>

View File

@@ -12,53 +12,50 @@
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/ */
if (($RBAC_Response=$RBAC->userCanAccess("PM_FACTORY"))!=1) return $RBAC_Response; if (($RBAC_Response = $RBAC->userCanAccess( "PM_FACTORY" )) != 1)
G::LoadClass('reportTables'); return $RBAC_Response;
G::LoadClass('xmlfield_InputPM'); G::LoadClass( 'reportTables' );
$aFields['FIELDS'] = array(); G::LoadClass( 'xmlfield_InputPM' );
if (isset($_GET['REP_TAB_UID'])) $aFields['FIELDS'] = array ();
{ if (isset( $_GET['REP_TAB_UID'] )) {
$oReportTable = new ReportTable(); $oReportTable = new ReportTable();
$aFields = $oReportTable->load($_GET['REP_TAB_UID']); $aFields = $oReportTable->load( $_GET['REP_TAB_UID'] );
$aTheFields = getDynaformsVars($aFields['PRO_UID'], false); $aTheFields = getDynaformsVars( $aFields['PRO_UID'], false );
$oReportTables = new ReportTables(); $oReportTables = new ReportTables();
$aVars = $oReportTables->getTableVars($_GET['REP_TAB_UID']); $aVars = $oReportTables->getTableVars( $_GET['REP_TAB_UID'] );
$aFields['FIELDS'] = array(); $aFields['FIELDS'] = array ();
foreach ($aTheFields as $aField) { foreach ($aTheFields as $aField) {
if (in_array($aField['sName'], $aVars)) { if (in_array( $aField['sName'], $aVars )) {
$aFields['FIELDS'][] = $aField['sName'] . '-' . $aField['sType']; $aFields['FIELDS'][] = $aField['sName'] . '-' . $aField['sType'];
}
} }
} } else {
$aFields['PRO_UID'] = $_GET['PRO_UID'];
$aFields['FIELDS'] = array ();
$aTheFields = getDynaformsVars( $aFields['PRO_UID'], false );
} }
else $aProcessFields[] = array ('FIELD_UID' => 'char','FIELD_NAME' => 'char'
{ );
$aFields['PRO_UID'] = $_GET['PRO_UID']; $aTheFields = getDynaformsVars( $aFields['PRO_UID'], false );
$aFields['FIELDS'] = array();
$aTheFields = getDynaformsVars($aFields['PRO_UID'], false);
}
$aProcessFields[] = array('FIELD_UID' => 'char',
'FIELD_NAME' => 'char');
$aTheFields = getDynaformsVars($aFields['PRO_UID'], false);
foreach ($aTheFields as $aField) { foreach ($aTheFields as $aField) {
$aProcessFields[] = array('FIELD_UID' => $aField['sName'] . '-' . $aField['sType'], $aProcessFields[] = array ('FIELD_UID' => $aField['sName'] . '-' . $aField['sType'],'FIELD_NAME' => $aField['sName']
'FIELD_NAME' => $aField['sName']); );
} }
$aProcessGridFields[] = array('FIELD_UID' => 'char', $aProcessGridFields[] = array ('FIELD_UID' => 'char','FIELD_NAME' => 'char'
'FIELD_NAME' => 'char'); );
$aTheFields = getGridsVars($aFields['PRO_UID']); $aTheFields = getGridsVars( $aFields['PRO_UID'] );
foreach ($aTheFields as $aField) { foreach ($aTheFields as $aField) {
$aProcessGridFields[] = array('FIELD_UID' => $aField['sName'] . '-' . $aField['sXmlForm'], $aProcessGridFields[] = array ('FIELD_UID' => $aField['sName'] . '-' . $aField['sXmlForm'],'FIELD_NAME' => $aField['sName']
'FIELD_NAME' => $aField['sName']); );
} }
global $_DBArray; global $_DBArray;
$_DBArray['processFields'] = $aProcessFields; $_DBArray['processFields'] = $aProcessFields;
@@ -67,6 +64,6 @@ $_SESSION['_DBArray'] = $_DBArray;
$aFields['LANG'] = SYS_LANG; $aFields['LANG'] = SYS_LANG;
$G_PUBLISH = new Publisher(); $G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'reportTables/reportTables_Edit', '', $aFields, '../reportTables/reportTables_Save'); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'reportTables/reportTables_Edit', '', $aFields, '../reportTables/reportTables_Save' );
G::RenderPage('publish', 'blank'); G::RenderPage( 'publish', 'blank' );
?> ?>

View File

@@ -12,92 +12,88 @@
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details. * GNU Affero General Public License for more details.
* *
* You should have received a copy of the GNU Affero General Public License * You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* For more information, contact Colosa Inc, 2566 Le Jeune Rd., * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com. * Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/ */
if (($RBAC_Response=$RBAC->userCanAccess("PM_FACTORY"))!=1) return $RBAC_Response; if (($RBAC_Response = $RBAC->userCanAccess( "PM_FACTORY" )) != 1)
return $RBAC_Response;
G::LoadClass('reportTables'); G::LoadClass( 'reportTables' );
if(isset($_POST['form'])) if (isset( $_POST['form'] ))
$values = $_POST['form']; //For Old processmap $values = $_POST['form']; //For Old processmap
else else {
{ $values = $_POST; //For extjs,since we are not using form
$values = $_POST; //For extjs,since we are not using form $values['FIELDS'] = explode( ',', $_POST['FIELDS'] );
$values['FIELDS'] = explode(',',$_POST['FIELDS']);
} }
$oReportTable = new ReportTable(); $oReportTable = new ReportTable();
if (!isset($values['REP_TAB_CONNECTION'])) { if (! isset( $values['REP_TAB_CONNECTION'] )) {
$values['REP_TAB_CONNECTION'] = 'report'; $values['REP_TAB_CONNECTION'] = 'report';
} }
if ($values['REP_TAB_UID'] != '') { if ($values['REP_TAB_UID'] != '') {
$aReportTable = $oReportTable->load($values['REP_TAB_UID']); $aReportTable = $oReportTable->load( $values['REP_TAB_UID'] );
$sOldTableName = $aReportTable['REP_TAB_NAME']; $sOldTableName = $aReportTable['REP_TAB_NAME'];
$sOldConnection = $aReportTable['REP_TAB_CONNECTION']; $sOldConnection = $aReportTable['REP_TAB_CONNECTION'];
} } else {
else { $sOldTableName = $values['REP_TAB_NAME'];
$sOldTableName = $values['REP_TAB_NAME']; $sOldConnection = $values['REP_TAB_CONNECTION'];
$sOldConnection = $values['REP_TAB_CONNECTION']; $oReportTable->create( $values );
$oReportTable->create($values); $values['REP_TAB_UID'] = $oReportTable->getRepTabUid();
$values['REP_TAB_UID'] = $oReportTable->getRepTabUid();
} }
$oReportTable->update($values); $oReportTable->update( $values );
$oReportVar = new ReportVar(); $oReportVar = new ReportVar();
$oReportTables = new ReportTables(); $oReportTables = new ReportTables();
$oReportTables->deleteAllReportVars($values['REP_TAB_UID']); $oReportTables->deleteAllReportVars( $values['REP_TAB_UID'] );
$aFields = array(); $aFields = array ();
if ($values['REP_TAB_TYPE'] == 'GRID') { if ($values['REP_TAB_TYPE'] == 'GRID') {
$aAux = explode('-', $values['REP_TAB_GRID']); $aAux = explode( '-', $values['REP_TAB_GRID'] );
global $G_FORM; global $G_FORM;
$G_FORM = new Form($values['PRO_UID'] . '/' . $aAux[1], PATH_DYNAFORM, SYS_LANG, false); $G_FORM = new Form( $values['PRO_UID'] . '/' . $aAux[1], PATH_DYNAFORM, SYS_LANG, false );
$aAux = $G_FORM->getVars(false); $aAux = $G_FORM->getVars( false );
foreach ($aAux as $aField) { foreach ($aAux as $aField) {
$values['FIELDS'][] = $aField['sName'] . '-' . $aField['sType']; $values['FIELDS'][] = $aField['sName'] . '-' . $aField['sType'];
} }
} }
foreach ($values['FIELDS'] as $sField) { foreach ($values['FIELDS'] as $sField) {
$aField = explode('-', $sField); $aField = explode( '-', $sField );
switch ($aField[1]) { switch ($aField[1]) {
case 'currency': case 'currency':
case 'percentage': case 'percentage':
$sType = 'number'; $sType = 'number';
break; break;
case 'text': case 'text':
case 'password': case 'password':
case 'dropdown': case 'dropdown':
case 'yesno': case 'yesno':
case 'checkbox': case 'checkbox':
case 'radiogroup': case 'radiogroup':
case 'hidden': case 'hidden':
$sType = 'char'; $sType = 'char';
break; break;
case 'textarea': case 'textarea':
$sType = 'text'; $sType = 'text';
break; break;
case 'date': case 'date':
$sType = 'date'; $sType = 'date';
break; break;
default: default:
$sType = 'char'; $sType = 'char';
break; break;
} }
$oReportVar->create(array('REP_TAB_UID' => $values['REP_TAB_UID'], $oReportVar->create( array ('REP_TAB_UID' => $values['REP_TAB_UID'],'PRO_UID' => $values['PRO_UID'],'REP_VAR_NAME' => $aField[0],'REP_VAR_TYPE' => $sType
'PRO_UID' => $values['PRO_UID'], ) );
'REP_VAR_NAME' => $aField[0], $aFields[] = array ('sFieldName' => $aField[0],'sType' => $sType
'REP_VAR_TYPE' => $sType)); );
$aFields[] = array('sFieldName' => $aField[0], 'sType' => $sType);
} }
$oReportTables->dropTable($sOldTableName, $sOldConnection); $oReportTables->dropTable( $sOldTableName, $sOldConnection );
$oReportTables->createTable($values['REP_TAB_NAME'], $values['REP_TAB_CONNECTION'], $values['REP_TAB_TYPE'], $aFields); $oReportTables->createTable( $values['REP_TAB_NAME'], $values['REP_TAB_CONNECTION'], $values['REP_TAB_TYPE'], $aFields );
$oReportTables->populateTable($values['REP_TAB_NAME'], $values['REP_TAB_CONNECTION'], $values['REP_TAB_TYPE'], $aFields, $values['PRO_UID'], $values['REP_TAB_GRID']); $oReportTables->populateTable( $values['REP_TAB_NAME'], $values['REP_TAB_CONNECTION'], $values['REP_TAB_TYPE'], $aFields, $values['PRO_UID'], $values['REP_TAB_GRID'] );
?> ?>