diff --git a/src/Octopus/Entity/Db/Source.php b/src/Octopus/Entity/Db/Source.php index c48bed548c055b0aedde9cf0a5e41d442f6ccc89..ac608994a415ac95ffa4f0e1ff825e95d27258ae 100644 --- a/src/Octopus/Entity/Db/Source.php +++ b/src/Octopus/Entity/Db/Source.php @@ -3,6 +3,14 @@ namespace Octopus\Entity\Db; class Source { + + const SOURCE_APOGEE = "APO"; + const SOURCE_HARPEGE = "HARP"; + const SOURCE_FCA = "FCA"; + const SOURCE_OCTO = "OCTO"; + const SOURCE_INV = "INV"; + + /** @var string */ private $cSource; /** @var string */ diff --git a/src/Octopus/Service/Individu/IndividuService.php b/src/Octopus/Service/Individu/IndividuService.php index ea9443e9a6d1024e0a9881592accf2b7c68fe3e2..13f84a034fe6f967aaf3aac201ae7be3a213e761 100644 --- a/src/Octopus/Service/Individu/IndividuService.php +++ b/src/Octopus/Service/Individu/IndividuService.php @@ -48,16 +48,23 @@ class IndividuService { /** * @param string $term + * @param string $sourceCode * @return Individu[] */ - public function getIndividusByTerm($term) + public function getIndividusByTerm($term, $sourceCode = null) { $qb = $this->getEntityManager()->getRepository(Individu::class)->createQueryBuilder('individu') + ->addSelect('source')->join('individu.source', 'source') ->andWhere('individu.nomUsage LIKE :search') ->setParameter('search', '%'.$term.'%') ->orderBy('individu.nomUsage, individu.prenom') ; + if ($sourceCode) { + $qb = $qb->andWhere('source.cSource = :sourceCode') + ->setParameter('sourceCode', $sourceCode); + } + $result = $qb->getQuery()->getResult(); return $result; }