Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
RefundOrderInventoryObserver.php
Go to the documentation of this file.
1 <?php
8 
14 
20 {
24  private $stockConfiguration;
25 
29  private $stockManagement;
30 
34  private $stockIndexerProcessor;
35 
39  private $priceIndexer;
40 
44  private $returnProcessor;
45 
49  private $orderRepository;
50 
60  public function __construct(
61  StockConfigurationInterface $stockConfiguration,
62  StockManagementInterface $stockManagement,
63  \Magento\CatalogInventory\Model\Indexer\Stock\Processor $stockIndexerProcessor,
64  \Magento\Catalog\Model\Indexer\Product\Price\Processor $priceIndexer,
65  \Magento\SalesInventory\Model\Order\ReturnProcessor $returnProcessor,
66  \Magento\Sales\Api\OrderRepositoryInterface $orderRepository
67  ) {
68  $this->stockConfiguration = $stockConfiguration;
69  $this->stockManagement = $stockManagement;
70  $this->stockIndexerProcessor = $stockIndexerProcessor;
71  $this->priceIndexer = $priceIndexer;
72  $this->returnProcessor = $returnProcessor;
73  $this->orderRepository = $orderRepository;
74  }
75 
82  public function execute(EventObserver $observer)
83  {
84  /* @var $creditmemo \Magento\Sales\Model\Order\Creditmemo */
85  $creditmemo = $observer->getEvent()->getCreditmemo();
86  $order = $this->orderRepository->get($creditmemo->getOrderId());
87  $returnToStockItems = [];
88  foreach ($creditmemo->getItems() as $item) {
89  if ($item->getBackToStock()) {
90  $returnToStockItems[] = $item->getOrderItemId();
91  }
92  }
93  if (!empty($returnToStockItems)) {
94  $this->returnProcessor->execute($creditmemo, $order, $returnToStockItems);
95  }
96  }
97 }
$orderRepository
Definition: order.php:69
$order
Definition: order.php:55
__construct(StockConfigurationInterface $stockConfiguration, StockManagementInterface $stockManagement, \Magento\CatalogInventory\Model\Indexer\Stock\Processor $stockIndexerProcessor, \Magento\Catalog\Model\Indexer\Product\Price\Processor $priceIndexer, \Magento\SalesInventory\Model\Order\ReturnProcessor $returnProcessor, \Magento\Sales\Api\OrderRepositoryInterface $orderRepository)