NewAction.php 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Controller\Adminhtml\Order\Creditmemo;
  7. use Magento\Framework\App\Action\HttpGetActionInterface as HttpGetActionInterface;
  8. use Magento\Backend\App\Action;
  9. class NewAction extends \Magento\Backend\App\Action implements HttpGetActionInterface
  10. {
  11. /**
  12. * Authorization level of a basic admin session
  13. *
  14. * @see _isAllowed()
  15. */
  16. const ADMIN_RESOURCE = 'Magento_Sales::sales_creditmemo';
  17. /**
  18. * @var \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader
  19. */
  20. protected $creditmemoLoader;
  21. /**
  22. * @var \Magento\Framework\View\Result\PageFactory
  23. */
  24. protected $resultPageFactory;
  25. /**
  26. * @var \Magento\Backend\Model\View\Result\ForwardFactory
  27. */
  28. protected $resultForwardFactory;
  29. /**
  30. * @param Action\Context $context
  31. * @param \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader $creditmemoLoader
  32. * @param \Magento\Framework\View\Result\PageFactory $resultPageFactory
  33. * @param \Magento\Backend\Model\View\Result\ForwardFactory $resultForwardFactory
  34. */
  35. public function __construct(
  36. Action\Context $context,
  37. \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader $creditmemoLoader,
  38. \Magento\Framework\View\Result\PageFactory $resultPageFactory,
  39. \Magento\Backend\Model\View\Result\ForwardFactory $resultForwardFactory
  40. ) {
  41. $this->creditmemoLoader = $creditmemoLoader;
  42. $this->resultPageFactory = $resultPageFactory;
  43. $this->resultForwardFactory = $resultForwardFactory;
  44. parent::__construct($context);
  45. }
  46. /**
  47. * Creditmemo create page
  48. *
  49. * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Forward
  50. */
  51. public function execute()
  52. {
  53. $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id'));
  54. $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id'));
  55. $this->creditmemoLoader->setCreditmemo($this->getRequest()->getParam('creditmemo'));
  56. $this->creditmemoLoader->setInvoiceId($this->getRequest()->getParam('invoice_id'));
  57. $creditmemo = $this->creditmemoLoader->load();
  58. if ($creditmemo) {
  59. if ($comment = $this->_objectManager->get(\Magento\Backend\Model\Session::class)->getCommentText(true)) {
  60. $creditmemo->setCommentText($comment);
  61. }
  62. $resultPage = $this->resultPageFactory->create();
  63. $resultPage->setActiveMenu('Magento_Sales::sales_order');
  64. $resultPage->getConfig()->getTitle()->prepend(__('Credit Memos'));
  65. if ($creditmemo->getInvoice()) {
  66. $resultPage->getConfig()->getTitle()->prepend(
  67. __("New Memo for #%1", $creditmemo->getInvoice()->getIncrementId())
  68. );
  69. } else {
  70. $resultPage->getConfig()->getTitle()->prepend(__("New Memo"));
  71. }
  72. return $resultPage;
  73. } else {
  74. $resultForward = $this->resultForwardFactory->create();
  75. $resultForward->forward('noroute');
  76. return $resultForward;
  77. }
  78. }
  79. }