Loading src/Octopus/Entity/Db/Mapping/Octopus.Entity.Db.Individu.dcm.xml +3 −0 Original line number Diff line number Diff line Loading @@ -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"/> Loading src/Octopus/Service/Individu/IndividuService.php +24 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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') Loading @@ -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 Loading
src/Octopus/Entity/Db/Mapping/Octopus.Entity.Db.Individu.dcm.xml +3 −0 Original line number Diff line number Diff line Loading @@ -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"/> Loading
src/Octopus/Service/Individu/IndividuService.php +24 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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') Loading @@ -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