/** * Create Report Tables from an array of data * * @param array $aReportTables * @param array $aReportTablesVars * @return void */ public function createReportTables ($aReportTables, $aReportTablesVars) { $this->createReportTablesVars( $aReportTablesVars ); $oReportTables = new ReportTables(); foreach ($aReportTables as $sKey => $aRow) { $bExists = true; $sTable = $aRow['REP_TAB_NAME']; $iCounter = 1; while ($bExists) { $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( ReportTablePeer::REP_TAB_NAME, $sTable ); $oDataset = ReportTablePeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); $bExists = ($aRow2 = $oDataset->getRow()); if ($bExists) { $sTable = $aRow['REP_TAB_NAME'] . '_' . $iCounter; $iCounter ++; } else { $aRow['REP_TAB_NAME'] = $sTable; } } $aFields = $oReportTables->getTableVars( $aRow['REP_TAB_UID'], true ); $oReportTables->createTable( $aRow['REP_TAB_NAME'], $aRow['REP_TAB_CONNECTION'], $aRow['REP_TAB_TYPE'], $aFields ); $oReportTables->populateTable( $aRow['REP_TAB_NAME'], $aRow['REP_TAB_CONNECTION'], $aRow['REP_TAB_TYPE'], $aFields, $aRow['PRO_UID'], $aRow['REP_TAB_GRID'] ); $aReportTables[$sKey]['REP_TAB_NAME'] = $aRow['REP_TAB_NAME']; $oRep = new ReportTable(); if ($oRep->reportTableExists( $aRow['REP_TAB_UID'] )) { $oRep->remove( $aRow['REP_TAB_UID'] ); } $oRep->create( $aRow ); } }