Skip to content

Commit 41876f5

Browse files
committed
MAGETWO-59080: Introduce ability return to stock through api for Configurable and Bundle products
1 parent eeda2a7 commit 41876f5

File tree

4 files changed

+22
-29
lines changed

4 files changed

+22
-29
lines changed

app/code/Magento/SalesInventory/Model/Order/ReturnProcessor.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public function execute(
9595
$productId = $item->getProductId();
9696
$orderItem = $this->orderItemRepository->get($item->getOrderItemId());
9797
$parentItemId = $orderItem->getParentItemId();
98-
if ($this->canReturnItem($item, $parentItemId, $returnToStockItems, $qty)) {
98+
if ($this->canReturnItem($item, $qty, $parentItemId, $returnToStockItems)) {
9999
$parentItem = $parentItemId ? $this->getItemByOrderId($creditmemo, $parentItemId) : false;
100100
$qty = $parentItem ? $parentItem->getQty() * $qty : $qty;
101101
if (isset($itemsToUpdate[$productId])) {
@@ -139,16 +139,16 @@ private function getItemByOrderId(\Magento\Sales\Api\Data\CreditmemoInterface $c
139139

140140
/**
141141
* @param \Magento\Sales\Api\Data\CreditmemoItemInterface $item
142+
* @param int $qty
142143
* @param int[] $returnToStockItems
143144
* @param int $parentItemId
144-
* @param int $qty
145145
* @return bool
146146
*/
147147
private function canReturnItem(
148148
\Magento\Sales\Api\Data\CreditmemoItemInterface $item,
149+
$qty,
149150
$parentItemId = null,
150-
array $returnToStockItems = [],
151-
$qty
151+
array $returnToStockItems = []
152152
) {
153153
return (in_array($item->getOrderItemId(), $returnToStockItems) || in_array($parentItemId, $returnToStockItems))
154154
&& $qty;

app/code/Magento/SalesInventory/Model/Plugin/Order/ReturnToStockInvoice.php

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,57 +5,50 @@
55
*/
66
namespace Magento\SalesInventory\Model\Plugin\Order;
77

8-
use Magento\CatalogInventory\Api\StockConfigurationInterface;
9-
use Magento\SalesInventory\Model\Order\ReturnProcessor;
10-
use Magento\Sales\Api\CreditmemoRepositoryInterface;
11-
use Magento\Sales\Api\InvoiceRepositoryInterface;
12-
use Magento\Sales\Api\OrderRepositoryInterface;
13-
use Magento\Sales\Api\RefundInvoiceInterface;
14-
158
/**
169
* Class ReturnToStockInvoice
1710
*/
1811
class ReturnToStockInvoice
1912
{
2013
/**
21-
* @var ReturnProcessor
14+
* @var \Magento\SalesInventory\Model\Order\ReturnProcessor
2215
*/
2316
private $returnProcessor;
2417

2518
/**
26-
* @var CreditmemoRepositoryInterface
19+
* @var \Magento\Sales\Api\CreditmemoRepositoryInterface
2720
*/
2821
private $creditmemoRepository;
2922

3023
/**
31-
* @var OrderRepositoryInterface
24+
* @var \Magento\Sales\Api\OrderRepositoryInterface
3225
*/
3326
private $orderRepository;
3427

3528
/**
36-
* @var InvoiceRepositoryInterface
29+
* @var \Magento\Sales\Api\InvoiceRepositoryInterface
3730
*/
3831
private $invoiceRepository;
3932

4033
/**
41-
* @var StockConfigurationInterface
34+
* @var \Magento\CatalogInventory\Api\StockConfigurationInterface
4235
*/
4336
private $stockConfiguration;
4437

4538
/**
4639
* ReturnToStockInvoice constructor.
47-
* @param ReturnProcessor $returnProcessor
48-
* @param CreditmemoRepositoryInterface $creditmemoRepository
49-
* @param OrderRepositoryInterface $orderRepository
50-
* @param InvoiceRepositoryInterface $invoiceRepository
51-
* @param StockConfigurationInterface $stockConfiguration
40+
* @param \Magento\SalesInventory\Model\Order\ReturnProcessor $returnProcessor
41+
* @param \Magento\Sales\Api\CreditmemoRepositoryInterface $creditmemoRepository
42+
* @param \Magento\Sales\Api\OrderRepositoryInterface $orderRepository
43+
* @param \Magento\Sales\Api\InvoiceRepositoryInterface $invoiceRepository
44+
* @param \Magento\CatalogInventory\Api\StockConfigurationInterface $stockConfiguration
5245
*/
5346
public function __construct(
54-
ReturnProcessor $returnProcessor,
55-
CreditmemoRepositoryInterface $creditmemoRepository,
56-
OrderRepositoryInterface $orderRepository,
57-
InvoiceRepositoryInterface $invoiceRepository,
58-
StockConfigurationInterface $stockConfiguration
47+
\Magento\SalesInventory\Model\Order\ReturnProcessor $returnProcessor,
48+
\Magento\Sales\Api\CreditmemoRepositoryInterface $creditmemoRepository,
49+
\Magento\Sales\Api\OrderRepositoryInterface $orderRepository,
50+
\Magento\Sales\Api\InvoiceRepositoryInterface $invoiceRepository,
51+
\Magento\CatalogInventory\Api\StockConfigurationInterface $stockConfiguration
5952
) {
6053
$this->returnProcessor = $returnProcessor;
6154
$this->creditmemoRepository = $creditmemoRepository;
@@ -65,7 +58,7 @@ public function __construct(
6558
}
6659

6760
/**
68-
* @param RefundInvoiceInterface $refundService
61+
* @param \Magento\Sales\Api\RefundInvoiceInterface $refundService
6962
* @param int $resultEntityId
7063
* @param int $invoiceId
7164
* @param \Magento\Sales\Api\Data\CreditmemoItemCreationInterface[] $items
@@ -78,7 +71,7 @@ public function __construct(
7871
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
7972
*/
8073
public function afterExecute(
81-
RefundInvoiceInterface $refundService,
74+
\Magento\Sales\Api\RefundInvoiceInterface $refundService,
8275
$resultEntityId,
8376
$invoiceId,
8477
array $items = [],

app/code/Magento/SalesInventory/Model/Plugin/Order/ReturnToStockOrder.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ class ReturnToStockOrder
4242
* @param ReturnProcessor $returnProcessor
4343
* @param CreditmemoRepositoryInterface $creditmemoRepository
4444
* @param OrderRepositoryInterface $orderRepository
45+
* @param StockConfigurationInterface $stockConfiguration
4546
*/
4647
public function __construct(
4748
ReturnProcessor $returnProcessor,

app/code/Magento/SalesInventory/Test/Unit/Model/Plugin/Order/ReturnToStockOrderTest.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,6 @@ public function testAfterExecute()
137137
->method('execute')
138138
->with($this->creditmemoMock, $this->orderMock, $returnToStockItems);
139139

140-
141140
$this->stockConfigurationMock->expects($this->once())
142141
->method('isAutoReturnEnabled')
143142
->willReturn(false);

0 commit comments

Comments
 (0)