getAcl()->getLevel('Opportunity', 'read'); if (!$level || $level == 'no') { throw new Forbidden(); } $dateFrom = $request->getQueryParam('dateFrom'); $dateTo = $request->getQueryParam('dateTo'); $dateFilter = $request->getQueryParam('dateFilter'); return $this->getOpportunityService()->reportByLeadSource($dateFilter, $dateFrom, $dateTo); } public function getActionReportByStage(Request $request) { $level = $this->getAcl()->getLevel('Opportunity', 'read'); if (!$level || $level == 'no') { throw new Forbidden(); } $dateFrom = $request->getQueryParam('dateFrom'); $dateTo = $request->getQueryParam('dateTo'); $dateFilter = $request->getQueryParam('dateFilter'); return $this->getOpportunityService()->reportByStage($dateFilter, $dateFrom, $dateTo); } public function getActionReportSalesByMonth(Request $request) { $level = $this->getAcl()->getLevel('Opportunity', 'read'); if (!$level || $level == 'no') { throw new Forbidden(); } $dateFrom = $request->getQueryParam('dateFrom'); $dateTo = $request->getQueryParam('dateTo'); $dateFilter = $request->getQueryParam('dateFilter'); return $this->getOpportunityService()->reportSalesByMonth($dateFilter, $dateFrom, $dateTo); } public function getActionReportSalesPipeline(Request $request) { $level = $this->getAcl()->getLevel('Opportunity', 'read'); if (!$level || $level == 'no') { throw new Forbidden(); } $dateFrom = $request->getQueryParam('dateFrom'); $dateTo = $request->getQueryParam('dateTo'); $dateFilter = $request->getQueryParam('dateFilter'); $useLastStage = $request->getQueryParam('useLastStage') === 'true'; $teamId = $request->getQueryParam('teamId') ?? null; return $this->getOpportunityService() ->reportSalesPipeline($dateFilter, $dateFrom, $dateTo, $useLastStage, $teamId); } public function getActionEmailAddressList(Request $request) { if (!$request->getQueryParam('id')) { throw new BadRequest(); } if (!$this->getAcl()->checkScope($this->name, 'read')) { throw new Forbidden(); } return $this->getOpportunityService()->getEmailAddressList($request->getQueryParam('id')); } private function getOpportunityService(): Service { /** @var Service */ return $this->getRecordService(); } }