![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-inventory-configuration/Model/ |
<?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) ] ); } }