Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
InventoryRequest.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
10 use Magento\InventorySourceSelectionApi\Api\Data\InventoryRequestExtensionInterface;
13 use Magento\InventorySourceSelectionApi\Api\Data\ItemRequestInterfaceFactory;
15 
20 {
24  private $stockId;
25 
29  private $items;
30 
34  private $itemRequestFactory;
35 
51  public function __construct(
52  \Magento\Framework\Model\Context $context,
53  \Magento\Framework\Registry $registry,
54  \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory,
55  \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory,
56  ItemRequestInterfaceFactory $itemRequestFactory,
57  int $stockId,
58  array $items,
59  \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
60  \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
61  array $data = []
62  ) {
63  parent::__construct(
64  $context,
65  $registry,
66  $extensionFactory,
68  $resource,
69  $resourceCollection,
70  $data
71  );
72 
73  $this->itemRequestFactory = $itemRequestFactory;
74  $this->stockId = $stockId;
75 
76  //TODO: Temporary fix for resolving issue with webApi (https://github.com/magento-engcom/msi/issues/1524)
77  foreach ($items as $item) {
78  if (false === $item instanceof ItemRequestInterface) {
79  $this->items[] = $this->itemRequestFactory->create([
80  'sku' => $item['sku'],
81  'qty' => $item['qty']
82  ]);
83  } else {
84  $this->items[] = $item;
85  }
86  }
87  }
88 
92  public function getStockId(): int
93  {
94  return $this->stockId;
95  }
96 
100  public function getItems(): array
101  {
102  return $this->items;
103  }
104 
108  public function setStockId(int $stockId): void
109  {
110  $this->stockId = $stockId;
111  }
112 
116  public function setItems(array $items): void
117  {
118  $this->items = $items;
119  }
120 
124  public function getExtensionAttributes(): ?InventoryRequestExtensionInterface
125  {
127  if (null === $extensionAttributes) {
128  $extensionAttributes = $this->extensionAttributesFactory->create(InventoryRequestInterface::class);
130  }
131  return $extensionAttributes;
132  }
133 
137  public function setExtensionAttributes(InventoryRequestExtensionInterface $extensionAttributes): void
138  {
139  $this->_setExtensionAttributes($extensionAttributes);
140  }
141 }
_setExtensionAttributes(\Magento\Framework\Api\ExtensionAttributesInterface $extensionAttributes)
$resource
Definition: bulk.php:12
__construct(\Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory, ItemRequestInterfaceFactory $itemRequestFactory, int $stockId, array $items, \Magento\Framework\Model\ResourceModel\AbstractResource $resource=null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection=null, array $data=[])
setExtensionAttributes(InventoryRequestExtensionInterface $extensionAttributes)
$items