getAcl()->getLevel('Opportunity', 'read'); if (!$level || $level == 'no') { throw new Forbidden(); } $dateFrom = $request->get('dateFrom'); $dateTo = $request->get('dateTo'); $dateFilter = $request->get('dateFilter'); return $this->getService('Opportunity')->reportByLeadSource($dateFilter, $dateFrom, $dateTo); } public function actionReportByStage($params, $data, $request) { $level = $this->getAcl()->getLevel('Opportunity', 'read'); if (!$level || $level == 'no') { throw new Forbidden(); } $dateFrom = $request->get('dateFrom'); $dateTo = $request->get('dateTo'); $dateFilter = $request->get('dateFilter'); return $this->getService('Opportunity')->reportByStage($dateFilter, $dateFrom, $dateTo); } public function actionReportSalesByMonth($params, $data, $request) { $level = $this->getAcl()->getLevel('Opportunity', 'read'); if (!$level || $level == 'no') { throw new Forbidden(); } $dateFrom = $request->get('dateFrom'); $dateTo = $request->get('dateTo'); $dateFilter = $request->get('dateFilter'); return $this->getService('Opportunity')->reportSalesByMonth($dateFilter, $dateFrom, $dateTo); } public function actionReportSalesPipeline($params, $data, $request) { $level = $this->getAcl()->getLevel('Opportunity', 'read'); if (!$level || $level == 'no') { throw new Forbidden(); } $dateFrom = $request->get('dateFrom'); $dateTo = $request->get('dateTo'); $dateFilter = $request->get('dateFilter'); $useLastStage = $request->get('useLastStage') === 'true'; $teamId = $request->get('teamId') ?? null; return $this->getService('Opportunity')->reportSalesPipeline($dateFilter, $dateFrom, $dateTo, $useLastStage, $teamId); } public function getActionEmailAddressList($params, $data, $request) { if (!$request->get('id')) throw new BadRequest(); if (!$this->getAcl()->checkScope($this->name, 'read')) throw new Forbidden(); return $this->getRecordService()->getEmailAddressList($request->get('id')); } }