Files
kupshop/class/Query/Price.php
2025-08-02 16:30:27 +02:00

42 lines
1000 B
PHP

<?php
/**
* Created by PhpStorm.
* User: filip
* Date: 5/16/16
* Time: 1:13 PM.
*/
namespace Query;
class Price
{
public static function selectRange($minAlias = 'min', $maxAlias = 'max')
{
return self::doSelectRange($minAlias, $maxAlias, 'COALESCE(pv.price, p.price)');
}
public static function selectProductRange($minAlias = 'min', $maxAlias = 'max')
{
return self::doSelectRange($minAlias, $maxAlias, 'p.price');
}
private static function doSelectRange($minAlias, $maxAlias, $priceField)
{
return function (QueryBuilder $qb) use ($minAlias, $maxAlias, $priceField) {
$select = Product::withVatAndDiscount($qb, $priceField);
$qb->joinVatsOnProducts();
$qb->andWhere("{$priceField} > 0");
return sprintf(
'min(%s) %s, max(%s) %s',
$select,
$minAlias,
$select,
$maxAlias
);
};
}
}