Initial commit: Vendor Sales Report Magento 2 module
This commit is contained in:
86
Controller/Adminhtml/Report/Grid.php
Normal file
86
Controller/Adminhtml/Report/Grid.php
Normal file
@@ -0,0 +1,86 @@
|
||||
<?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()
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user