Commit ce916087 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

WIP uuid apprenant and co Tests

parent 80f2d277
Loading
Loading
Loading
Loading
+0 −5
Changes for module/Admission/src/Admission/Entity/Db/Etat.php: 0 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -30,11 +30,6 @@ class Etat
        return $this->libelle;
    }

    public function estValide(): bool
    {
        return $this->code === self::CODE_VALIDE;
    }

    /**
     * @return string
     */
+8 −29
Changes for module/Doctorant/src/Doctorant/Entity/Db/Repository/DoctorantRepository.php: 8 added lines, 29 removed lines.
Original line number Diff line number Diff line
@@ -13,7 +13,6 @@ use Structure\Entity\Db\EcoleDoctorale;
use Structure\Entity\Db\Etablissement;
use These\Entity\Db\These;
use UnicaenApp\Exception\RuntimeException;
use UnicaenApp\Util;

class DoctorantRepository extends DefaultEntityRepository
{
@@ -87,48 +86,28 @@ class DoctorantRepository extends DefaultEntityRepository
    /**
     * @throws \Doctorant\Entity\Db\Repository\Exception\NonUniqueDoctorantException
     */
    public function findOneByIneMaitre(string $ine): ?Doctorant
    public function findOneByIne(string|array $ine): ?Doctorant
    {
        $ines = (array)$ine;

        $qb = $this->createQueryBuilder('t');
        $qb
            ->join('t.individu', 'i')->addSelect('i')
            ->where('t.ine = :ine')
            ->where($qb->expr()->in('t.ine', $ines))
            ->andWhere('t.histoDestruction is null')
            ->setParameter('ine', $ine);

        try {
            return $qb->getQuery()->getOneOrNullResult();
        } catch (NonUniqueResultException $e) {
            throw new NonUniqueDoctorantException(
                "Anomalie : plusieurs doctorants (non historisés) ont été trouvés avec le même numéro INE '$ine'.",
                NonUniqueDoctorantException::CODE_INE,
            );
        }
    }

    /**
     * @throws \Doctorant\Entity\Db\Repository\Exception\NonUniqueDoctorantException
     */
    public function findOneByIneSecondaire(array|string $ineSecondaire): ?Doctorant
    {
        $inesSecondaires = (array)$ineSecondaire;

        $qb = $this->createQueryBuilder('t');
        $qb
            ->join('t.individu', 'i')->addSelect('i')
            ->where($qb->expr()->in('t.ine', $inesSecondaires))
            ->andWhere('t.histoDestruction is null');

        try {
            return $qb->getQuery()->getOneOrNullResult();
        } catch (NonUniqueResultException $e) {
            throw new NonUniqueDoctorantException(
                sprintf(
                    "Anomalie : plusieurs doctorants (non historisés) ont été trouvés avec le·s numéro·s INE " .
                    "secondaire·s suivant·s : %s.",
                    implode(', ', $inesSecondaires)
                    "Anomalie : plusieurs doctorants (non historisés) ont été trouvés avec %s : %s.",
                    is_array($ine) ? "les numéros INE suivants" : "le numéro INE suivant",
                    implode(', ', $ines)
                ),
                NonUniqueDoctorantException::CODE_INE,
                $e
            );
        }
    }
+6 −0
Changes for module/InscriptionAdministrative/config/others/inscription-admin.config.php: 6 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -12,6 +12,10 @@ use InscriptionAdministrative\Process\Reception\InscriptionAdministrativeRecepti
use InscriptionAdministrative\Process\Reception\InscriptionAdministrativeReceptionProcessFactory;
use InscriptionAdministrative\Rule\Reception\ReceptionRulePluginManager;
use InscriptionAdministrative\Rule\Reception\ReceptionRulePluginManagerFactory;
use InscriptionAdministrative\Rule\Reception\StatutValidee\StatutValideeDoctorantExistantRule;
use InscriptionAdministrative\Rule\Reception\StatutValidee\StatutValideeDoctorantExistantRuleFactory;
use InscriptionAdministrative\Rule\Reception\StatutValidee\StatutValideeDoctorantInexistantRule;
use InscriptionAdministrative\Rule\Reception\StatutValidee\StatutValideeDoctorantInexistantRuleFactory;
use InscriptionAdministrative\Service\InscriptionAdministrativeService;
use InscriptionAdministrative\Service\InscriptionAdministrativeServiceFactory;
use InscriptionAdministrative\Service\Search\InscriptionAdministrativeSearchService;
@@ -161,6 +165,8 @@ return [
            InscriptionAdministrativeImportProcessListener::class => InscriptionAdministrativeImportProcessListenerFactory::class,
            InscriptionAdministrativeReceptionProcess::class => InscriptionAdministrativeReceptionProcessFactory::class,
            ReceptionRulePluginManager::class => ReceptionRulePluginManagerFactory::class,
            StatutValideeDoctorantInexistantRule::class => StatutValideeDoctorantInexistantRuleFactory::class,
            StatutValideeDoctorantExistantRule::class => StatutValideeDoctorantExistantRuleFactory::class,
        ]
    ]
];
+1 −1

File changed.

Preview size limit exceeded, changes collapsed.

+1 −1
Changes for module/InscriptionAdministrative/src/InscriptionAdministrative/Controller/InscriptionAdministrativeController.php: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ class InscriptionAdministrativeController extends AbstractController
            $doctorantTrouveAvecCode = null;
        }
        try {
            $doctorantTrouveAvecINE = $this->doctorantService->getRepository()->findOneByIneMaitre($inscriptionAdministrativeApprenant->getINE());
            $doctorantTrouveAvecINE = $this->doctorantService->getRepository()->findOneByIne($inscriptionAdministrativeApprenant->getINE());
        } catch (NonUniqueDoctorantException $e) {
            $doctorantTrouveAvecINE = null;
        }
Loading