1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\Inventory\Model\Stock\Command;
use Magento\Framework\Exception\CouldNotDeleteException;
use Magento\Framework\Exception\NoSuchEntityException;
use Magento\Inventory\Model\ResourceModel\Stock as StockResourceModel;
use Magento\InventoryApi\Api\Data\StockInterface;
use Magento\InventoryApi\Api\Data\StockInterfaceFactory;
use Psr\Log\LoggerInterface;
/**
* @inheritdoc
*/
class DeleteById implements DeleteByIdInterface
{
/**
* @var StockResourceModel
*/
private $stockResource;
/**
* @var StockInterfaceFactory
*/
private $stockFactory;
/**
* @var LoggerInterface
*/
private $logger;
/**
* @param StockResourceModel $stockResource
* @param StockInterfaceFactory $stockFactory
* @param LoggerInterface $logger
*/
public function __construct(
StockResourceModel $stockResource,
StockInterfaceFactory $stockFactory,
LoggerInterface $logger
) {
$this->stockResource = $stockResource;
$this->stockFactory = $stockFactory;
$this->logger = $logger;
}
/**
* @inheritdoc
*/
public function execute(int $stockId)
{
/** @var StockInterface $stock */
$stock = $this->stockFactory->create();
$this->stockResource->load($stock, $stockId, StockInterface::STOCK_ID);
if (null === $stock->getStockId()) {
throw new NoSuchEntityException(
__(
'There is no stock with "%fieldValue" for "%fieldName". Verify and try again.',
[
'fieldName' => StockInterface::STOCK_ID,
'fieldValue' => $stockId
]
)
);
}
try {
$this->stockResource->delete($stock);
} catch (\Exception $e) {
$this->logger->error($e->getMessage());
throw new CouldNotDeleteException(__('Could not delete Stock'), $e);
}
}
}