get('params'), $this->params); $service = DefaultReportService::make(); return $service->fetchTopSoldProducts($params); } public function getTopSoldVariants(Request $request): array { $params = ReportHelper::processParams($request->get('params'), $this->params); $service = DefaultReportService::make(); return $service->fetchTopSoldVariants($params); } public function getSalesReport(Request $request) { $params = ReportHelper::processParams($request->get('params'), $this->params); $service = DefaultReportService::make([]); $currentMetrics = $service->getAllGraphMetricsSeparate($params); $fluctuations = []; $previousMetrics = ['summary' => []]; if ($params['comparePeriod']) { $params['startDate'] = $params['comparePeriod'][0]; $params['endDate'] = $params['comparePeriod'][1]; $previousMetrics = $service->getAllGraphMetricsSeparate($params); $fluctuations = $service->calculateFluctuations( $currentMetrics['summary'], $previousMetrics['summary'] ); } return [ 'graphs' => $currentMetrics['metrics'], 'summaryData' => $currentMetrics['summary'], 'previousSummary' => $previousMetrics['summary'], 'fluctuations' => $fluctuations, ]; } }