GetSourceItemsCollection.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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\InventoryLowQuantityNotification\Model\ResourceModel\Rss\NotifyStock;
  8. use Magento\Inventory\Model\ResourceModel\SourceItem\Collection;
  9. use Magento\Inventory\Model\ResourceModel\SourceItem\CollectionFactory;
  10. use Magento\InventoryApi\Api\Data\SourceItemInterface;
  11. /**
  12. * Get source items collection for notify stock.
  13. */
  14. class GetSourceItemsCollection
  15. {
  16. /**
  17. * @var CollectionFactory
  18. */
  19. private $collectionFactory;
  20. /**
  21. * @var SelectBuilder
  22. */
  23. private $selectBuilder;
  24. /**
  25. * @param CollectionFactory $collectionFactory
  26. * @param SelectBuilder $selectBuilder
  27. */
  28. public function __construct(
  29. CollectionFactory $collectionFactory,
  30. SelectBuilder $selectBuilder
  31. ) {
  32. $this->collectionFactory = $collectionFactory;
  33. $this->selectBuilder = $selectBuilder;
  34. }
  35. /**
  36. * @return Collection
  37. */
  38. public function execute()
  39. {
  40. $collection = $this->collectionFactory->create();
  41. $collection->removeAllFieldsFromSelect();
  42. $collection->addFieldToSelect(SourceItemInterface::SOURCE_CODE);
  43. $collection->addFieldToSelect(SourceItemInterface::QUANTITY, 'qty');
  44. $this->selectBuilder->build($collection->getSelect());
  45. return $collection;
  46. }
  47. }