2010-12-02 23:34:41 +00:00
|
|
|
|
<?php
|
|
|
|
|
|
/**
|
|
|
|
|
|
* class.reportTables.php
|
2012-10-09 13:21:00 -04:00
|
|
|
|
*
|
2011-02-01 12:49:40 +00:00
|
|
|
|
* @package workflow.engine.ProcessMaker
|
2010-12-02 23:34:41 +00:00
|
|
|
|
*
|
|
|
|
|
|
* ProcessMaker Open Source Edition
|
2011-02-01 12:49:40 +00:00
|
|
|
|
* Copyright (C) 2004 - 2011 Colosa Inc.
|
2010-12-02 23:34:41 +00:00
|
|
|
|
*
|
|
|
|
|
|
* This program is free software: you can redistribute it and/or modify
|
|
|
|
|
|
* it under the terms of the GNU Affero General Public License as
|
|
|
|
|
|
* published by the Free Software Foundation, either version 3 of the
|
|
|
|
|
|
* License, or (at your option) any later version.
|
|
|
|
|
|
*
|
|
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
2012-10-09 13:21:00 -04:00
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
2010-12-02 23:34:41 +00:00
|
|
|
|
* GNU Affero General Public License for more details.
|
|
|
|
|
|
*
|
|
|
|
|
|
* You should have received a copy of the GNU Affero General Public License
|
2012-10-09 13:21:00 -04:00
|
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
2010-12-02 23:34:41 +00:00
|
|
|
|
*
|
|
|
|
|
|
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
|
|
|
|
|
|
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
|
|
|
|
|
|
*
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
2012-10-09 13:21:00 -04:00
|
|
|
|
G::LoadClass( 'case' );
|
2010-12-02 23:34:41 +00:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* ReportTables - Report tables class
|
2012-10-09 13:21:00 -04:00
|
|
|
|
*
|
2011-02-01 12:49:40 +00:00
|
|
|
|
* @package workflow.engine.ProcessMaker
|
2011-01-22 12:20:08 +00:00
|
|
|
|
* @author Julio Cesar Laura Avenda<EFBFBD>o
|
2010-12-02 23:34:41 +00:00
|
|
|
|
* @copyright 2007 COLOSA
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
2011-04-01 18:00:09 -04:00
|
|
|
|
class ReportTables
|
2010-12-02 23:34:41 +00:00
|
|
|
|
{
|
2012-10-09 13:21:00 -04:00
|
|
|
|
private $aDef = array ('mysql' => array ('number' => 'DOUBLE','char' => 'VARCHAR(255)','text' => 'TEXT','date' => 'DATETIME'
|
|
|
|
|
|
),'pgsql' => array ('number' => 'DOUBLE','char' => 'VARCHAR(255)','text' => 'TEXT','date' => 'DATETIME'
|
|
|
|
|
|
),'mssql' => array ('number' => 'FLOAT','char' => 'NVARCHAR(255)','text' => 'TEXT','date' => 'CHAR(19)'
|
2012-10-22 17:09:37 -04:00
|
|
|
|
) /* Changed DATETIME CHAR(19) for compatibility issues. */ );
|
2012-10-09 13:21:00 -04:00
|
|
|
|
//private $sPrefix = 'REP_';
|
|
|
|
|
|
private $sPrefix = '';
|
2011-01-10 15:57:48 +00:00
|
|
|
|
|
2012-10-09 13:21:00 -04:00
|
|
|
|
/**
|
|
|
|
|
|
* Function deleteAllReportVars
|
|
|
|
|
|
* This function delete all reports
|
|
|
|
|
|
*
|
|
|
|
|
|
* @access public
|
|
|
|
|
|
* @param string $$sRepTabUid
|
|
|
|
|
|
* @return void
|
|
|
|
|
|
*/
|
2012-10-09 14:04:17 -04:00
|
|
|
|
public function deleteAllReportVars ($sRepTabUid = '')
|
2012-10-09 13:21:00 -04:00
|
|
|
|
{
|
|
|
|
|
|
try {
|
|
|
|
|
|
$oCriteria = new Criteria( 'workflow' );
|
|
|
|
|
|
$oCriteria->add( ReportVarPeer::REP_TAB_UID, $sRepTabUid );
|
|
|
|
|
|
ReportVarPeer::doDelete( $oCriteria );
|
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
throw ($oError);
|
|
|
|
|
|
}
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Function prepareQuery
|
|
|
|
|
|
* This function removes the table
|
|
|
|
|
|
*
|
|
|
|
|
|
* @access public
|
|
|
|
|
|
* @param string $sTableName Table name
|
|
|
|
|
|
* @param string $sConnection Conexion
|
|
|
|
|
|
* @return void
|
|
|
|
|
|
*/
|
|
|
|
|
|
public function dropTable ($sTableName, $sConnection = 'report')
|
|
|
|
|
|
{
|
|
|
|
|
|
$sTableName = $this->sPrefix . $sTableName;
|
|
|
|
|
|
//we have to do the propel connection
|
|
|
|
|
|
$PropelDatabase = $this->chooseDB( $sConnection );
|
|
|
|
|
|
$con = Propel::getConnection( $PropelDatabase );
|
|
|
|
|
|
$stmt = $con->createStatement();
|
|
|
|
|
|
try {
|
|
|
|
|
|
switch (DB_ADAPTER) {
|
|
|
|
|
|
case 'mysql':
|
|
|
|
|
|
$rs = $stmt->executeQuery( 'DROP TABLE IF EXISTS `' . $sTableName . '`' );
|
2010-12-02 23:34:41 +00:00
|
|
|
|
break;
|
2012-10-09 13:21:00 -04:00
|
|
|
|
case 'mssql':
|
|
|
|
|
|
$rs = $stmt->executeQuery( "IF OBJECT_ID (N'" . $sTableName . "', N'U') IS NOT NULL
|
|
|
|
|
|
DROP TABLE [" . $sTableName . "]" );
|
2010-12-02 23:34:41 +00:00
|
|
|
|
break;
|
|
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
throw ($oError);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Function createTable
|
|
|
|
|
|
* This Function creates the table
|
|
|
|
|
|
*
|
|
|
|
|
|
* @access public
|
|
|
|
|
|
* @param string $sTableName Table name
|
|
|
|
|
|
* @param string $sConnection Connection name
|
|
|
|
|
|
* @param string $sType
|
|
|
|
|
|
* @param array $aFields
|
|
|
|
|
|
* @param string $bDefaultFields
|
|
|
|
|
|
* @return void
|
|
|
|
|
|
*/
|
|
|
|
|
|
public function createTable ($sTableName, $sConnection = 'report', $sType = 'NORMAL', $aFields = array(), $bDefaultFields = true)
|
|
|
|
|
|
{
|
|
|
|
|
|
$sTableName = $this->sPrefix . $sTableName;
|
|
|
|
|
|
//we have to do the propel connection
|
|
|
|
|
|
$PropelDatabase = $this->chooseDB( $sConnection );
|
|
|
|
|
|
$con = Propel::getConnection( $PropelDatabase );
|
|
|
|
|
|
$stmt = $con->createStatement();
|
|
|
|
|
|
try {
|
|
|
|
|
|
switch (DB_ADAPTER) {
|
|
|
|
|
|
case 'mysql':
|
|
|
|
|
|
$sQuery = 'CREATE TABLE IF NOT EXISTS `' . $sTableName . '` (';
|
|
|
|
|
|
if ($bDefaultFields) {
|
|
|
|
|
|
$sQuery .= "`APP_UID` VARCHAR(32) NOT NULL DEFAULT '',`APP_NUMBER` INT NOT NULL,";
|
|
|
|
|
|
if ($sType == 'GRID') {
|
|
|
|
|
|
$sQuery .= "`ROW` INT NOT NULL,";
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2010-12-24 14:25:35 +00:00
|
|
|
|
foreach ($aFields as $aField) {
|
2012-10-09 13:21:00 -04:00
|
|
|
|
switch ($aField['sType']) {
|
|
|
|
|
|
case 'number':
|
|
|
|
|
|
$sQuery .= '`' . $aField['sFieldName'] . '` ' . $this->aDef['mysql'][$aField['sType']] . " NOT NULL DEFAULT '0',";
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'char':
|
|
|
|
|
|
$sQuery .= '`' . $aField['sFieldName'] . '` ' . $this->aDef['mysql'][$aField['sType']] . " NOT NULL DEFAULT '',";
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'text':
|
|
|
|
|
|
$sQuery .= '`' . $aField['sFieldName'] . '` ' . $this->aDef['mysql'][$aField['sType']] . " ,";
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'date':
|
|
|
|
|
|
$sQuery .= '`' . $aField['sFieldName'] . '` ' . $this->aDef['mysql'][$aField['sType']] . " NULL,";
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if ($bDefaultFields) {
|
|
|
|
|
|
$sQuery .= 'PRIMARY KEY (APP_UID' . ($sType == 'GRID' ? ',ROW' : '') . ')) ';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ' DEFAULT CHARSET=utf8;';
|
|
|
|
|
|
$rs = $stmt->executeQuery( $sQuery );
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'mssql':
|
|
|
|
|
|
$sQuery = 'CREATE TABLE [' . $sTableName . '] (';
|
|
|
|
|
|
if ($bDefaultFields) {
|
|
|
|
|
|
$sQuery .= "[APP_UID] VARCHAR(32) NOT NULL DEFAULT '', [APP_NUMBER] INT NOT NULL,";
|
|
|
|
|
|
if ($sType == 'GRID') {
|
|
|
|
|
|
$sQuery .= "[ROW] INT NOT NULL,";
|
|
|
|
|
|
}
|
2010-12-24 14:25:35 +00:00
|
|
|
|
}
|
|
|
|
|
|
foreach ($aFields as $aField) {
|
2012-10-09 13:21:00 -04:00
|
|
|
|
switch ($aField['sType']) {
|
|
|
|
|
|
case 'number':
|
|
|
|
|
|
$sQuery .= '[' . $aField['sFieldName'] . '] ' . $this->aDef['mssql'][$aField['sType']] . " NOT NULL DEFAULT '0',";
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'char':
|
|
|
|
|
|
$sQuery .= '[' . $aField['sFieldName'] . '] ' . $this->aDef['mssql'][$aField['sType']] . " NOT NULL DEFAULT '',";
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'text':
|
|
|
|
|
|
$sQuery .= '[' . $aField['sFieldName'] . '] ' . $this->aDef['mssql'][$aField['sType']] . " NOT NULL DEFAULT '',";
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'date':
|
|
|
|
|
|
$sQuery .= '[' . $aField['sFieldName'] . '] ' . $this->aDef['mssql'][$aField['sType']] . " NULL,";
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if ($bDefaultFields) {
|
|
|
|
|
|
$sQuery .= 'PRIMARY KEY (APP_UID' . ($sType == 'GRID' ? ',ROW' : '') . ')) ';
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$sQuery .= ' ';
|
2010-12-24 14:25:35 +00:00
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
|
2010-12-24 14:25:35 +00:00
|
|
|
|
$rs = $stmt->executeQuery( $sQuery );
|
2012-10-09 13:21:00 -04:00
|
|
|
|
break;
|
|
|
|
|
|
|
2010-12-24 14:25:35 +00:00
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
throw ($oError);
|
|
|
|
|
|
}
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Function populateTable
|
|
|
|
|
|
* This Function fills the table
|
|
|
|
|
|
*
|
|
|
|
|
|
* @access public
|
|
|
|
|
|
* @param string $sTableName Table name
|
|
|
|
|
|
* @param string $sConnection Connection name
|
|
|
|
|
|
* @param string $sType
|
|
|
|
|
|
* @param array $aFields
|
|
|
|
|
|
* @param string $sProcessUid
|
|
|
|
|
|
* @param string $sGrid
|
|
|
|
|
|
* @return void
|
|
|
|
|
|
*/
|
|
|
|
|
|
public function populateTable ($sTableName, $sConnection = 'report', $sType = 'NORMAL', $aFields = array(), $sProcessUid = '', $sGrid = '')
|
|
|
|
|
|
{
|
|
|
|
|
|
$sTableName = $this->sPrefix . $sTableName;
|
|
|
|
|
|
//we have to do the propel connection
|
|
|
|
|
|
$PropelDatabase = $this->chooseDB( $sConnection );
|
|
|
|
|
|
$con = Propel::getConnection( $PropelDatabase );
|
|
|
|
|
|
$stmt = $con->createStatement();
|
|
|
|
|
|
if ($sType == 'GRID') {
|
|
|
|
|
|
$aAux = explode( '-', $sGrid );
|
|
|
|
|
|
$sGrid = $aAux[0];
|
|
|
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
|
|
|
switch (DB_ADAPTER) {
|
|
|
|
|
|
case 'mysql':
|
|
|
|
|
|
//select cases for this Process, ordered by APP_NUMBER
|
|
|
|
|
|
$oCriteria = new Criteria( 'workflow' );
|
|
|
|
|
|
$oCriteria->add( ApplicationPeer::PRO_UID, $sProcessUid );
|
|
|
|
|
|
$oCriteria->addAscendingOrderByColumn( ApplicationPeer::APP_NUMBER );
|
|
|
|
|
|
$oDataset = ApplicationPeer::doSelectRS( $oCriteria );
|
|
|
|
|
|
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
|
while ($aRow = $oDataset->getRow()) {
|
|
|
|
|
|
$aData = unserialize( $aRow['APP_DATA'] );
|
|
|
|
|
|
//delete previous record from this report table ( previous records in case this is a grid )
|
|
|
|
|
|
$deleteSql = 'DELETE FROM `' . $sTableName . "` WHERE APP_UID = '" . $aRow['APP_UID'] . "'";
|
|
|
|
|
|
$rsDel = $stmt->executeQuery( $deleteSql );
|
|
|
|
|
|
if ($sType == 'NORMAL') {
|
|
|
|
|
|
$sQuery = 'INSERT INTO `' . $sTableName . '` (';
|
|
|
|
|
|
$sQuery .= '`APP_UID`,`APP_NUMBER`';
|
|
|
|
|
|
foreach ($aFields as $aField) {
|
|
|
|
|
|
$sQuery .= ',`' . $aField['sFieldName'] . '`';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ") VALUES ('" . $aRow['APP_UID'] . "'," . (int) $aRow['APP_NUMBER'];
|
|
|
|
|
|
foreach ($aFields as $aField) {
|
|
|
|
|
|
switch ($aField['sType']) {
|
|
|
|
|
|
case 'number':
|
|
|
|
|
|
$sQuery .= ',' . (isset( $aData[$aField['sFieldName']] ) ? (float) str_replace( ',', '', $aData[$aField['sFieldName']] ) : '0');
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'char':
|
|
|
|
|
|
case 'text':
|
|
|
|
|
|
if (! isset( $aData[$aField['sFieldName']] )) {
|
|
|
|
|
|
$aData[$aField['sFieldName']] = '';
|
|
|
|
|
|
}
|
2015-09-02 13:05:13 -04:00
|
|
|
|
$sQuery .= ",'" . (isset( $aData[$aField['sFieldName']] ) ? @mysql_real_escape_string( $aData[$aField['sFieldName']] ) : '') . "'";
|
2012-10-09 13:21:00 -04:00
|
|
|
|
break;
|
|
|
|
|
|
case 'date':
|
|
|
|
|
|
$value = (isset( $aData[$aField['sFieldName']] ) && trim( $aData[$aField['sFieldName']] )) != '' ? "'" . $aData[$aField['sFieldName']] . "'" : 'NULL';
|
|
|
|
|
|
$sQuery .= "," . $value;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ')';
|
|
|
|
|
|
$rs = $stmt->executeQuery( $sQuery );
|
|
|
|
|
|
} else {
|
|
|
|
|
|
if (isset( $aData[$sGrid] )) {
|
|
|
|
|
|
foreach ($aData[$sGrid] as $iRow => $aGridRow) {
|
|
|
|
|
|
$sQuery = 'INSERT INTO `' . $sTableName . '` (';
|
|
|
|
|
|
$sQuery .= '`APP_UID`,`APP_NUMBER`,`ROW`';
|
|
|
|
|
|
foreach ($aFields as $aField) {
|
|
|
|
|
|
$sQuery .= ',`' . $aField['sFieldName'] . '`';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ") VALUES ('" . $aRow['APP_UID'] . "'," . (int) $aRow['APP_NUMBER'] . ',' . $iRow;
|
|
|
|
|
|
foreach ($aFields as $aField) {
|
|
|
|
|
|
switch ($aField['sType']) {
|
|
|
|
|
|
case 'number':
|
|
|
|
|
|
$sQuery .= ',' . (isset( $aGridRow[$aField['sFieldName']] ) ? (float) str_replace( ',', '', $aGridRow[$aField['sFieldName']] ) : '0');
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'char':
|
|
|
|
|
|
case 'text':
|
|
|
|
|
|
if (! isset( $aGridRow[$aField['sFieldName']] )) {
|
|
|
|
|
|
$aGridRow[$aField['sFieldName']] = '';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ",'" . (isset( $aGridRow[$aField['sFieldName']] ) ? mysql_real_escape_string( $aGridRow[$aField['sFieldName']] ) : '') . "'";
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'date':
|
|
|
|
|
|
$value = (isset( $aGridRow[$aField['sFieldName']] ) && trim( $aGridRow[$aField['sFieldName']] )) != '' ? "'" . $aGridRow[$aField['sFieldName']] . "'" : 'NULL';
|
|
|
|
|
|
$sQuery .= "," . $value;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ')';
|
|
|
|
|
|
$rs = $stmt->executeQuery( $sQuery );
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* For SQLServer code
|
|
|
|
|
|
*/
|
|
|
|
|
|
case 'mssql':
|
|
|
|
|
|
$oCriteria = new Criteria( 'workflow' );
|
|
|
|
|
|
$oCriteria->add( ApplicationPeer::PRO_UID, $sProcessUid );
|
|
|
|
|
|
$oCriteria->addAscendingOrderByColumn( ApplicationPeer::APP_NUMBER );
|
|
|
|
|
|
$oDataset = ApplicationPeer::doSelectRS( $oCriteria );
|
|
|
|
|
|
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
|
while ($aRow = $oDataset->getRow()) {
|
|
|
|
|
|
$aData = unserialize( $aRow['APP_DATA'] );
|
|
|
|
|
|
mysql_query( 'DELETE FROM [' . $sTableName . "] WHERE APP_UID = '" . $aRow['APP_UID'] . "'" );
|
|
|
|
|
|
if ($sType == 'NORMAL') {
|
|
|
|
|
|
$sQuery = 'INSERT INTO [' . $sTableName . '] (';
|
|
|
|
|
|
$sQuery .= '[APP_UID],[APP_NUMBER]';
|
|
|
|
|
|
foreach ($aFields as $aField) {
|
|
|
|
|
|
$sQuery .= ',[' . $aField['sFieldName'] . ']';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ") VALUES ('" . $aRow['APP_UID'] . "'," . (int) $aRow['APP_NUMBER'];
|
|
|
|
|
|
foreach ($aFields as $aField) {
|
|
|
|
|
|
switch ($aField['sType']) {
|
|
|
|
|
|
case 'number':
|
|
|
|
|
|
$sQuery .= ',' . (isset( $aData[$aField['sFieldName']] ) ? (float) str_replace( ',', '', $aData[$aField['sFieldName']] ) : '0');
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'char':
|
|
|
|
|
|
case 'text':
|
|
|
|
|
|
if (! isset( $aData[$aField['sFieldName']] )) {
|
|
|
|
|
|
$aData[$aField['sFieldName']] = '';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ",'" . (isset( $aData[$aField['sFieldName']] ) ? mysql_real_escape_string( $aData[$aField['sFieldName']] ) : '') . "'";
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'date':
|
|
|
|
|
|
$sQuery .= ",'" . (isset( $aData[$aField['sFieldName']] ) ? $aData[$aField['sFieldName']] : '') . "'";
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ')';
|
|
|
|
|
|
$rs = $stmt->executeQuery( $sQuery );
|
|
|
|
|
|
} else {
|
|
|
|
|
|
if (isset( $aData[$sGrid] )) {
|
|
|
|
|
|
foreach ($aData[$sGrid] as $iRow => $aGridRow) {
|
|
|
|
|
|
$sQuery = 'INSERT INTO [' . $sTableName . '] (';
|
|
|
|
|
|
$sQuery .= '`APP_UID`,`APP_NUMBER`,`ROW`';
|
|
|
|
|
|
foreach ($aFields as $aField) {
|
|
|
|
|
|
$sQuery .= ',[' . $aField['sFieldName'] . ']';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ") VALUES ('" . $aRow['APP_UID'] . "'," . (int) $aRow['APP_NUMBER'] . ',' . $iRow;
|
|
|
|
|
|
foreach ($aFields as $aField) {
|
|
|
|
|
|
switch ($aField['sType']) {
|
|
|
|
|
|
case 'number':
|
|
|
|
|
|
$sQuery .= ',' . (isset( $aGridRow[$aField['sFieldName']] ) ? (float) str_replace( ',', '', $aGridRow[$aField['sFieldName']] ) : '0');
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'char':
|
|
|
|
|
|
case 'text':
|
|
|
|
|
|
if (! isset( $aGridRow[$aField['sFieldName']] )) {
|
|
|
|
|
|
$aGridRow[$aField['sFieldName']] = '';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ",'" . (isset( $aGridRow[$aField['sFieldName']] ) ? mysql_real_escape_string( $aGridRow[$aField['sFieldName']] ) : '') . "'";
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'date':
|
|
|
|
|
|
$sQuery .= ",'" . (isset( $aGridRow[$aField['sFieldName']] ) ? $aGridRow[$aField['sFieldName']] : '') . "'";
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ')';
|
|
|
|
|
|
$rs = $stmt->executeQuery( $sQuery );
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
throw ($oError);
|
|
|
|
|
|
}
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Function getTableVars
|
|
|
|
|
|
*
|
|
|
|
|
|
* @access public
|
|
|
|
|
|
* @param string $sRepTabUid
|
|
|
|
|
|
* @param boolean $bWhitType
|
|
|
|
|
|
* @return void
|
|
|
|
|
|
*/
|
|
|
|
|
|
public function getTableVars ($sRepTabUid, $bWhitType = false)
|
|
|
|
|
|
{
|
|
|
|
|
|
try {
|
|
|
|
|
|
$oCriteria = new Criteria( 'workflow' );
|
|
|
|
|
|
$oCriteria->add( ReportVarPeer::REP_TAB_UID, $sRepTabUid );
|
|
|
|
|
|
$oDataset = ReportVarPeer::doSelectRS( $oCriteria );
|
|
|
|
|
|
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
|
$aVars = array ();
|
|
|
|
|
|
$aImportedVars = array (); //This array will help to control if the variable already exist
|
|
|
|
|
|
while ($aRow = $oDataset->getRow()) {
|
|
|
|
|
|
if ($bWhitType) {
|
|
|
|
|
|
if (! in_array( $aRow['REP_VAR_NAME'], $aImportedVars )) {
|
|
|
|
|
|
$aImportedVars[] = $aRow['REP_VAR_NAME'];
|
|
|
|
|
|
$aVars[] = array ('sFieldName' => $aRow['REP_VAR_NAME'],'sType' => $aRow['REP_VAR_TYPE']
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$aVars[] = $aRow['REP_VAR_NAME'];
|
2011-04-01 18:00:09 -04:00
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
$oDataset->next();
|
2011-04-01 18:00:09 -04:00
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
return $aVars;
|
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
throw ($oError);
|
|
|
|
|
|
}
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Function deleteReportTable
|
|
|
|
|
|
* This Function deletes report table
|
|
|
|
|
|
*
|
|
|
|
|
|
* @access public
|
|
|
|
|
|
* @param string $sRepTabUid
|
|
|
|
|
|
* @return void
|
|
|
|
|
|
*/
|
|
|
|
|
|
public function deleteReportTable ($sRepTabUid)
|
|
|
|
|
|
{
|
|
|
|
|
|
try {
|
|
|
|
|
|
$oReportTable = new ReportTable();
|
|
|
|
|
|
$aFields = $oReportTable->load( $sRepTabUid );
|
|
|
|
|
|
if (! (empty( $aFields ))) {
|
|
|
|
|
|
$this->dropTable( $aFields['REP_TAB_NAME'], $aFields['REP_TAB_CONNECTION'] );
|
|
|
|
|
|
$oCriteria = new Criteria( 'workflow' );
|
|
|
|
|
|
$oCriteria->add( ReportVarPeer::REP_TAB_UID, $sRepTabUid );
|
|
|
|
|
|
$oDataset = ReportVarPeer::doDelete( $oCriteria );
|
|
|
|
|
|
$oReportTable->remove( $sRepTabUid );
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
throw ($oError);
|
|
|
|
|
|
}
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2012-10-09 13:21:00 -04:00
|
|
|
|
/**
|
|
|
|
|
|
* Function getSplitDate
|
|
|
|
|
|
* This function gets the split date
|
|
|
|
|
|
*
|
|
|
|
|
|
* @access public
|
|
|
|
|
|
* @param date $date
|
|
|
|
|
|
* @param string $mask
|
|
|
|
|
|
* @return array
|
|
|
|
|
|
*/
|
|
|
|
|
|
public function getSplitDate ($date, $mask)
|
|
|
|
|
|
{
|
|
|
|
|
|
$sw1 = false;
|
|
|
|
|
|
for ($i = 0; $i < 3; $i ++) {
|
|
|
|
|
|
$item = substr( $mask, $i * 2, 1 );
|
|
|
|
|
|
switch ($item) {
|
|
|
|
|
|
case 'Y':
|
|
|
|
|
|
switch ($i) {
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
$d1 = substr( $date, 0, 4 );
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
$d1 = substr( $date, 3, 4 );
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
$d1 = substr( $date, 6, 4 );
|
|
|
|
|
|
break;
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
$sw1 = true;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'y':
|
|
|
|
|
|
switch ($i) {
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
$d1 = substr( $date, 0, 2 );
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
$d1 = substr( $date, 3, 2 );
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
$d1 = substr( $date, 6, 2 );
|
|
|
|
|
|
break;
|
2011-02-11 23:13:54 +00:00
|
|
|
|
}
|
2010-12-02 23:34:41 +00:00
|
|
|
|
break;
|
2012-10-09 13:21:00 -04:00
|
|
|
|
case 'm':
|
|
|
|
|
|
switch ($i) {
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
$d2 = substr( $date, 0, 2 );
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
$d2 = ($sw1) ? substr( $date, 5, 2 ) : substr( $date, 3, 2 );
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
$d2 = ($sw1) ? substr( $date, 8, 2 ) : substr( $date, 5, 2 );
|
|
|
|
|
|
break;
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
|
|
|
|
|
break;
|
2012-10-09 13:21:00 -04:00
|
|
|
|
case 'd':
|
|
|
|
|
|
switch ($i) {
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
$d3 = substr( $date, 0, 2 );
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
$d3 = ($sw1) ? substr( $date, 5, 2 ) : substr( $date, 3, 2 );
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
$d3 = ($sw1) ? substr( $date, 8, 2 ) : substr( $date, 5, 2 );
|
|
|
|
|
|
break;
|
2011-02-11 23:13:54 +00:00
|
|
|
|
}
|
2010-12-02 23:34:41 +00:00
|
|
|
|
break;
|
|
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
}
|
|
|
|
|
|
return Array (isset( $d1 ) ? $d1 : '',isset( $d2 ) ? $d2 : '',isset( $d3 ) ? $d3 : ''
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
2010-12-02 23:34:41 +00:00
|
|
|
|
|
2012-10-09 13:21:00 -04:00
|
|
|
|
/**
|
|
|
|
|
|
* Function getFormatDate
|
|
|
|
|
|
* This function returns the date formated
|
|
|
|
|
|
*
|
|
|
|
|
|
* @access public
|
|
|
|
|
|
* @param date $sDate
|
|
|
|
|
|
* @param date $sMask
|
|
|
|
|
|
* @return date
|
|
|
|
|
|
*/
|
|
|
|
|
|
public function getFormatDate ($sDate, $sMask)
|
|
|
|
|
|
{
|
|
|
|
|
|
//print $sDate." *** ". $sMask."<BR>";
|
|
|
|
|
|
$dateTime = explode( " ", $sDate ); //To accept the Hour part
|
|
|
|
|
|
$aDate = explode( '-', str_replace( "/", "-", $dateTime[0] ) );
|
|
|
|
|
|
$bResult = true;
|
|
|
|
|
|
foreach ($aDate as $sDate) {
|
|
|
|
|
|
if (! is_numeric( $sDate )) {
|
|
|
|
|
|
$bResult = false;
|
|
|
|
|
|
break;
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
}
|
|
|
|
|
|
if ($sMask != '') {
|
|
|
|
|
|
$aDate = $this->getSplitDate( $dateTime[0], $sMask );
|
|
|
|
|
|
$aDate[0] = ($aDate[0] == '') ? date( 'Y' ) : $aDate[0];
|
|
|
|
|
|
$aDate[1] = ($aDate[1] == '') ? date( 'm' ) : $aDate[1];
|
|
|
|
|
|
$aDate[2] = ($aDate[2] == '') ? date( 'd' ) : $aDate[2];
|
|
|
|
|
|
if (checkdate( $aDate[1], $aDate[2], $aDate[0] )) {
|
|
|
|
|
|
} else {
|
|
|
|
|
|
return false;
|
2010-12-24 14:25:35 +00:00
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
}
|
|
|
|
|
|
$sDateC = '';
|
|
|
|
|
|
for ($i = 0; $i < count( $aDate ); $i ++) {
|
|
|
|
|
|
$sDateC .= (($i == 0) ? "" : "-") . $aDate[$i];
|
|
|
|
|
|
}
|
|
|
|
|
|
return ($sDateC);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Function updateTables
|
|
|
|
|
|
* This function updated the Report Tables
|
|
|
|
|
|
*
|
|
|
|
|
|
* @access public
|
|
|
|
|
|
* @param string $sProcessUid
|
|
|
|
|
|
* @param string $sApplicationUid
|
|
|
|
|
|
* @param string $iApplicationNumber
|
|
|
|
|
|
* @param string $aFields
|
|
|
|
|
|
* @return void
|
|
|
|
|
|
*/
|
|
|
|
|
|
public function updateTables ($sProcessUid, $sApplicationUid, $iApplicationNumber, $aFields)
|
|
|
|
|
|
{
|
|
|
|
|
|
try {
|
2013-03-20 10:45:53 -04:00
|
|
|
|
if (!class_exists('ReportTablePeer')) {
|
|
|
|
|
|
require_once 'classes/model/ReportTablePeer.php';
|
|
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
//get all Active Report Tables
|
|
|
|
|
|
$oCriteria = new Criteria( 'workflow' );
|
|
|
|
|
|
$oCriteria->add( ReportTablePeer::PRO_UID, $sProcessUid );
|
|
|
|
|
|
$oCriteria->add( ReportTablePeer::REP_TAB_STATUS, 'ACTIVE' );
|
|
|
|
|
|
$oDataset = ReportTablePeer::doSelectRS( $oCriteria );
|
|
|
|
|
|
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
|
|
|
|
|
$oDataset->next();
|
|
|
|
|
|
$aVars = array ();
|
|
|
|
|
|
while ($aRow = $oDataset->getRow()) {
|
|
|
|
|
|
$aRow['REP_TAB_NAME'] = $this->sPrefix . $aRow['REP_TAB_NAME'];
|
|
|
|
|
|
$PropelDatabase = $this->chooseDB( $aRow['REP_TAB_CONNECTION'] );
|
|
|
|
|
|
$con = Propel::getConnection( $PropelDatabase );
|
|
|
|
|
|
$stmt = $con->createStatement();
|
|
|
|
|
|
switch (DB_ADAPTER) {
|
|
|
|
|
|
case 'mysql':
|
|
|
|
|
|
$aTableFields = $this->getTableVars( $aRow['REP_TAB_UID'], true );
|
|
|
|
|
|
if ($aRow['REP_TAB_TYPE'] == 'NORMAL') {
|
|
|
|
|
|
$sqlExists = "SELECT * FROM `" . $aRow['REP_TAB_NAME'] . "` WHERE APP_UID = '" . $sApplicationUid . "'";
|
|
|
|
|
|
$rsExists = $stmt->executeQuery( $sqlExists, ResultSet::FETCHMODE_ASSOC );
|
|
|
|
|
|
$rsExists->next();
|
|
|
|
|
|
$aRow2 = $rsExists->getRow();
|
|
|
|
|
|
|
|
|
|
|
|
if (is_array( $aRow2 )) {
|
|
|
|
|
|
$sQuery = 'UPDATE `' . $aRow['REP_TAB_NAME'] . '` SET ';
|
|
|
|
|
|
foreach ($aTableFields as $aField) {
|
|
|
|
|
|
$sQuery .= '`' . $aField['sFieldName'] . '` = ';
|
2015-06-16 10:53:07 -04:00
|
|
|
|
|
|
|
|
|
|
if(!isset($aFields[$aField['sFieldName']])){
|
|
|
|
|
|
foreach($aFields as $row){
|
2015-09-02 13:05:13 -04:00
|
|
|
|
if(is_array($row) && isset($row[count($row)])){
|
2015-06-16 10:53:07 -04:00
|
|
|
|
$aFields = $row[count($row)];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2012-10-09 13:21:00 -04:00
|
|
|
|
switch ($aField['sType']) {
|
|
|
|
|
|
case 'number':
|
|
|
|
|
|
$sQuery .= (isset( $aFields[$aField['sFieldName']] ) ? (float) str_replace( ',', '', $aFields[$aField['sFieldName']] ) : '0') . ',';
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'char':
|
|
|
|
|
|
case 'text':
|
|
|
|
|
|
if (! isset( $aFields[$aField['sFieldName']] )) {
|
|
|
|
|
|
$aFields[$aField['sFieldName']] = '';
|
2015-09-02 13:05:13 -04:00
|
|
|
|
}
|
2015-09-02 13:05:13 -04:00
|
|
|
|
if(is_array($aFields[$aField['sFieldName']])){
|
|
|
|
|
|
$sQuery .= "'" . (isset( $aFields[$aField['sFieldName']] ) ? $aFields[$aField['sFieldName']][0] : '') . "',";
|
|
|
|
|
|
}else{
|
2015-09-02 13:05:13 -04:00
|
|
|
|
if($aFields[$aField['sFieldName']] == $aFields[$aField['sFieldName'].'_label']){
|
|
|
|
|
|
$sQuery .= "'" . (isset( $aFields[$aField['sFieldName']] ) ? @mysql_real_escape_string( $aFields[$aField['sFieldName']] ) : '') . "',";
|
|
|
|
|
|
}else{
|
|
|
|
|
|
$sQuery .= "'" . (isset( $aFields[$aField['sFieldName']] ) ? @mysql_real_escape_string( $aFields[$aField['sFieldName'].'_label'] ) : '') . "',";
|
|
|
|
|
|
}
|
2015-09-02 13:05:13 -04:00
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
break;
|
|
|
|
|
|
case 'date':
|
|
|
|
|
|
$mysqlDate = (isset( $aFields[$aField['sFieldName']] ) ? $aFields[$aField['sFieldName']] : '');
|
|
|
|
|
|
if ($mysqlDate != '') {
|
|
|
|
|
|
$mysqlDate = str_replace( '/', '-', $mysqlDate );
|
|
|
|
|
|
$mysqlDate = date( 'Y-m-d', strtotime( $mysqlDate ) );
|
|
|
|
|
|
}
|
|
|
|
|
|
$value = trim( $mysqlDate ) != '' ? "'" . $mysqlDate . "'" : 'NULL';
|
|
|
|
|
|
$sQuery .= $value . ",";
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery = substr( $sQuery, 0, - 1 );
|
|
|
|
|
|
$sQuery .= " WHERE APP_UID = '" . $sApplicationUid . "'";
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$sQuery = 'INSERT INTO `' . $aRow['REP_TAB_NAME'] . '` (';
|
|
|
|
|
|
$sQuery .= '`APP_UID`,`APP_NUMBER`';
|
|
|
|
|
|
foreach ($aTableFields as $aField) {
|
|
|
|
|
|
$sQuery .= ',`' . $aField['sFieldName'] . '`';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ") VALUES ('" . $sApplicationUid . "'," . (int) $iApplicationNumber;
|
|
|
|
|
|
foreach ($aTableFields as $aField) {
|
|
|
|
|
|
switch ($aField['sType']) {
|
|
|
|
|
|
case 'number':
|
|
|
|
|
|
$sQuery .= ',' . (isset( $aFields[$aField['sFieldName']] ) ? (float) str_replace( ',', '', $aFields[$aField['sFieldName']] ) : '0');
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'char':
|
|
|
|
|
|
case 'text':
|
|
|
|
|
|
if (! isset( $aFields[$aField['sFieldName']] )) {
|
|
|
|
|
|
$aFields[$aField['sFieldName']] = '';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ",'" . (isset( $aFields[$aField['sFieldName']] ) ? mysql_real_escape_string( $aFields[$aField['sFieldName']] ) : '') . "'";
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'date':
|
|
|
|
|
|
$mysqlDate = (isset( $aFields[$aField['sFieldName']] ) ? $aFields[$aField['sFieldName']] : '');
|
|
|
|
|
|
if ($mysqlDate != '') {
|
|
|
|
|
|
$mysqlDate = str_replace( '/', '-', $mysqlDate );
|
|
|
|
|
|
$mysqlDate = date( 'Y-m-d', strtotime( $mysqlDate ) );
|
|
|
|
|
|
}
|
|
|
|
|
|
$value = trim( $mysqlDate ) != '' ? "'" . $mysqlDate . "'" : 'NULL';
|
|
|
|
|
|
$sQuery .= "," . $value;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ')';
|
|
|
|
|
|
}
|
|
|
|
|
|
$rs = $stmt->executeQuery( $sQuery );
|
|
|
|
|
|
} else {
|
|
|
|
|
|
//remove old rows from database
|
|
|
|
|
|
$sqlDelete = 'DELETE FROM `' . $aRow['REP_TAB_NAME'] . "` WHERE APP_UID = '" . $sApplicationUid . "'";
|
|
|
|
|
|
$rsDelete = $stmt->executeQuery( $sqlDelete );
|
|
|
|
|
|
|
|
|
|
|
|
$aAux = explode( '-', $aRow['REP_TAB_GRID'] );
|
|
|
|
|
|
if (isset( $aFields[$aAux[0]] )) {
|
2013-03-21 13:00:18 -04:00
|
|
|
|
if (is_array($aFields[$aAux[0]])) {
|
|
|
|
|
|
foreach ($aFields[$aAux[0]] as $iRow => $aGridRow) {
|
|
|
|
|
|
$sQuery = 'INSERT INTO `' . $aRow['REP_TAB_NAME'] . '` (';
|
|
|
|
|
|
$sQuery .= '`APP_UID`,`APP_NUMBER`,`ROW`';
|
|
|
|
|
|
foreach ($aTableFields as $aField) {
|
|
|
|
|
|
$sQuery .= ',`' . $aField['sFieldName'] . '`';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ") VALUES ('" . $sApplicationUid . "'," . (int) $iApplicationNumber . ',' . $iRow;
|
|
|
|
|
|
foreach ($aTableFields as $aField) {
|
|
|
|
|
|
switch ($aField['sType']) {
|
|
|
|
|
|
case 'number':
|
|
|
|
|
|
$sQuery .= ',' . (isset( $aGridRow[$aField['sFieldName']] ) ? (float) str_replace( ',', '', $aGridRow[$aField['sFieldName']] ) : '0');
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'char':
|
|
|
|
|
|
case 'text':
|
|
|
|
|
|
if (! isset( $aGridRow[$aField['sFieldName']] )) {
|
|
|
|
|
|
$aGridRow[$aField['sFieldName']] = '';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ",'" . (isset( $aGridRow[$aField['sFieldName']] ) ? mysql_real_escape_string( $aGridRow[$aField['sFieldName']] ) : '') . "'";
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'date':
|
|
|
|
|
|
$sQuery .= ",'" . (isset( $aGridRow[$aField['sFieldName']] ) ? $aGridRow[$aField['sFieldName']] : '') . "'";
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
}
|
2013-03-21 13:00:18 -04:00
|
|
|
|
$sQuery .= ')';
|
|
|
|
|
|
$rs = $stmt->executeQuery( $sQuery );
|
2012-10-09 13:21:00 -04:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2010-12-24 14:25:35 +00:00
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* For SQLServer code
|
|
|
|
|
|
*/
|
|
|
|
|
|
case 'mssql':
|
|
|
|
|
|
$aTableFields = $this->getTableVars( $aRow['REP_TAB_UID'], true );
|
|
|
|
|
|
if ($aRow['REP_TAB_TYPE'] == 'NORMAL') {
|
|
|
|
|
|
$oDataset2 = mssql_query( "SELECT * FROM [" . $aRow['REP_TAB_NAME'] . "] WHERE APP_UID = '" . $sApplicationUid . "'" );
|
|
|
|
|
|
if ($aRow2 = mssql_fetch_row( $oDataset2 )) {
|
|
|
|
|
|
$sQuery = 'UPDATE [' . $aRow['REP_TAB_NAME'] . '] SET ';
|
|
|
|
|
|
foreach ($aTableFields as $aField) {
|
|
|
|
|
|
$sQuery .= '[' . $aField['sFieldName'] . '] = ';
|
|
|
|
|
|
switch ($aField['sType']) {
|
|
|
|
|
|
case 'number':
|
|
|
|
|
|
$sQuery .= (isset( $aFields[$aField['sFieldName']] ) ? (float) str_replace( ',', '', $aFields[$aField['sFieldName']] ) : '0') . ',';
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'char':
|
|
|
|
|
|
case 'text':
|
|
|
|
|
|
if (! isset( $aFields[$aField['sFieldName']] )) {
|
|
|
|
|
|
$aFields[$aField['sFieldName']] = '';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= "'" . (isset( $aFields[$aField['sFieldName']] ) ? mysql_real_escape_string( $aFields[$aField['sFieldName']] ) : '') . "',";
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'date':
|
|
|
|
|
|
$sQuery .= "'" . (isset( $aFields[$aField['sFieldName']] ) ? $aFields[$aField['sFieldName']] : '') . "',";
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery = substr( $sQuery, 0, - 1 );
|
|
|
|
|
|
$sQuery .= " WHERE APP_UID = '" . $sApplicationUid . "'";
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$sQuery = 'INSERT INTO [' . $aRow['REP_TAB_NAME'] . '] (';
|
|
|
|
|
|
$sQuery .= '[APP_UID],[APP_NUMBER]';
|
|
|
|
|
|
foreach ($aTableFields as $aField) {
|
|
|
|
|
|
$sQuery .= ',[' . $aField['sFieldName'] . ']';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ") VALUES ('" . $sApplicationUid . "'," . (int) $iApplicationNumber;
|
|
|
|
|
|
foreach ($aTableFields as $aField) {
|
|
|
|
|
|
switch ($aField['sType']) {
|
|
|
|
|
|
case 'number':
|
|
|
|
|
|
$sQuery .= ',' . (isset( $aFields[$aField['sFieldName']] ) ? (float) str_replace( ',', '', $aFields[$aField['sFieldName']] ) : '0');
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'char':
|
|
|
|
|
|
case 'text':
|
|
|
|
|
|
if (! isset( $aFields[$aField['sFieldName']] )) {
|
|
|
|
|
|
$aFields[$aField['sFieldName']] = '';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ",'" . (isset( $aFields[$aField['sFieldName']] ) ? mysql_real_escape_string( $aFields[$aField['sFieldName']] ) : '') . "'";
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'date':
|
|
|
|
|
|
$sQuery .= ",'" . (isset( $aFields[$aField['sFieldName']] ) ? $aFields[$aField['sFieldName']] : '') . "'";
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ')';
|
|
|
|
|
|
}
|
|
|
|
|
|
$rs = $stmt->executeQuery( $sQuery );
|
|
|
|
|
|
} else {
|
|
|
|
|
|
mysql_query( 'DELETE FROM [' . $aRow['REP_TAB_NAME'] . "] WHERE APP_UID = '" . $sApplicationUid . "'" );
|
|
|
|
|
|
$aAux = explode( '-', $aRow['REP_TAB_GRID'] );
|
|
|
|
|
|
if (isset( $aFields[$aAux[0]] )) {
|
|
|
|
|
|
foreach ($aFields[$aAux[0]] as $iRow => $aGridRow) {
|
|
|
|
|
|
$sQuery = 'INSERT INTO [' . $aRow['REP_TAB_NAME'] . '] (';
|
|
|
|
|
|
$sQuery .= '[APP_UID],[APP_NUMBER],[ROW]';
|
|
|
|
|
|
foreach ($aTableFields as $aField) {
|
|
|
|
|
|
$sQuery .= ',[' . $aField['sFieldName'] . ']';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ") VALUES ('" . $sApplicationUid . "'," . (int) $iApplicationNumber . ',' . $iRow;
|
|
|
|
|
|
foreach ($aTableFields as $aField) {
|
|
|
|
|
|
switch ($aField['sType']) {
|
|
|
|
|
|
case 'number':
|
|
|
|
|
|
$sQuery .= ',' . (isset( $aGridRow[$aField['sFieldName']] ) ? (float) str_replace( ',', '', $aGridRow[$aField['sFieldName']] ) : '0');
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'char':
|
|
|
|
|
|
case 'text':
|
|
|
|
|
|
if (! isset( $aGridRow[$aField['sFieldName']] )) {
|
|
|
|
|
|
$aGridRow[$aField['sFieldName']] = '';
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ",'" . (isset( $aGridRow[$aField['sFieldName']] ) ? mysql_real_escape_string( $aGridRow[$aField['sFieldName']] ) : '') . "'";
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 'date':
|
|
|
|
|
|
$sQuery .= ",'" . (isset( $aGridRow[$aField['sFieldName']] ) ? $aGridRow[$aField['sFieldName']] : '') . "'";
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$sQuery .= ')';
|
|
|
|
|
|
$rs = $stmt->executeQuery( $sQuery );
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
2010-12-24 14:25:35 +00:00
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
$oDataset->next();
|
2010-12-24 14:25:35 +00:00
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
} catch (Exception $oError) {
|
|
|
|
|
|
throw ($oError);
|
|
|
|
|
|
}
|
2010-12-02 23:34:41 +00:00
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Function tableExist
|
|
|
|
|
|
* Check if table exists
|
|
|
|
|
|
*
|
|
|
|
|
|
* @access public
|
|
|
|
|
|
* @return boolean
|
|
|
|
|
|
*/
|
|
|
|
|
|
public function tableExist ()
|
|
|
|
|
|
{
|
|
|
|
|
|
/*
|
2012-10-22 17:09:37 -04:00
|
|
|
|
$bExists = true;
|
|
|
|
|
|
$oConnection = mysql_connect(DB_HOST, DB_USER, DB_PASS);
|
|
|
|
|
|
mysql_select_db(DB_NAME);
|
|
|
|
|
|
$oDataset = mysql_query('SELECT COUNT(*) FROM REPORT_TABLE') || ($bExists = false);
|
|
|
|
|
|
return $bExists;
|
|
|
|
|
|
*/
|
2012-10-09 13:21:00 -04:00
|
|
|
|
$bExists = true;
|
|
|
|
|
|
$sDataBase = 'database_' . strtolower( DB_ADAPTER );
|
|
|
|
|
|
if (G::LoadSystemExist( $sDataBase )) {
|
|
|
|
|
|
G::LoadSystem( $sDataBase );
|
|
|
|
|
|
$oDataBase = new database();
|
|
|
|
|
|
$bExists = $oDataBase->reportTableExist();
|
|
|
|
|
|
}
|
|
|
|
|
|
return $bExists;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Function chooseDB
|
|
|
|
|
|
* Choose the database to connect
|
|
|
|
|
|
*
|
|
|
|
|
|
* @access public
|
|
|
|
|
|
* @param string $TabConnectionk
|
|
|
|
|
|
* @return string
|
|
|
|
|
|
*/
|
|
|
|
|
|
public function chooseDB ($TabConnectionk)
|
|
|
|
|
|
{
|
|
|
|
|
|
$repTabConnection = trim( strtoupper( $TabConnectionk ) );
|
|
|
|
|
|
$PropelDatabase = 'rp';
|
2012-10-22 17:09:37 -04:00
|
|
|
|
if ($repTabConnection == '' || $repTabConnection == 'REPORT') {
|
2012-10-09 13:21:00 -04:00
|
|
|
|
$PropelDatabase = 'rp';
|
2012-10-22 17:09:37 -04:00
|
|
|
|
}
|
|
|
|
|
|
if ($repTabConnection == 'RBAC') {
|
2012-10-09 13:21:00 -04:00
|
|
|
|
$PropelDatabase = 'rbac';
|
2012-10-22 17:09:37 -04:00
|
|
|
|
}
|
|
|
|
|
|
if ($repTabConnection == 'WF') {
|
2012-10-09 13:21:00 -04:00
|
|
|
|
$PropelDatabase = 'workflow';
|
2012-10-22 17:09:37 -04:00
|
|
|
|
}
|
2012-10-09 13:21:00 -04:00
|
|
|
|
return ($PropelDatabase);
|
2011-04-19 15:07:20 -04:00
|
|
|
|
}
|
2011-04-15 11:08:18 -04:00
|
|
|
|
}
|
2012-10-22 17:09:37 -04:00
|
|
|
|
|