6 declare(strict_types=1);
24 private $priceResourceModel;
29 private $resourceConnection;
34 private $connectionName;
42 Price $priceResourceModel,
44 $connectionName =
'indexer' 46 $this->priceResourceModel = $priceResourceModel;
48 $this->connectionName = $connectionName;
56 $connection = $this->resourceConnection->getConnection($this->connectionName);
61 [
'cpiw' => $this->priceResourceModel->getTable(
'catalog_product_index_website')],
66 [
'cpp' => $this->priceResourceModel->getMainTable()],
70 .
' AND cpp.rule_date = cpiw.website_date',
74 $select->where(
'i.entity_id IN (?)', $entityIds);
78 $finalPriceExpr =
$select->getConnection()->getLeastSql([
80 $select->getConnection()->getIfNullSql(
'cpp.rule_price',
'i.' . $finalPrice),
83 $minPriceExpr =
$select->getConnection()->getLeastSql([
85 $select->getConnection()->getIfNullSql(
'cpp.rule_price',
'i.' . $minPrice),
88 $finalPrice => $finalPriceExpr,
89 $minPrice => $minPriceExpr,
__construct(Price $priceResourceModel, ResourceConnection $resourceConnection, $connectionName='indexer')
modifyPrice(IndexTableStructure $priceTable, array $entityIds=[])