Piwik\API\DataTableManipulator\ReportTotalsCalculator::makeSureToWorkOnFirstLevelDataTable PHP Method

makeSureToWorkOnFirstLevelDataTable() private method

    private function makeSureToWorkOnFirstLevelDataTable($table)
    {
        if (!array_key_exists('idSubtable', $this->request)) {
            return $table;
        }
        $firstLevelReport = $this->findFirstLevelReport();
        if (empty($firstLevelReport)) {
            // it is not a subtable report
            $module = $this->apiModule;
            $action = $this->apiMethod;
        } else {
            $module = $firstLevelReport->getModule();
            $action = $firstLevelReport->getAction();
        }
        $request = $this->request;
        /** @var \Piwik\Period $period */
        $period = $table->getMetadata('period');
        if (!empty($period)) {
            // we want a dataTable, not a dataTable\map
            if (Period::isMultiplePeriod($request['date'], $request['period']) || 'range' == $period->getLabel()) {
                $request['date'] = $period->getRangeString();
                $request['period'] = 'range';
            } else {
                $request['date'] = $period->getDateStart()->toString();
                $request['period'] = $period->getLabel();
            }
        }
        $table = $this->callApiAndReturnDataTable($module, $action, $request);
        if ($table instanceof DataTable\Map) {
            $table = $table->mergeChildren();
        }
        return $table;
    }