GetStockSourceLinks.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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\Inventory\Model\StockSourceLink\Command;
  8. use Magento\Framework\Api\SearchCriteria\CollectionProcessorInterface;
  9. use Magento\Framework\Api\SearchCriteriaBuilder;
  10. use Magento\Framework\Api\SearchCriteriaInterface;
  11. use Magento\Inventory\Model\ResourceModel\StockSourceLink\Collection as StockSourceLinkCollection;
  12. use Magento\Inventory\Model\ResourceModel\StockSourceLink\CollectionFactory as StockSourceLinkCollectionFactory;
  13. use Magento\InventoryApi\Api\Data\StockSourceLinkSearchResultsInterface;
  14. use Magento\InventoryApi\Api\Data\StockSourceLinkSearchResultsInterfaceFactory;
  15. use Magento\InventoryApi\Api\GetStockSourceLinksInterface;
  16. /**
  17. * @inheritdoc
  18. */
  19. class GetStockSourceLinks implements GetStockSourceLinksInterface
  20. {
  21. /**
  22. * @var CollectionProcessorInterface
  23. */
  24. private $collectionProcessor;
  25. /**
  26. * @var StockSourceLinkCollectionFactory
  27. */
  28. private $stockSourceLinkCollectionFactory;
  29. /**
  30. * @var StockSourceLinkSearchResultsInterfaceFactory
  31. */
  32. private $stockSourceLinkSearchResultsFactory;
  33. /**
  34. * @var SearchCriteriaBuilder
  35. */
  36. private $searchCriteriaBuilder;
  37. /**
  38. * @param CollectionProcessorInterface $collectionProcessor
  39. * @param StockSourceLinkCollectionFactory $stockSourceLinkCollectionFactory
  40. * @param StockSourceLinkSearchResultsInterfaceFactory $stockSourceLinkSearchResultsFactory
  41. * @param SearchCriteriaBuilder $searchCriteriaBuilder
  42. */
  43. public function __construct(
  44. CollectionProcessorInterface $collectionProcessor,
  45. StockSourceLinkCollectionFactory $stockSourceLinkCollectionFactory,
  46. StockSourceLinkSearchResultsInterfaceFactory $stockSourceLinkSearchResultsFactory,
  47. SearchCriteriaBuilder $searchCriteriaBuilder
  48. ) {
  49. $this->collectionProcessor = $collectionProcessor;
  50. $this->stockSourceLinkCollectionFactory = $stockSourceLinkCollectionFactory;
  51. $this->stockSourceLinkSearchResultsFactory = $stockSourceLinkSearchResultsFactory;
  52. $this->searchCriteriaBuilder = $searchCriteriaBuilder;
  53. }
  54. /**
  55. * @inheritdoc
  56. */
  57. public function execute(SearchCriteriaInterface $searchCriteria): StockSourceLinkSearchResultsInterface
  58. {
  59. /** @var StockSourceLinkCollection $collection */
  60. $collection = $this->stockSourceLinkCollectionFactory->create();
  61. $this->collectionProcessor->process($searchCriteria, $collection);
  62. /** @var StockSourceLinkSearchResultsInterface $searchResult */
  63. $searchResult = $this->stockSourceLinkSearchResultsFactory->create();
  64. $searchResult->setItems($collection->getItems());
  65. $searchResult->setTotalCount($collection->getSize());
  66. $searchResult->setSearchCriteria($searchCriteria);
  67. return $searchResult;
  68. }
  69. }