123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- declare(strict_types=1);
- namespace Magento\InventoryConfiguration\Model;
- use Magento\InventoryApi\Model\IsProductAssignedToStockInterface;
- use Magento\InventoryCatalogApi\Api\DefaultStockProviderInterface;
- use Magento\InventoryConfigurationApi\Api\GetStockItemConfigurationInterface;
- use Magento\InventoryConfigurationApi\Api\Data\StockItemConfigurationInterface;
- use Magento\InventoryConfigurationApi\Exception\SkuIsNotAssignedToStockException;
- use Magento\InventoryConfigurationApi\Model\IsSourceItemManagementAllowedForSkuInterface;
- /**
- * @inheritdoc
- */
- class GetStockItemConfiguration implements GetStockItemConfigurationInterface
- {
- /**
- * @var GetLegacyStockItem
- */
- private $getLegacyStockItem;
- /**
- * @var StockItemConfigurationFactory
- */
- private $stockItemConfigurationFactory;
- /**
- * @var IsProductAssignedToStockInterface
- */
- private $isProductAssignedToStock;
- /**
- * @var DefaultStockProviderInterface
- */
- private $defaultStockProvider;
- /**
- * @var IsSourceItemManagementAllowedForSkuInterface
- */
- private $isSourceItemManagementAllowedForSku;
- /**
- * @param GetLegacyStockItem $getLegacyStockItem
- * @param StockItemConfigurationFactory $stockItemConfigurationFactory
- * @param IsProductAssignedToStockInterface $isProductAssignedToStock
- * @param DefaultStockProviderInterface $defaultStockProvider
- * @param IsSourceItemManagementAllowedForSkuInterface $isSourceItemManagementAllowedForSku
- */
- public function __construct(
- GetLegacyStockItem $getLegacyStockItem,
- StockItemConfigurationFactory $stockItemConfigurationFactory,
- IsProductAssignedToStockInterface $isProductAssignedToStock,
- DefaultStockProviderInterface $defaultStockProvider,
- IsSourceItemManagementAllowedForSkuInterface $isSourceItemManagementAllowedForSku
- ) {
- $this->getLegacyStockItem = $getLegacyStockItem;
- $this->stockItemConfigurationFactory = $stockItemConfigurationFactory;
- $this->isProductAssignedToStock = $isProductAssignedToStock;
- $this->defaultStockProvider = $defaultStockProvider;
- $this->isSourceItemManagementAllowedForSku = $isSourceItemManagementAllowedForSku;
- }
- /**
- * @inheritdoc
- */
- public function execute(string $sku, int $stockId): StockItemConfigurationInterface
- {
- if ($this->defaultStockProvider->getId() !== $stockId
- && true === $this->isSourceItemManagementAllowedForSku->execute($sku)
- && false === $this->isProductAssignedToStock->execute($sku, $stockId)) {
- throw new SkuIsNotAssignedToStockException(
- __('The requested sku is not assigned to given stock.')
- );
- }
- return $this->stockItemConfigurationFactory->create(
- [
- 'stockItem' => $this->getLegacyStockItem->execute($sku)
- ]
- );
- }
- }
|