/**
  * Adds ratio metrics if possible.
  *
  * @param  DataTable $dataTable
  * @return DataTable
  */
 protected function manipulateDataTable($dataTable)
 {
     if (!empty($this->report) && !$this->report->getDimension() && !$this->isAllMetricsReport()) {
         // we currently do not calculate the total value for reports having no dimension
         return $dataTable;
     }
     $this->totals = array();
     $firstLevelTable = $this->makeSureToWorkOnFirstLevelDataTable($dataTable);
     $metricsToCalculate = Metrics::getMetricIdsToProcessReportTotal();
     $metricNames = array();
     foreach ($metricsToCalculate as $metricId) {
         $metricNames[$metricId] = Metrics::getReadableColumnName($metricId);
     }
     foreach ($firstLevelTable->getRows() as $row) {
         $columns = $row->getColumns();
         foreach ($metricNames as $metricId => $metricName) {
             $this->sumColumnValueToTotal($columns, $metricId, $metricName);
         }
     }
     $dataTable->setMetadata('totals', $this->totals);
     return $dataTable;
 }
 /**
  * Adds ratio metrics if possible.
  *
  * @param  DataTable $dataTable
  * @return DataTable
  */
 protected function manipulateDataTable($dataTable)
 {
     $report = $this->findCurrentReport();
     if (!empty($report) && empty($report['dimension'])) {
         // we currently do not calculate the total value for reports having no dimension
         return $dataTable;
     }
     // Array [readableMetric] => [summed value]
     $totalValues = array();
     $firstLevelTable = $this->makeSureToWorkOnFirstLevelDataTable($dataTable);
     $metricsToCalculate = Metrics::getMetricIdsToProcessReportTotal();
     foreach ($metricsToCalculate as $metricId) {
         if (!$this->hasDataTableMetric($firstLevelTable, $metricId)) {
             continue;
         }
         foreach ($firstLevelTable->getRows() as $row) {
             $totalValues = $this->sumColumnValueToTotal($row, $metricId, $totalValues);
         }
     }
     $dataTable->setMetadata('totals', $totalValues);
     return $dataTable;
 }