first commit
This commit is contained in:
41
class/Query/Price.php
Normal file
41
class/Query/Price.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<?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
|
||||
);
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user