Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
BulkSourceUnassign.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
14 
22 {
26  private $resourceConnection;
27 
31  private $bulkZeroLegacyStockItem;
32 
36  private $defaultSourceProvider;
37 
44  public function __construct(
45  ResourceConnection $resourceConnection,
46  DefaultSourceProviderInterface $defaultSourceProvider,
47  BulkZeroLegacyStockItem $bulkZeroLegacyStockItem
48  ) {
49  $this->resourceConnection = $resourceConnection;
50  $this->bulkZeroLegacyStockItem = $bulkZeroLegacyStockItem;
51  $this->defaultSourceProvider = $defaultSourceProvider;
52  }
53 
61  public function execute(array $skus, array $sourceCodes): int
62  {
63  $connection = $this->resourceConnection->getConnection();
64  $tableName = $this->resourceConnection->getTableName(SourceItem::TABLE_NAME_SOURCE_ITEM);
65 
66  $connection->beginTransaction();
67 
68  $count = (int) $connection->delete($tableName, [
69  SourceItemInterface::SOURCE_CODE . ' IN (?)' => $sourceCodes,
70  SourceItemInterface::SKU . ' IN (?)' => $skus,
71  ]);
72 
73  // Legacy stock update
74  if (in_array($this->defaultSourceProvider->getCode(), $sourceCodes)) {
75  $this->bulkZeroLegacyStockItem->execute($skus);
76  }
77 
78  $connection->commit();
79 
80  return $count;
81  }
82 }
$tableName
Definition: trigger.php:13
$count
Definition: recent.phtml:13
foreach($websiteCodes as $websiteCode) $skus
$connection
Definition: bulk.php:13
__construct(ResourceConnection $resourceConnection, DefaultSourceProviderInterface $defaultSourceProvider, BulkZeroLegacyStockItem $bulkZeroLegacyStockItem)