mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-08 01:37:36 +00:00
191 lines
5.3 KiB
PHP
191 lines
5.3 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
declare(strict_types=1);
|
|
|
|
namespace Magento\Sales\Controller\Adminhtml;
|
|
|
|
use Magento\Backend\App\Action;
|
|
use Magento\Backend\Model\View\Result\Page;
|
|
use Magento\Framework\App\Response\Http\FileFactory;
|
|
use Magento\Framework\Controller\Result\JsonFactory;
|
|
use Magento\Framework\Controller\Result\RawFactory;
|
|
use Magento\Framework\Registry;
|
|
use Magento\Framework\Translate\InlineInterface;
|
|
use Magento\Framework\View\Result\LayoutFactory;
|
|
use Magento\Framework\View\Result\PageFactory;
|
|
use Magento\Sales\Api\Data\OrderInterface;
|
|
use Magento\Sales\Api\OrderManagementInterface;
|
|
use Magento\Sales\Api\OrderRepositoryInterface;
|
|
use Magento\Framework\Exception\NoSuchEntityException;
|
|
use Magento\Framework\Exception\InputException;
|
|
use Psr\Log\LoggerInterface;
|
|
|
|
/**
|
|
* Adminhtml sales orders controller
|
|
*
|
|
* @api
|
|
* @SuppressWarnings(PHPMD.NumberOfChildren)
|
|
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
|
|
*/
|
|
abstract class Order extends Action
|
|
{
|
|
/**
|
|
* Authorization level of a basic admin session
|
|
*
|
|
* @see _isAllowed()
|
|
*/
|
|
const ADMIN_RESOURCE = 'Magento_Sales::sales_order';
|
|
|
|
/**
|
|
* Array of actions which can be processed without secret key validation
|
|
*
|
|
* @var string[]
|
|
*/
|
|
protected $_publicActions = ['view', 'index'];
|
|
|
|
/**
|
|
* Core registry
|
|
*
|
|
* @var Registry
|
|
*/
|
|
protected $_coreRegistry = null;
|
|
|
|
/**
|
|
* @var FileFactory
|
|
*/
|
|
protected $_fileFactory;
|
|
|
|
/**
|
|
* @var InlineInterface
|
|
*/
|
|
protected $_translateInline;
|
|
|
|
/**
|
|
* @var PageFactory
|
|
*/
|
|
protected $resultPageFactory;
|
|
|
|
/**
|
|
* @var JsonFactory
|
|
*/
|
|
protected $resultJsonFactory;
|
|
|
|
/**
|
|
* @var LayoutFactory
|
|
*/
|
|
protected $resultLayoutFactory;
|
|
|
|
/**
|
|
* @var RawFactory
|
|
*/
|
|
protected $resultRawFactory;
|
|
|
|
/**
|
|
* @var OrderManagementInterface
|
|
*/
|
|
protected $orderManagement;
|
|
|
|
/**
|
|
* @var OrderRepositoryInterface
|
|
*/
|
|
protected $orderRepository;
|
|
|
|
/**
|
|
* @var LoggerInterface
|
|
*/
|
|
protected $logger;
|
|
|
|
/**
|
|
* @param Action\Context $context
|
|
* @param Registry $coreRegistry
|
|
* @param FileFactory $fileFactory
|
|
* @param InlineInterface $translateInline
|
|
* @param PageFactory $resultPageFactory
|
|
* @param JsonFactory $resultJsonFactory
|
|
* @param LayoutFactory $resultLayoutFactory
|
|
* @param RawFactory $resultRawFactory
|
|
* @param OrderManagementInterface $orderManagement
|
|
* @param OrderRepositoryInterface $orderRepository
|
|
* @param LoggerInterface $logger
|
|
*
|
|
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
|
|
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
|
|
*/
|
|
public function __construct(
|
|
Action\Context $context,
|
|
Registry $coreRegistry,
|
|
FileFactory $fileFactory,
|
|
InlineInterface $translateInline,
|
|
PageFactory $resultPageFactory,
|
|
JsonFactory $resultJsonFactory,
|
|
LayoutFactory $resultLayoutFactory,
|
|
RawFactory $resultRawFactory,
|
|
OrderManagementInterface $orderManagement,
|
|
OrderRepositoryInterface $orderRepository,
|
|
LoggerInterface $logger
|
|
) {
|
|
$this->_coreRegistry = $coreRegistry;
|
|
$this->_fileFactory = $fileFactory;
|
|
$this->_translateInline = $translateInline;
|
|
$this->resultPageFactory = $resultPageFactory;
|
|
$this->resultJsonFactory = $resultJsonFactory;
|
|
$this->resultLayoutFactory = $resultLayoutFactory;
|
|
$this->resultRawFactory = $resultRawFactory;
|
|
$this->orderManagement = $orderManagement;
|
|
$this->orderRepository = $orderRepository;
|
|
$this->logger = $logger;
|
|
parent::__construct($context);
|
|
}
|
|
|
|
/**
|
|
* Init layout, menu and breadcrumb
|
|
*
|
|
* @return Page
|
|
*/
|
|
protected function _initAction()
|
|
{
|
|
$resultPage = $this->resultPageFactory->create();
|
|
$resultPage->setActiveMenu('Magento_Sales::sales_order');
|
|
$resultPage->addBreadcrumb(__('Sales'), __('Sales'));
|
|
$resultPage->addBreadcrumb(__('Orders'), __('Orders'));
|
|
return $resultPage;
|
|
}
|
|
|
|
/**
|
|
* Initialize order model instance
|
|
*
|
|
* @return OrderInterface|false
|
|
*/
|
|
protected function _initOrder()
|
|
{
|
|
$id = $this->getRequest()->getParam('order_id');
|
|
try {
|
|
$order = $this->orderRepository->get($id);
|
|
} catch (NoSuchEntityException $e) {
|
|
$this->messageManager->addErrorMessage(__('This order no longer exists.'));
|
|
$this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
|
|
return false;
|
|
} catch (InputException $e) {
|
|
$this->messageManager->addErrorMessage(__('This order no longer exists.'));
|
|
$this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
|
|
return false;
|
|
}
|
|
$this->_coreRegistry->register('sales_order', $order);
|
|
$this->_coreRegistry->register('current_order', $order);
|
|
return $order;
|
|
}
|
|
|
|
/**
|
|
* @return bool
|
|
*/
|
|
protected function isValidPostRequest()
|
|
{
|
|
$formKeyIsValid = $this->_formKeyValidator->validate($this->getRequest());
|
|
$isPost = $this->getRequest()->isPost();
|
|
return ($formKeyIsValid && $isPost);
|
|
}
|
|
}
|