/** * @param int $offset * @param int $limit * @return array */ protected function runQueryAndGetResolveResultsData($offset, $limit) { assert('is_int($offset) || $offset == null'); assert('is_int($limit) || $limit == null'); $selectQueryAdapter = $this->makeSelectQueryAdapter(); $sql = $this->makeSqlQueryForFetchingData($selectQueryAdapter, $offset, $limit); $rows = $this->getRowsData($sql); $resultsData = array(); $idByOffset = self::resolveIdByOffset($offset); foreach ($rows as $key => $row) { $reportResultsRowData = new ReportResultsRowData($this->resolveDisplayAttributes(), $idByOffset); foreach ($selectQueryAdapter->getIdTableAliasesAndModelClassNames() as $tableAlias => $modelClassName) { $idColumnName = $selectQueryAdapter->getIdColumNameByTableAlias($tableAlias); $id = (int) $row[$idColumnName]; if ($id != null) { $reportResultsRowData->addModelAndAlias($modelClassName::getById($id), $tableAlias); } unset($row[$idColumnName]); } foreach ($row as $columnName => $value) { $reportResultsRowData->addSelectedColumnNameAndValue($columnName, $value); } $resultsData[$key] = $reportResultsRowData; $idByOffset++; } return $resultsData; }
/** * Test for viaSelect and viaModel together * @depends testExportSummationAttributes */ public function testViaSelectAndViaModelTogether() { $reportModelTestItem = new ReportModelTestItem(); $report = new Report(); //viaSelect attribute $displayAttribute1 = new DisplayAttributeForReportForm('ReportsTestModule', 'ReportModelTestItem', Report::TYPE_SUMMATION); $displayAttribute1->attributeIndexOrDerivedType = 'integer__Minimum'; $displayAttribute1->madeViaSelectInsteadOfViaModel = true; $this->assertTrue($displayAttribute1->columnAliasName == 'col0'); //viaModel attribute $reportModelTestItem->boolean = true; $displayAttribute2 = new DisplayAttributeForReportForm('ReportsTestModule', 'ReportModelTestItem', Report::TYPE_ROWS_AND_COLUMNS); $displayAttribute2->setModelAliasUsingTableAliasName('model1'); $displayAttribute2->attributeIndexOrDerivedType = 'boolean'; $reportResultsRowData = new ReportResultsRowData(array($displayAttribute1, $displayAttribute2), 4); $reportResultsRowData->addSelectedColumnNameAndValue('col0', 9000); $reportResultsRowData->addModelAndAlias($reportModelTestItem, 'model1'); $adapter = new ReportToExportAdapter($reportResultsRowData, $report); $compareHeaderData = array('Integer -(Min)', 'Boolean'); $compareRowData = array(9000, true); $this->assertEquals($compareHeaderData, $adapter->getHeaderData()); $this->assertEquals($compareRowData, $adapter->getData()); }
public function testGetAttributeLabel() { $reportModelTestItemX = new ReportModelTestItem(); $reportModelTestItemX->string = 'someString'; $displayAttributeX = new DisplayAttributeForReportForm('ReportsTestModule', 'ReportModelTestItem', Report::TYPE_SUMMATION); $displayAttributeX->setModelAliasUsingTableAliasName('abc'); $displayAttributeX->attributeIndexOrDerivedType = 'string'; $displayAttributeY = new DisplayAttributeForReportForm('ReportsTestModule', 'ReportModelTestItem', Report::TYPE_SUMMATION); $displayAttributeY->attributeIndexOrDerivedType = 'integer__Maximum'; $reportResultsRowData = new ReportResultsRowData(array($displayAttributeX, $displayAttributeY), 4); $reportResultsRowData->addModelAndAlias($reportModelTestItemX, 'abc'); $reportResultsRowData->addSelectedColumnNameAndValue('col1', 55); //Test a viaModel attribute $this->assertEquals('String', $reportResultsRowData->getAttributeLabel('attribute0')); //Test a viaSelect attriubte $this->assertEquals('Integer -(Max)', $reportResultsRowData->getAttributeLabel('col1')); }
/** * @param ReportResultsRowData $reportResultsRowData * @param $totalCount */ protected function addDefaultColumnNamesAndValuesToReportResultsRowData(ReportResultsRowData $reportResultsRowData, $totalCount) { for ($i = 0; $i < $totalCount; $i++) { $columnAliasName = DisplayAttributeForReportForm::COLUMN_ALIAS_PREFIX . $i; $value = 0; $reportResultsRowData->addSelectedColumnNameAndValue($columnAliasName, $value); } }