plein de truc

This commit is contained in:
marvin
2024-11-22 14:10:39 +01:00
parent 22006281cd
commit db38ec2979
11 changed files with 710 additions and 185 deletions

View File

@@ -2,6 +2,7 @@
namespace App\Repository;
use App\Entity\Site;
use App\Entity\Sortie;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
@@ -16,6 +17,64 @@ class SortieRepository extends ServiceEntityRepository
parent::__construct($registry, Sortie::class);
}
public function findWithFilters($search, $siteId, $startDate, $endDate, $organisateur, $inscrit, $nonInscrit, $passees, $user)
{
$qb = $this->createQueryBuilder('s');
if ($search) {
$qb->andWhere('s.nom LIKE :search')
->setParameter('search', '%' . $search . '%');
}
if ($siteId) {
$qb->andWhere('s.site = :siteId')
->setParameter('siteId', $siteId);
}
if ($startDate) {
$qb->andWhere('s.dateHeureDebut >= :startDate')
->setParameter('startDate', new \DateTime($startDate));
}
if ($endDate) {
$qb->andWhere('s.dateHeureDebut <= :endDate')
->setParameter('endDate', new \DateTime($endDate));
}
if ($organisateur) {
$qb->andWhere('s.organisateur = :user')
->setParameter('user', $user);
}
if ($inscrit) {
$qb->andWhere(':user MEMBER OF s.participants')
->setParameter('user', $user);
}
if ($nonInscrit) {
$qb->andWhere(':user NOT MEMBER OF s.participants')
->setParameter('user', $user);
}
if ($passees) {
$qb->andWhere('s.dateHeureDebut < :now')
->setParameter('now', new \DateTime());
} else {
$qb->andWhere('s.dateHeureDebut >= :now')
->setParameter('now', new \DateTime());
}
return $qb->getQuery()->getResult();
}
public function findAllSites()
{
return $this->getEntityManager()
->getRepository(Site::class)
->findAll();
}
// /**
// * @return Sortie[] Returns an array of Sortie objects
// */