From 67a4d7ad5c91570cf10fe182f6d52d1bdb8672c0 Mon Sep 17 00:00:00 2001
From: Oleksandr Radchenko <oradchenko@magento.com>
Date: Mon, 7 Nov 2016 14:22:23 +0200
Subject: [PATCH] MAGETWO-59074: Creditmemo return to stock only one unit of
 configurable product

---
 .../Observer/RefundOrderInventoryObserver.php | 25 +++++--------------
 1 file changed, 6 insertions(+), 19 deletions(-)

diff --git a/app/code/Magento/SalesInventory/Observer/RefundOrderInventoryObserver.php b/app/code/Magento/SalesInventory/Observer/RefundOrderInventoryObserver.php
index 86b2cd081d6..acdebcf976a 100644
--- a/app/code/Magento/SalesInventory/Observer/RefundOrderInventoryObserver.php
+++ b/app/code/Magento/SalesInventory/Observer/RefundOrderInventoryObserver.php
@@ -55,20 +55,23 @@ class RefundOrderInventoryObserver implements ObserverInterface
      * @param StockManagementInterface $stockManagement
      * @param \Magento\CatalogInventory\Model\Indexer\Stock\Processor $stockIndexerProcessor
      * @param \Magento\Catalog\Model\Indexer\Product\Price\Processor $priceIndexer
-     * @param \Magento\Framework\App\ObjectManager $returnProcessor
+     * @param ReturnProcessor $returnProcessor
+     * @param \Magento\Sales\Api\OrderRepositoryInterface $orderRepository
      */
     public function __construct(
         StockConfigurationInterface $stockConfiguration,
         StockManagementInterface $stockManagement,
         \Magento\CatalogInventory\Model\Indexer\Stock\Processor $stockIndexerProcessor,
         \Magento\Catalog\Model\Indexer\Product\Price\Processor $priceIndexer,
-        \Magento\Framework\App\ObjectManager $returnProcessor
+        \Magento\SalesInventory\Model\Order\ReturnProcessor $returnProcessor,
+        \Magento\Sales\Api\OrderRepositoryInterface $orderRepository
     ) {
         $this->stockConfiguration = $stockConfiguration;
         $this->stockManagement = $stockManagement;
         $this->stockIndexerProcessor = $stockIndexerProcessor;
         $this->priceIndexer = $priceIndexer;
         $this->returnProcessor = $returnProcessor;
+        $this->orderRepository = $orderRepository;
     }
 
     /**
@@ -81,7 +84,7 @@ class RefundOrderInventoryObserver implements ObserverInterface
     {
         /* @var $creditmemo \Magento\Sales\Model\Order\Creditmemo */
         $creditmemo = $observer->getEvent()->getCreditmemo();
-        $order = $this->getOrderRepository()->get($creditmemo->getOrderId());
+        $order = $this->orderRepository->get($creditmemo->getOrderId());
         $returnToStockItems = [];
         foreach ($creditmemo->getItems() as $item) {
             if ($item->getBackToStock()) {
@@ -95,20 +98,4 @@ class RefundOrderInventoryObserver implements ObserverInterface
             $this->stockConfiguration->isAutoReturnEnabled()
         );
     }
-
-    /**
-     * Get OrderRepository
-     *
-     * @return OrderRepository
-     * @deprecated
-     */
-    private function getOrderRepository()
-    {
-        if (!$this->orderRepository) {
-            $this->orderRepository = \Magento\Framework\App\ObjectManager::getInstance()
-                ->get(OrderRepository::class);
-
-        }
-        return $this->orderRepository;
-    }
 }
-- 
GitLab