Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
PreventAppendReservationOnNotManageItemsInStockPlugin.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
15 
20 {
24  private $getStockItemConfiguration;
25 
29  private $stockConfiguration;
30 
35  public function __construct(
36  GetStockItemConfigurationInterface $getStockItemConfiguration,
37  StockConfigurationInterface $stockConfiguration
38  ) {
39  $this->getStockItemConfiguration = $getStockItemConfiguration;
40  $this->stockConfiguration = $stockConfiguration;
41  }
42 
51  public function aroundExecute(AppendReservationsInterface $subject, \Closure $proceed, array $reservations)
52  {
53  if (!$this->stockConfiguration->canSubtractQty()) {
54  return;
55  }
56 
57  $reservationToAppend = [];
58  foreach ($reservations as $reservation) {
59  $stockItemConfiguration = $this->getStockItemConfiguration->execute(
60  $reservation->getSku(),
61  $reservation->getStockId()
62  );
63 
64  if ($stockItemConfiguration->isManageStock()) {
65  $reservationToAppend[] = $reservation;
66  }
67  }
68 
69  if (!empty($reservationToAppend)) {
70  $proceed($reservationToAppend);
71  }
72  }
73 }
__construct(GetStockItemConfigurationInterface $getStockItemConfiguration, StockConfigurationInterface $stockConfiguration)