public function getCategoryActiveProductsQueryBuilder(CategoryInterface $category = null, $filter = null, $option = null)
{
$queryBuilder = $this->getCategoryProductsQueryBuilder($category);
$queryBuilder->leftJoin('p.variations', 'pv')->andWhere('p.parent IS NULL')->andWhere('p.enabled = :enabled')->andWhere($queryBuilder->expr()->orX('pv.enabled = :enabled', 'pv.enabled IS NULL'))->setParameter('enabled', true);
if (null !== $filter) {
// TODO manage various filter types
$queryBuilder->andWhere(sprintf('p.%s %s :%s', $filter, '>', $filter))->setParameter(sprintf(':%s', $filter), $option);
}
return $queryBuilder;
}