Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
DisallowCreateShipmentPlugin.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
14 
19 {
23  private $getSourcesAssignedToStockOrderedByPriority;
24 
28  private $stockByWebsiteIdResolver;
29 
35  public function __construct(
36  GetSourcesAssignedToStockOrderedByPriorityInterface $getSourcesAssignedToStockOrderedByPriority,
37  StockByWebsiteIdResolverInterface $stockByWebsiteIdResolver
38  ) {
39  $this->getSourcesAssignedToStockOrderedByPriority = $getSourcesAssignedToStockOrderedByPriority;
40  $this->stockByWebsiteIdResolver = $stockByWebsiteIdResolver;
41  }
42 
48  public function afterCanCreateShipment(Form $subject, bool $result)
49  {
50  try {
51  $websiteId = $subject->getOrder()->getStore()->getWebsiteId();
52  $stockId = $this->stockByWebsiteIdResolver->execute((int)$websiteId)->getStockId();
53  $sources = $this->getSourcesAssignedToStockOrderedByPriority->execute((int)$stockId);
54  if (count($sources) > 1) {
55  return false;
56  }
57  } catch (LocalizedException $e) {
58  return false;
59  }
60 
61  return $result;
62  }
63 }
__construct(GetSourcesAssignedToStockOrderedByPriorityInterface $getSourcesAssignedToStockOrderedByPriority, StockByWebsiteIdResolverInterface $stockByWebsiteIdResolver)