Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
NewShipmentLoadBefore.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
17 
22 {
26  private $orderRepository;
27 
31  private $isWebsiteInMultiSourceMode;
32 
36  private $redirect;
37 
43  public function __construct(
44  OrderRepository $orderRepository,
45  IsWebsiteInMultiSourceMode $isWebsiteInMultiSourceMode,
46  RedirectInterface $redirect
47  ) {
48  $this->orderRepository = $orderRepository;
49  $this->isWebsiteInMultiSourceMode = $isWebsiteInMultiSourceMode;
50  $this->redirect = $redirect;
51  }
52 
57  public function execute(EventObserver $observer)
58  {
59  $request = $observer->getEvent()->getRequest();
60  $controller = $observer->getEvent()->getControllerAction();
61 
62  if (!empty($request->getParam('items'))
63  && !empty($request->getParam('sourceCode'))) {
64  return;
65  }
66 
67  try {
68  $orderId = $request->getParam('order_id');
69  $order = $this->orderRepository->get($orderId);
70  $websiteId = (int)$order->getStore()->getWebsiteId();
71  if ($this->isWebsiteInMultiSourceMode->execute($websiteId)) {
72  $this->redirect->redirect(
73  $controller->getResponse(),
74  'inventoryshipping/SourceSelection/index',
75  [
76  'order_id' => $orderId
77  ]
78  );
79  }
80  } catch (InputException | NoSuchEntityException $e) {
81  $this->redirect->redirect(
82  $controller->getResponse(),
83  'sales/order/index'
84  );
85  }
86 
87  return;
88  }
89 }
$orderRepository
Definition: order.php:69
$order
Definition: order.php:55
__construct(OrderRepository $orderRepository, IsWebsiteInMultiSourceMode $isWebsiteInMultiSourceMode, RedirectInterface $redirect)
$controller
Definition: info.phtml:14