UpdateQty.php 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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\HttpPostActionInterface as HttpPostActionInterface;
  8. use Magento\Backend\App\Action;
  9. class UpdateQty extends \Magento\Backend\App\Action implements HttpPostActionInterface
  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 $pagePageFactory;
  25. /**
  26. * @var \Magento\Framework\Controller\Result\JsonFactory
  27. */
  28. protected $resultJsonFactory;
  29. /**
  30. * @var \Magento\Framework\Controller\Result\RawFactory
  31. */
  32. protected $resultRawFactory;
  33. /**
  34. * @param Action\Context $context
  35. * @param \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader $creditmemoLoader
  36. * @param \Magento\Framework\View\Result\PageFactory $resultPageFactory
  37. * @param \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory
  38. * @param \Magento\Framework\Controller\Result\RawFactory $resultRawFactory
  39. */
  40. public function __construct(
  41. Action\Context $context,
  42. \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader $creditmemoLoader,
  43. \Magento\Framework\View\Result\PageFactory $resultPageFactory,
  44. \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory,
  45. \Magento\Framework\Controller\Result\RawFactory $resultRawFactory
  46. ) {
  47. $this->creditmemoLoader = $creditmemoLoader;
  48. $this->resultPageFactory = $resultPageFactory;
  49. $this->resultJsonFactory = $resultJsonFactory;
  50. $this->resultRawFactory = $resultRawFactory;
  51. parent::__construct($context);
  52. }
  53. /**
  54. * Update items qty action
  55. *
  56. * @return \Magento\Framework\Controller\Result\Json|\Magento\Framework\Controller\Result\Raw
  57. */
  58. public function execute()
  59. {
  60. try {
  61. $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id'));
  62. $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id'));
  63. $this->creditmemoLoader->setCreditmemo($this->getRequest()->getParam('creditmemo'));
  64. $this->creditmemoLoader->setInvoiceId($this->getRequest()->getParam('invoice_id'));
  65. $this->creditmemoLoader->load();
  66. $resultPage = $this->resultPageFactory->create();
  67. $response = $resultPage->getLayout()->getBlock('order_items')->toHtml();
  68. } catch (\Magento\Framework\Exception\LocalizedException $e) {
  69. $response = ['error' => true, 'message' => $e->getMessage()];
  70. } catch (\Exception $e) {
  71. $response = ['error' => true, 'message' => __('We can\'t update the item\'s quantity right now.')];
  72. }
  73. if (is_array($response)) {
  74. $resultJson = $this->resultJsonFactory->create();
  75. $resultJson->setData($response);
  76. return $resultJson;
  77. } else {
  78. $resultRaw = $this->resultRawFactory->create();
  79. $resultRaw->setContents($response);
  80. return $resultRaw;
  81. }
  82. }
  83. }