Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
IsInvalidationRequiredForSource.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
15 
20 {
24  private $resourceConnection;
25 
29  public function __construct(
30  ResourceConnection $resourceConnection
31  ) {
32  $this->resourceConnection = $resourceConnection;
33  }
34 
43  public function execute(string $sourceCode, bool $enabled): bool
44  {
45  $connection = $this->resourceConnection->getConnection();
46  $sourceTable = $this->resourceConnection->getTableName(Source::TABLE_NAME_SOURCE);
47  $sourceItemTable = $this->resourceConnection->getTableName(SourceItem::TABLE_NAME_SOURCE_ITEM);
48  $stockSourceLinkTable = $this->resourceConnection->getTableName(StockSourceLink::TABLE_NAME_STOCK_SOURCE_LINK);
49 
50  $select = $connection->select()
51  ->from(
52  ['sources' => $sourceTable],
53  '(sources.' . SourceInterface::ENABLED . ' != ' . (int)$enabled . ')'
54  )
55  ->joinInner(
56  ['source_item' => $sourceItemTable],
57  'sources.' . SourceInterface::SOURCE_CODE . '=' . 'source_item.' . SourceInterface::SOURCE_CODE,
58  null
59  )->joinInner(
60  ['stock_source_link' => $stockSourceLinkTable],
61  'sources.' . SourceInterface::SOURCE_CODE . '=' . 'stock_source_link.' . SourceInterface::SOURCE_CODE,
62  null
63  )
64  ->where('sources.' . SourceInterface::SOURCE_CODE . ' = ?', $sourceCode);
65 
66  return (bool)$connection->fetchOne($select);
67  }
68 }
$sourceCode
Definition: inventory.phtml:11
$connection
Definition: bulk.php:13