Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ApplyBaseJoins.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
19 
21 {
25  private $resourceConnection;
26 
30  public function __construct(
31  ResourceConnection $resourceConnection
32  ) {
33  $this->resourceConnection = $resourceConnection;
34  }
35 
41  public function execute(Select $select)
42  {
43  $configurationJoinCondition =
44  'source_item_config.' . SourceItemConfigurationInterface::SKU . ' = product.' . ProductInterface::SKU . ' '
46  . ' source_item_config.' . SourceItemConfigurationInterface::SOURCE_CODE
47  . ' = main_table.' . SourceItemInterface::SOURCE_CODE;
48 
49  $select->join(
50  ['source' => $this->resourceConnection->getTableName(Source::TABLE_NAME_SOURCE)],
51  'source.' . SourceInterface::SOURCE_CODE . ' = main_table.' . SourceItemInterface::SOURCE_CODE,
52  ['source_name' => 'source.' . SourceInterface::NAME]
53  )->join(
54  ['product' => $this->resourceConnection->getTableName('catalog_product_entity')],
55  'main_table.' . SourceItemInterface::SKU . ' = product.' . ProductInterface::SKU,
56  ['*']
57  )->join(
58  [
59  'source_item_config' => $this->resourceConnection->getTableName(
60  'inventory_low_stock_notification_configuration'
61  )
62  ],
63  $configurationJoinCondition,
65  )->join(
66  ['legacy_stock_item' => $this->resourceConnection->getTableName('cataloginventory_stock_item')],
67  'legacy_stock_item.product_id = product.entity_id',
68  [
69  'legacy_stock_item.' . StockItemInterface::LOW_STOCK_DATE,
70  'use_config' => 'legacy_stock_item.' . StockItemInterface::USE_CONFIG_NOTIFY_STOCK_QTY
71  ]
72  )->group('main_table.' . SourceItem::ID_FIELD_NAME);
73  }
74 }
const SQL_AND
Definition: Select.php:77