![]() 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/app/code/Cnc/Checkout/Model/ |
<?php /** * Copyright (c) 2020 Kaliop Digital Commerce (https://digitalcommerce.kaliop.com) All Rights Reserved. * https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * Cnc * Krzysztof Majkowski <[email protected]> */ namespace Cnc\Checkout\Model; use Cnc\Checkout\Api\GetAssignedSourceCodesInterface; use Magento\Framework\Api\SearchCriteriaBuilder; use Magento\Framework\Api\SortOrderBuilder; use Magento\Framework\Exception\NoSuchEntityException; use Magento\InventoryApi\Api\Data\StockSourceLinkInterface; use Magento\InventoryApi\Api\GetStockSourceLinksInterface; use Magento\InventorySalesApi\Api\StockResolverInterface; class GetAssignedSourceCodes implements GetAssignedSourceCodesInterface { /** * @var SortOrderBuilder */ private $sortOrderBuilder; /** * @var SearchCriteriaBuilder */ private $apiSearchCriteriaBuilder; /** * @var GetStockSourceLinksInterface */ private $getStockSourceLinks; /** * @var StockResolverInterface */ private $stockResolver; /** * GetAssignedSourceCodes constructor. * @param SortOrderBuilder $sortOrderBuilder * @param SearchCriteriaBuilder $apiSearchCriteriaBuilder * @param GetStockSourceLinksInterface $getStockSourceLinks * @param StockResolverInterface $stockResolver */ public function __construct( SortOrderBuilder $sortOrderBuilder, SearchCriteriaBuilder $apiSearchCriteriaBuilder, GetStockSourceLinksInterface $getStockSourceLinks, StockResolverInterface $stockResolver ) { $this->sortOrderBuilder = $sortOrderBuilder; $this->apiSearchCriteriaBuilder = $apiSearchCriteriaBuilder; $this->getStockSourceLinks = $getStockSourceLinks; $this->stockResolver = $stockResolver; } /** * @inheritDoc * @throws NoSuchEntityException */ public function execute(string $websiteCode): array { $stock = $this->stockResolver->execute('website', $websiteCode); $stockId = $stock->getStockId(); $sortOrder = $this->sortOrderBuilder ->setField(StockSourceLinkInterface::PRIORITY) ->setAscendingDirection() ->create(); $searchCriteria = $this->apiSearchCriteriaBuilder ->addFilter(StockSourceLinkInterface::STOCK_ID, $stockId) ->addSortOrder($sortOrder) ->create(); $searchResult = $this->getStockSourceLinks->execute($searchCriteria); if ($searchResult->getTotalCount() === 0) { return []; } $assignedSourceCodes = []; foreach ($searchResult->getItems() as $link) { $assignedSourceCodes []= $link->getSourceCode(); } return $assignedSourceCodes; } }