<?php
namespace Entrepreneurs\Bundle\AppBundle\Propel;
use Entrepreneurs\Bundle\AppBundle\Propel\Base\ReseauQuery as BaseReseauQuery;
use Propel\Runtime\ActiveQuery\Criteria;
class ReseauQuery extends BaseReseauQuery
{
public function filterBySelectedIdsFirst(array $ids): self
{
return
$this->filterById($ids)
->_or()
->filterByNom('A%', Criteria::LIKE)
;
}
public function orderByNbEntrepreneur($order = Criteria::ASC)
{
return $this
->withColumn('(
SELECT count(*)
FROM entrepreneur_reseau
LEFT JOIN entrepreneur ON entrepreneur_reseau.entrepreneur_id = entrepreneur.id
WHERE entrepreneur.statut_id IN ('.join(', ', EntrepreneurStatut::getActiveStatus()).') AND reseau_id = reseau.id)', 'NbEntrepreneur')
->orderBy('NbEntrepreneur', $order);
}
public function countNbEntrepreneur(Reseau $reseau): int
{
return EntrepreneurQuery::create()
->filterByReseau($reseau)
->filterByStatutId(EntrepreneurStatut::getActiveStatus(), Criteria::IN)
->count();
}
}