Start.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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\Edit;
  7. class Start extends \Magento\Sales\Controller\Adminhtml\Order\Create\Start
  8. {
  9. /**
  10. * Authorization level of a basic admin session
  11. *
  12. * @see _isAllowed()
  13. */
  14. const ADMIN_RESOURCE = 'Magento_Sales::actions_edit';
  15. /**
  16. * Start edit order initialization
  17. *
  18. * @return \Magento\Backend\Model\View\Result\Redirect
  19. */
  20. public function execute()
  21. {
  22. $this->_getSession()->clearStorage();
  23. $orderId = $this->getRequest()->getParam('order_id');
  24. $order = $this->_objectManager->create(\Magento\Sales\Model\Order::class)->load($orderId);
  25. /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
  26. $resultRedirect = $this->resultRedirectFactory->create();
  27. try {
  28. if ($order->getId()) {
  29. $this->_getSession()->setUseOldShippingMethod(true);
  30. $this->_getOrderCreateModel()->initFromOrder($order);
  31. $resultRedirect->setPath('sales/*');
  32. } else {
  33. $resultRedirect->setPath('sales/order/');
  34. }
  35. } catch (\Magento\Framework\Exception\LocalizedException $e) {
  36. $this->messageManager->addErrorMessage($e->getMessage());
  37. $resultRedirect->setPath('sales/order/view', ['order_id' => $orderId]);
  38. } catch (\Exception $e) {
  39. $this->messageManager->addExceptionMessage($e, $e->getMessage());
  40. $resultRedirect->setPath('sales/order/view', ['order_id' => $orderId]);
  41. }
  42. return $resultRedirect;
  43. }
  44. }