87 lines
2.3 KiB
PHP
87 lines
2.3 KiB
PHP
<?php
|
|
namespace Shopkeeper\VendorSalesReport\Controller\Adminhtml\Report;
|
|
|
|
use Magento\Backend\App\Action;
|
|
use Magento\Backend\App\Action\Context;
|
|
use Magento\Framework\Controller\Result\JsonFactory;
|
|
use Shopkeeper\VendorSalesReport\Model\ReportGenerator;
|
|
use Shopkeeper\VendorSalesReport\Helper\Data as ConfigHelper;
|
|
|
|
class Grid extends Action
|
|
{
|
|
const ADMIN_RESOURCE = 'Shopkeeper_VendorSalesReport::report';
|
|
|
|
/**
|
|
* @var JsonFactory
|
|
*/
|
|
protected $resultJsonFactory;
|
|
|
|
/**
|
|
* @var ReportGenerator
|
|
*/
|
|
protected $reportGenerator;
|
|
|
|
/**
|
|
* @var ConfigHelper
|
|
*/
|
|
protected $configHelper;
|
|
|
|
/**
|
|
* @param Context $context
|
|
* @param JsonFactory $resultJsonFactory
|
|
* @param ReportGenerator $reportGenerator
|
|
* @param ConfigHelper $configHelper
|
|
*/
|
|
public function __construct(
|
|
Context $context,
|
|
JsonFactory $resultJsonFactory,
|
|
ReportGenerator $reportGenerator,
|
|
ConfigHelper $configHelper
|
|
) {
|
|
parent::__construct($context);
|
|
$this->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()
|
|
]);
|
|
}
|
|
}
|
|
}
|