Skip to content

Commit 50823ce

Browse files
committed
Merge remote-tracking branch 'tango/MAGETWO-95721' into PR-2.2-1
2 parents e9c1946 + 423f89e commit 50823ce

File tree

2 files changed

+31
-1
lines changed
  • app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/Query
  • dev/tests/integration/testsuite/Magento/Catalog/Model/ResourceModel/Product

2 files changed

+31
-1
lines changed

app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/Query/BaseFinalPrice.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ public function getQuery(array $dimensions, string $productType, array $entityId
190190
$specialFromExpr = "{$specialFrom} IS NULL OR {$specialFromDate} <= {$currentDate}";
191191
$specialToExpr = "{$specialTo} IS NULL OR {$specialToDate} >= {$currentDate}";
192192
$specialPriceExpr = $connection->getCheckSql(
193-
"{$specialPrice} IS NOT NULL AND {$specialFromExpr} AND {$specialToExpr}",
193+
"{$specialPrice} IS NOT NULL AND ({$specialFromExpr}) AND ({$specialToExpr})",
194194
$specialPrice,
195195
$maxUnsignedBigint
196196
);

dev/tests/integration/testsuite/Magento/Catalog/Model/ResourceModel/Product/CollectionTest.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,36 @@ public function testGetProductsWithTierPrice()
127127
$this->assertEquals(5, $tierPrices[2]->getValue());
128128
}
129129

130+
/**
131+
* @magentoDataFixture Magento/Catalog/_files/products.php
132+
* @magentoDbIsolation disabled
133+
*/
134+
public function testGetProductsWithSpecialPrice()
135+
{
136+
$product = $this->productRepository->get('simple');
137+
$originalFinalPrice = $product->getFinalPrice();
138+
139+
$specialPrice = 9;
140+
$product->setSpecialPrice($specialPrice);
141+
$product = $this->productRepository->save($product);
142+
/** @var \Magento\Catalog\Model\Product $item */
143+
$item = $this->collection->addIdFilter($product->getId())
144+
->addPriceData()
145+
->getFirstItem();
146+
$item->setPriceCalculation(false);
147+
$this->assertEquals($specialPrice, $item->getFinalPrice());
148+
149+
$product->setSpecialPrice(null);
150+
$product = $this->productRepository->save($product);
151+
/** @var \Magento\Catalog\Model\Product $item */
152+
$item = $this->collection->clear()
153+
->addIdFilter($product->getId())
154+
->addPriceData()
155+
->getFirstItem();
156+
$item->setPriceCalculation(false);
157+
$this->assertEquals($originalFinalPrice, $item->getFinalPrice());
158+
}
159+
130160
/**
131161
* Test addAttributeToSort() with attribute 'is_saleable' works properly on frontend.
132162
*

0 commit comments

Comments
 (0)