Commit 81ffa22e authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Correction mineure et ajout de fonction de recherche

parent 80572f2a
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -24,6 +24,9 @@
        <field name="cCommuneNaissance"    type="string"   length="5"        column="C_COMMUNE_NAISSANCE"      nullable="false"/>
        <field name="cDeptNaissance"       type="string"   length="3"        column="C_DEPT_NAISSANCE"         nullable="false"/>
        <field name="cPaysNaissance"       type="string"   length="3"        column="C_PAYS_NAISSANCE"         nullable="false"/>
        <!--<many-to-one target-entity="Octopus\Entity\Db\Pays" field="cPaysNaissance">-->
            <!--<join-column name="C_PAYS_NAISSANCE" referenced-column-name="CODE_PAYS" />-->
        <!--</many-to-one>-->
        <field name="cPaysNationalite"     type="string"   length="3"        column="C_PAYS_NATIONALITE"       nullable="false"/>
        <field name="telPersonnelle"       type="string"   length="20"       column="TEL_PERSO"                nullable="false"/>
        <field name="emailPersonnelle"     type="string"   length="255"      column="EMAIL_PERSO"              nullable="false"/>
+24 −1
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ namespace Octopus\Service\Individu;

use Doctrine\ORM\NonUniqueResultException;
use Octopus\Entity\Db\Individu;
use Octopus\Entity\Db\Source;
use UnicaenApp\Exception\RuntimeException;
use UnicaenApp\Service\EntityManagerAwareTrait;

@@ -54,7 +55,7 @@ class IndividuService {
    public function getIndividusByTerm($term, $sourceCode = null)
    {
        $qb = $this->getEntityManager()->getRepository(Individu::class)->createQueryBuilder('individu')
            ->addSelect('source')->join('individu.source', 'source')
            ->addSelect('source')->join('individu.cSource', 'source')
            ->andWhere('individu.nomUsage LIKE :search')
            ->setParameter('search', '%'.$term.'%')
            ->orderBy('individu.nomUsage, individu.prenom')
@@ -68,4 +69,26 @@ class IndividuService {
        $result = $qb->getQuery()->getResult();
        return $result;
    }

    /**
     * @param integer $numeroEtudiant
     * @return Individu
     */
    public function getEtudiantByNumero($numeroEtudiant)
    {
        $qb = $this->getEntityManager()->getRepository(Individu::class)->createQueryBuilder('individu')
            ->addSelect('source')->join('individu.cSource', 'source')
            ->andWhere('individu.cEtu = :numero')
            ->andWhere('source.cSource = :sourceCode')
            ->setParameter('numero', $numeroEtudiant)
            ->setParameter('sourceCode', Source::SOURCE_APOGEE)
            ;

        try {
            $result = $qb->getQuery()->getOneOrNullResult();
        } catch (NonUniqueResultException $e) {
            throw new RuntimeException("Plusieurs étudiants partagent le même numéro étudiant [".$numeroEtudiant."].",$e);
        }
        return $result;
    }
}
 No newline at end of file