1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- /**
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Sales\Controller\AbstractController;
- use Magento\Framework\App\Action\Context;
- use Magento\Framework\View\Result\PageFactory;
- use Magento\Sales\Api\CreditmemoRepositoryInterface;
- abstract class PrintCreditmemo extends \Magento\Framework\App\Action\Action
- {
- /**
- * @var OrderViewAuthorizationInterface
- */
- protected $orderAuthorization;
- /**
- * @var \Magento\Framework\Registry
- */
- protected $_coreRegistry;
- /**
- * @var PageFactory
- */
- protected $resultPageFactory;
- /**
- * @var CreditmemoRepositoryInterface
- */
- protected $creditmemoRepository;
- /**
- * @param Context $context
- * @param OrderViewAuthorizationInterface $orderAuthorization
- * @param \Magento\Framework\Registry $registry
- * @param PageFactory $resultPageFactory
- * @param CreditmemoRepositoryInterface $creditmemoRepository
- */
- public function __construct(
- Context $context,
- OrderViewAuthorizationInterface $orderAuthorization,
- \Magento\Framework\Registry $registry,
- PageFactory $resultPageFactory,
- CreditmemoRepositoryInterface $creditmemoRepository
- ) {
- $this->orderAuthorization = $orderAuthorization;
- $this->_coreRegistry = $registry;
- $this->resultPageFactory = $resultPageFactory;
- $this->creditmemoRepository = $creditmemoRepository;
- parent::__construct($context);
- }
- /**
- * Print Creditmemo Action
- *
- * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\View\Result\Page
- */
- public function execute()
- {
- $creditmemoId = (int)$this->getRequest()->getParam('creditmemo_id');
- if ($creditmemoId) {
- $creditmemo = $this->creditmemoRepository->get($creditmemoId);
- $order = $creditmemo->getOrder();
- } else {
- $orderId = (int)$this->getRequest()->getParam('order_id');
- $order = $this->_objectManager->create(\Magento\Sales\Model\Order::class)->load($orderId);
- }
- if ($this->orderAuthorization->canView($order)) {
- $this->_coreRegistry->register('current_order', $order);
- if (isset($creditmemo)) {
- $this->_coreRegistry->register('current_creditmemo', $creditmemo);
- }
- /** @var \Magento\Framework\View\Result\Page $resultPage */
- $resultPage = $this->resultPageFactory->create();
- $resultPage->addHandle('print');
- return $resultPage;
- } else {
- /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
- $resultRedirect = $this->resultRedirectFactory->create();
- if ($this->_objectManager->get(\Magento\Customer\Model\Session::class)->isLoggedIn()) {
- $resultRedirect->setPath('*/*/history');
- } else {
- $resultRedirect->setPath('sales/guest/form');
- }
- return $resultRedirect;
- }
- }
- }
|