GetAssignedSalesChannelsForStock.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\InventorySales\Model;
  8. use Magento\InventorySales\Model\ResourceModel\GetAssignedSalesChannelsDataForStock;
  9. use Magento\InventorySalesApi\Api\Data\SalesChannelInterface;
  10. use Magento\InventorySalesApi\Api\Data\SalesChannelInterfaceFactory;
  11. use Magento\InventorySalesApi\Model\GetAssignedSalesChannelsForStockInterface;
  12. /**
  13. * @inheritdoc
  14. */
  15. class GetAssignedSalesChannelsForStock implements GetAssignedSalesChannelsForStockInterface
  16. {
  17. /**
  18. * @var GetAssignedSalesChannelsDataForStock
  19. */
  20. private $getAssignedSalesChannelsDataForStock;
  21. /**
  22. * @var SalesChannelInterfaceFactory
  23. */
  24. private $salesChannelFactory;
  25. /**
  26. * @param GetAssignedSalesChannelsDataForStock $getAssignedSalesChannelsDataForStock
  27. * @param SalesChannelInterfaceFactory $salesChannelFactory
  28. */
  29. public function __construct(
  30. GetAssignedSalesChannelsDataForStock $getAssignedSalesChannelsDataForStock,
  31. SalesChannelInterfaceFactory $salesChannelFactory
  32. ) {
  33. $this->getAssignedSalesChannelsDataForStock = $getAssignedSalesChannelsDataForStock;
  34. $this->salesChannelFactory = $salesChannelFactory;
  35. }
  36. /**
  37. * @inheritdoc
  38. */
  39. public function execute(int $stockId) : array
  40. {
  41. $salesChannelsData = $this->getAssignedSalesChannelsDataForStock->execute($stockId);
  42. $salesChannels = [];
  43. foreach ($salesChannelsData as $salesChannelData) {
  44. /** @var SalesChannelInterface $salesChannel */
  45. $salesChannel = $this->salesChannelFactory->create();
  46. $salesChannel->setType($salesChannelData[SalesChannelInterface::TYPE]);
  47. $salesChannel->setCode($salesChannelData[SalesChannelInterface::CODE]);
  48. $salesChannels[] = $salesChannel;
  49. }
  50. return $salesChannels;
  51. }
  52. }