resultJsonFactory = $resultJsonFactory; $this->reportGenerator = $reportGenerator; $this->configHelper = $configHelper; } /** * Grid data action * * @return \Magento\Framework\Controller\Result\Json */ public function execute() { $result = $this->resultJsonFactory->create(); try { $startDate = $this->getRequest()->getParam('start_date'); $endDate = $this->getRequest()->getParam('end_date'); if (!$startDate || !$endDate) { return $result->setData([ 'success' => false, 'message' => 'Please select a date range.' ]); } // Get order statuses $orderStatuses = $this->configHelper->getOrderStatus(); // Generate report data $data = $this->reportGenerator->generateReportData($startDate, $endDate, $orderStatuses); return $result->setData([ 'success' => true, 'data' => $data, 'total' => count($data) ]); } catch (\Exception $e) { return $result->setData([ 'success' => false, 'message' => $e->getMessage() ]); } } }