Loading module/Formation/config/others/inscription.config.php +5 −1 Original line number Diff line number Diff line Loading @@ -9,6 +9,8 @@ use Formation\Controller\InscriptionController; use Formation\Controller\InscriptionControllerFactory; use Formation\Controller\Recherche\InscriptionRechercheController; use Formation\Controller\Recherche\InscriptionRechercheControllerFactory; use Formation\Facade\Inscription\InscriptionFacade; use Formation\Facade\Inscription\InscriptionFacadeFactory; use Formation\Provider\Privilege\InscriptionPrivileges; use Formation\Service\Exporter\Attestation\AttestationExporter; use Formation\Service\Exporter\Attestation\AttestationExporterFactory; Loading Loading @@ -325,7 +327,9 @@ return [ InscriptionSearchService::class => InscriptionSearchServiceFactory::class, AttestationExporter::class => AttestationExporterFactory::class, ConvocationExporter::class => ConvocationExporterFactory::class, InscriptionAssertion::class => InscriptionAssertionFactory::class InscriptionAssertion::class => InscriptionAssertionFactory::class, InscriptionFacade::class => InscriptionFacadeFactory::class, ], ], 'controllers' => [ Loading module/Formation/src/Formation/Controller/FormationController.php +1 −1 Original line number Diff line number Diff line Loading @@ -71,7 +71,7 @@ class FormationController extends AbstractController 'formation' => $formation, 'sessions' => $sessionsAvecAnneeUniv, 'anneeUnivCourante' => $anneeUnivCourante, 'anneesUniv' => $this->formationService->getAnneesUnivAsOptions($sessions), 'anneesUniv' => $this->formationService->getAnneesUnivAsOptions($sessions, true), 'sousCompetencesAssociees' => $sousCompetencesAssociees, 'urlFichierPlugin' => $this->urlFichier(), 'exports' => [$this->formationXlsxExportManager->get(FormationStatsXlsxExport::CODE)], Loading module/Formation/src/Formation/Controller/IndexController.php +12 −52 Original line number Diff line number Diff line Loading @@ -11,8 +11,8 @@ use Formation\Entity\Db\Etat; use Formation\Entity\Db\FormationExterne; use Formation\Entity\Db\Inscription; use Formation\Entity\Db\Session; use Formation\Facade\Inscription\InscriptionFacadeAwareTrait; use Formation\Provider\Parametre\FormationParametres; use Formation\Service\Justificatif\JustificatifServiceAwareTrait; use Formation\Provider\Validation\TypeValidation; use Formation\Service\Formation\FormationExterne\FormationExterneServiceAwareTrait; use Formation\Service\Validation\ValidationFormationExterne\ValidationFormationExterneServiceAwareTrait; Loading @@ -33,8 +33,8 @@ class IndexController extends AbstractController use AnneeUnivServiceAwareTrait; use FormationExterneServiceAwareTrait; use ValidationFormationExterneServiceAwareTrait; use JustificatifServiceAwareTrait; use SousCompetenceServiceAwareTrait; use InscriptionFacadeAwareTrait; public function indexAction() : ViewModel { Loading @@ -59,52 +59,31 @@ class IndexController extends AbstractController $ouvertes = $this->getEntityManager()->getRepository(Session::class)->findSessionsByDoctorant($doctorant, Etat::CODE_OUVERTE, verifDatePublication: true); $preparations = $this->getEntityManager()->getRepository(Session::class)->findSessionsByDoctorant($doctorant, Etat::CODE_PREPARATION, verifDatePublication: true); /** @var Inscription[] $inscription */ $inscriptions = $this->getEntityManager()->getRepository(Inscription::class)->findInscriptionsByDoctorant($doctorant); $terminees = []; $encours = []; $inscriptionsAbsenceInjustifiees = []; /** @var Inscription $inscription */ foreach ($inscriptions as $inscription) { $seances = $inscription->getSession()->getSeances()->toArray(); $seances = array_filter($seances, function ($a) { return $a->estNonHistorise(); }); $nbSeance = count($seances); if ($nbSeance > 0 /** AND $inscription->getSession()->estTerminee() **/ AND $inscription->getSession()->getEtat()->getCode() === Etat::CODE_CLOTURER) { $terminees[] = $inscription; if($this->justificatifService->isInscriptionHasAbsenceInjustifiee($inscription)) $inscriptionsAbsenceInjustifiees[] = $inscription; } else { if ($inscription->estNonHistorise()) $encours[] = $inscription; } } $formationsExternes = $this->formationExterneService->getRepository()->fetchFormationsExternesByDoctorant($doctorant, 'debut', 'ASC', true); $formationsExternesAvecAnneeUniv = $this->getFormationsExternesAvecAnneeUniv($formationsExternes, $anneeUnivCourante); } else { $ouvertes = []; $preparations = []; $inscriptions = []; $terminees = []; $encours = []; $inscriptionsAbsenceInjustifiees = []; $formationsExternesAvecAnneeUniv = []; } return new ViewModel([ $vm = new ViewModel([ 'doctorant' => $doctorant, 'ouvertes' => $ouvertes, 'preparations' => $preparations, 'terminees' => array_filter($terminees, function (Inscription $a) { return $a->getListe() === Inscription::LISTE_PRINCIPALE; }), 'encours' => $encours, 'inscriptions' => $inscriptions, 'formationsExternes' => $formationsExternesAvecAnneeUniv, 'anneesUnivFormationsExternes' => $this->formationExterneService->getAnneesUnivAsOptions($formationsExternes), 'role' => $this->userContextService->getSelectedIdentityRole(), 'anneeUnivCourante' => $anneeUnivCourante, 'anneesUniv' => $this->formationExterneService->getAnneesUnivAsOptions($formationsExternes), 'inscriptionsAbsenceInjustifiees' => $inscriptionsAbsenceInjustifiees, 'delai' => $this->getParametreService()->getValeurForParametre(FormationParametres::CATEGORIE, FormationParametres::DELAI_ENQUETE), ]); $vm->setVariables($this->inscriptionFacade->getVariablesForAffichageInscriptions($doctorant)); return $vm; } public function indexFormateurAction() : ViewModel Loading Loading @@ -143,40 +122,21 @@ class IndexController extends AbstractController $anneeUnivCourante = $this->anneeUnivService->courante(); /** @var Inscription[] $inscription */ $inscriptions = $this->getEntityManager()->getRepository(Inscription::class)->findInscriptionsByDoctorant($doctorant); $terminees = []; $encours = []; /** @var Inscription $inscription */ foreach ($inscriptions as $inscription) { $seances = $inscription->getSession()->getSeances()->toArray(); $seances = array_filter($seances, function ($a) { return $a->estNonHistorise(); }); $nbSeance = count($seances); if ($nbSeance > 0 /** AND $inscription->getSession()->estTerminee() **/ AND $inscription->getSession()->getEtat()->getCode() === Etat::CODE_CLOTURER) { $terminees[] = $inscription; } else { if ($inscription->estNonHistorise()) $encours[] = $inscription; } } $formationsExternes = $this->formationExterneService->getRepository()->fetchFormationsExternesByDoctorant($doctorant, 'debut', 'ASC', true); $formationsExternesAvecAnneeUniv = $this->getFormationsExternesAvecAnneeUniv($formationsExternes, $anneeUnivCourante); $delai = $this->getParametreService()->getValeurForParametre(FormationParametres::CATEGORIE, FormationParametres::DELAI_ENQUETE); return new ViewModel([ $vm = new ViewModel([ 'these' => $these, 'doctorant' => $doctorant, 'inscriptions' => $inscriptions, 'terminees' => array_filter($terminees, function (Inscription $a) { return $a->getListe() === Inscription::LISTE_PRINCIPALE; }), 'encours' => $encours, 'formationsExternes' => $formationsExternesAvecAnneeUniv, 'anneesUnivFormationsExternes' => $this->formationExterneService->getAnneesUnivAsOptions($formationsExternes), 'role' => $this->userContextService->getSelectedIdentityRole(), 'anneeUnivCourante' => $anneeUnivCourante, 'anneesUniv' => $this->formationExterneService->getAnneesUnivAsOptions($formationsExternes), 'delai' => $this->getParametreService()->getValeurForParametre(FormationParametres::CATEGORIE, FormationParametres::DELAI_ENQUETE), ]); $vm->setVariables($this->inscriptionFacade->getVariablesForAffichageInscriptions($doctorant)); return $vm; } /** Loading module/Formation/src/Formation/Controller/IndexControllerFactory.php +5 −3 Original line number Diff line number Diff line Loading @@ -5,6 +5,8 @@ namespace Formation\Controller; use Application\Service\AnneeUniv\AnneeUnivService; use Doctorant\Service\DoctorantService; use Doctrine\ORM\EntityManager; use Formation\Facade\Inscription\InscriptionFacade; use Formation\Service\Inscription\InscriptionService; use Formation\Service\Justificatif\JustificatifService; use Formation\Service\Formation\FormationExterne\FormationExterneService; use Formation\Service\Validation\ValidationFormationExterne\ValidationFormationExterneService; Loading @@ -31,8 +33,8 @@ class IndexControllerFactory { * @var AnneeUnivService $anneeUnivService * @var FormationExterneService $formationExterneService * @var ValidationFormationExterneService $validationFormationExterneService * @var JustificatifService $justificatifService * @var SousCompetenceService $sousCompetenceService * @var InscriptionFacade $inscriptionFacade */ $entityManager = $container->get('doctrine.entitymanager.orm_default'); $doctorantService = $container->get(DoctorantService::class); Loading @@ -40,18 +42,18 @@ class IndexControllerFactory { $anneeUnivService = $container->get(AnneeUnivService::class); $formationExterneService = $container->get(FormationExterneService::class); $validationFormationExterneService = $container->get(ValidationFormationExterneService::class); $justificatifService = $container->get(JustificatifService::class); $sousCompetenceService = $container->get(SousCompetenceService::class); $inscriptionFacade = $container->get(InscriptionFacade::class); $controller = new IndexController(); $controller->setEntityManager($entityManager); $controller->setDoctorantService($doctorantService); $controller->setParametreService($parametreService); $controller->setAnneeUnivService($anneeUnivService); $controller->setJustificatifService($justificatifService); $controller->setFormationExterneService($formationExterneService); $controller->setValidationFormationExterneService($validationFormationExterneService); $controller->setSousCompetenceService($sousCompetenceService); $controller->setInscriptionFacade($inscriptionFacade); return $controller; } Loading module/Formation/src/Formation/Facade/Inscription/InscriptionFacade.php 0 → 100644 +30 −0 Original line number Diff line number Diff line <?php namespace Formation\Facade\Inscription; use Application\Service\AnneeUniv\AnneeUnivServiceAwareTrait; use Doctorant\Entity\Db\Doctorant; use Formation\Entity\Db\Etat; use Formation\Service\Inscription\InscriptionServiceAwareTrait; class InscriptionFacade { use AnneeUnivServiceAwareTrait; use InscriptionServiceAwareTrait; public function getVariablesForAffichageInscriptions(Doctorant $doctorant): array { $anneeUnivCourante = $this->anneeUnivService->courante(); $inscriptionsTerminees = $this->inscriptionService->getInscriptionsTermineesAvecSousCompetences($doctorant, $anneeUnivCourante, [Etat::CODE_CLOTURER]); $inscriptionsEnCours = $this->inscriptionService->getInscriptionsEnCoursAvecSousCompetences($doctorant, $anneeUnivCourante, [Etat::CODE_CLOTURER]); return [ 'inscriptionsTerminees' => $inscriptionsTerminees, 'anneesUnivInscriptionsTerminees' => $this->inscriptionService->getAnneesUnivAsOptions(array_map( fn($item) => $item['inscription'], $inscriptionsTerminees )), 'inscriptionsEnCours' => $inscriptionsEnCours, ]; } } No newline at end of file Loading
module/Formation/config/others/inscription.config.php +5 −1 Original line number Diff line number Diff line Loading @@ -9,6 +9,8 @@ use Formation\Controller\InscriptionController; use Formation\Controller\InscriptionControllerFactory; use Formation\Controller\Recherche\InscriptionRechercheController; use Formation\Controller\Recherche\InscriptionRechercheControllerFactory; use Formation\Facade\Inscription\InscriptionFacade; use Formation\Facade\Inscription\InscriptionFacadeFactory; use Formation\Provider\Privilege\InscriptionPrivileges; use Formation\Service\Exporter\Attestation\AttestationExporter; use Formation\Service\Exporter\Attestation\AttestationExporterFactory; Loading Loading @@ -325,7 +327,9 @@ return [ InscriptionSearchService::class => InscriptionSearchServiceFactory::class, AttestationExporter::class => AttestationExporterFactory::class, ConvocationExporter::class => ConvocationExporterFactory::class, InscriptionAssertion::class => InscriptionAssertionFactory::class InscriptionAssertion::class => InscriptionAssertionFactory::class, InscriptionFacade::class => InscriptionFacadeFactory::class, ], ], 'controllers' => [ Loading
module/Formation/src/Formation/Controller/FormationController.php +1 −1 Original line number Diff line number Diff line Loading @@ -71,7 +71,7 @@ class FormationController extends AbstractController 'formation' => $formation, 'sessions' => $sessionsAvecAnneeUniv, 'anneeUnivCourante' => $anneeUnivCourante, 'anneesUniv' => $this->formationService->getAnneesUnivAsOptions($sessions), 'anneesUniv' => $this->formationService->getAnneesUnivAsOptions($sessions, true), 'sousCompetencesAssociees' => $sousCompetencesAssociees, 'urlFichierPlugin' => $this->urlFichier(), 'exports' => [$this->formationXlsxExportManager->get(FormationStatsXlsxExport::CODE)], Loading
module/Formation/src/Formation/Controller/IndexController.php +12 −52 Original line number Diff line number Diff line Loading @@ -11,8 +11,8 @@ use Formation\Entity\Db\Etat; use Formation\Entity\Db\FormationExterne; use Formation\Entity\Db\Inscription; use Formation\Entity\Db\Session; use Formation\Facade\Inscription\InscriptionFacadeAwareTrait; use Formation\Provider\Parametre\FormationParametres; use Formation\Service\Justificatif\JustificatifServiceAwareTrait; use Formation\Provider\Validation\TypeValidation; use Formation\Service\Formation\FormationExterne\FormationExterneServiceAwareTrait; use Formation\Service\Validation\ValidationFormationExterne\ValidationFormationExterneServiceAwareTrait; Loading @@ -33,8 +33,8 @@ class IndexController extends AbstractController use AnneeUnivServiceAwareTrait; use FormationExterneServiceAwareTrait; use ValidationFormationExterneServiceAwareTrait; use JustificatifServiceAwareTrait; use SousCompetenceServiceAwareTrait; use InscriptionFacadeAwareTrait; public function indexAction() : ViewModel { Loading @@ -59,52 +59,31 @@ class IndexController extends AbstractController $ouvertes = $this->getEntityManager()->getRepository(Session::class)->findSessionsByDoctorant($doctorant, Etat::CODE_OUVERTE, verifDatePublication: true); $preparations = $this->getEntityManager()->getRepository(Session::class)->findSessionsByDoctorant($doctorant, Etat::CODE_PREPARATION, verifDatePublication: true); /** @var Inscription[] $inscription */ $inscriptions = $this->getEntityManager()->getRepository(Inscription::class)->findInscriptionsByDoctorant($doctorant); $terminees = []; $encours = []; $inscriptionsAbsenceInjustifiees = []; /** @var Inscription $inscription */ foreach ($inscriptions as $inscription) { $seances = $inscription->getSession()->getSeances()->toArray(); $seances = array_filter($seances, function ($a) { return $a->estNonHistorise(); }); $nbSeance = count($seances); if ($nbSeance > 0 /** AND $inscription->getSession()->estTerminee() **/ AND $inscription->getSession()->getEtat()->getCode() === Etat::CODE_CLOTURER) { $terminees[] = $inscription; if($this->justificatifService->isInscriptionHasAbsenceInjustifiee($inscription)) $inscriptionsAbsenceInjustifiees[] = $inscription; } else { if ($inscription->estNonHistorise()) $encours[] = $inscription; } } $formationsExternes = $this->formationExterneService->getRepository()->fetchFormationsExternesByDoctorant($doctorant, 'debut', 'ASC', true); $formationsExternesAvecAnneeUniv = $this->getFormationsExternesAvecAnneeUniv($formationsExternes, $anneeUnivCourante); } else { $ouvertes = []; $preparations = []; $inscriptions = []; $terminees = []; $encours = []; $inscriptionsAbsenceInjustifiees = []; $formationsExternesAvecAnneeUniv = []; } return new ViewModel([ $vm = new ViewModel([ 'doctorant' => $doctorant, 'ouvertes' => $ouvertes, 'preparations' => $preparations, 'terminees' => array_filter($terminees, function (Inscription $a) { return $a->getListe() === Inscription::LISTE_PRINCIPALE; }), 'encours' => $encours, 'inscriptions' => $inscriptions, 'formationsExternes' => $formationsExternesAvecAnneeUniv, 'anneesUnivFormationsExternes' => $this->formationExterneService->getAnneesUnivAsOptions($formationsExternes), 'role' => $this->userContextService->getSelectedIdentityRole(), 'anneeUnivCourante' => $anneeUnivCourante, 'anneesUniv' => $this->formationExterneService->getAnneesUnivAsOptions($formationsExternes), 'inscriptionsAbsenceInjustifiees' => $inscriptionsAbsenceInjustifiees, 'delai' => $this->getParametreService()->getValeurForParametre(FormationParametres::CATEGORIE, FormationParametres::DELAI_ENQUETE), ]); $vm->setVariables($this->inscriptionFacade->getVariablesForAffichageInscriptions($doctorant)); return $vm; } public function indexFormateurAction() : ViewModel Loading Loading @@ -143,40 +122,21 @@ class IndexController extends AbstractController $anneeUnivCourante = $this->anneeUnivService->courante(); /** @var Inscription[] $inscription */ $inscriptions = $this->getEntityManager()->getRepository(Inscription::class)->findInscriptionsByDoctorant($doctorant); $terminees = []; $encours = []; /** @var Inscription $inscription */ foreach ($inscriptions as $inscription) { $seances = $inscription->getSession()->getSeances()->toArray(); $seances = array_filter($seances, function ($a) { return $a->estNonHistorise(); }); $nbSeance = count($seances); if ($nbSeance > 0 /** AND $inscription->getSession()->estTerminee() **/ AND $inscription->getSession()->getEtat()->getCode() === Etat::CODE_CLOTURER) { $terminees[] = $inscription; } else { if ($inscription->estNonHistorise()) $encours[] = $inscription; } } $formationsExternes = $this->formationExterneService->getRepository()->fetchFormationsExternesByDoctorant($doctorant, 'debut', 'ASC', true); $formationsExternesAvecAnneeUniv = $this->getFormationsExternesAvecAnneeUniv($formationsExternes, $anneeUnivCourante); $delai = $this->getParametreService()->getValeurForParametre(FormationParametres::CATEGORIE, FormationParametres::DELAI_ENQUETE); return new ViewModel([ $vm = new ViewModel([ 'these' => $these, 'doctorant' => $doctorant, 'inscriptions' => $inscriptions, 'terminees' => array_filter($terminees, function (Inscription $a) { return $a->getListe() === Inscription::LISTE_PRINCIPALE; }), 'encours' => $encours, 'formationsExternes' => $formationsExternesAvecAnneeUniv, 'anneesUnivFormationsExternes' => $this->formationExterneService->getAnneesUnivAsOptions($formationsExternes), 'role' => $this->userContextService->getSelectedIdentityRole(), 'anneeUnivCourante' => $anneeUnivCourante, 'anneesUniv' => $this->formationExterneService->getAnneesUnivAsOptions($formationsExternes), 'delai' => $this->getParametreService()->getValeurForParametre(FormationParametres::CATEGORIE, FormationParametres::DELAI_ENQUETE), ]); $vm->setVariables($this->inscriptionFacade->getVariablesForAffichageInscriptions($doctorant)); return $vm; } /** Loading
module/Formation/src/Formation/Controller/IndexControllerFactory.php +5 −3 Original line number Diff line number Diff line Loading @@ -5,6 +5,8 @@ namespace Formation\Controller; use Application\Service\AnneeUniv\AnneeUnivService; use Doctorant\Service\DoctorantService; use Doctrine\ORM\EntityManager; use Formation\Facade\Inscription\InscriptionFacade; use Formation\Service\Inscription\InscriptionService; use Formation\Service\Justificatif\JustificatifService; use Formation\Service\Formation\FormationExterne\FormationExterneService; use Formation\Service\Validation\ValidationFormationExterne\ValidationFormationExterneService; Loading @@ -31,8 +33,8 @@ class IndexControllerFactory { * @var AnneeUnivService $anneeUnivService * @var FormationExterneService $formationExterneService * @var ValidationFormationExterneService $validationFormationExterneService * @var JustificatifService $justificatifService * @var SousCompetenceService $sousCompetenceService * @var InscriptionFacade $inscriptionFacade */ $entityManager = $container->get('doctrine.entitymanager.orm_default'); $doctorantService = $container->get(DoctorantService::class); Loading @@ -40,18 +42,18 @@ class IndexControllerFactory { $anneeUnivService = $container->get(AnneeUnivService::class); $formationExterneService = $container->get(FormationExterneService::class); $validationFormationExterneService = $container->get(ValidationFormationExterneService::class); $justificatifService = $container->get(JustificatifService::class); $sousCompetenceService = $container->get(SousCompetenceService::class); $inscriptionFacade = $container->get(InscriptionFacade::class); $controller = new IndexController(); $controller->setEntityManager($entityManager); $controller->setDoctorantService($doctorantService); $controller->setParametreService($parametreService); $controller->setAnneeUnivService($anneeUnivService); $controller->setJustificatifService($justificatifService); $controller->setFormationExterneService($formationExterneService); $controller->setValidationFormationExterneService($validationFormationExterneService); $controller->setSousCompetenceService($sousCompetenceService); $controller->setInscriptionFacade($inscriptionFacade); return $controller; } Loading
module/Formation/src/Formation/Facade/Inscription/InscriptionFacade.php 0 → 100644 +30 −0 Original line number Diff line number Diff line <?php namespace Formation\Facade\Inscription; use Application\Service\AnneeUniv\AnneeUnivServiceAwareTrait; use Doctorant\Entity\Db\Doctorant; use Formation\Entity\Db\Etat; use Formation\Service\Inscription\InscriptionServiceAwareTrait; class InscriptionFacade { use AnneeUnivServiceAwareTrait; use InscriptionServiceAwareTrait; public function getVariablesForAffichageInscriptions(Doctorant $doctorant): array { $anneeUnivCourante = $this->anneeUnivService->courante(); $inscriptionsTerminees = $this->inscriptionService->getInscriptionsTermineesAvecSousCompetences($doctorant, $anneeUnivCourante, [Etat::CODE_CLOTURER]); $inscriptionsEnCours = $this->inscriptionService->getInscriptionsEnCoursAvecSousCompetences($doctorant, $anneeUnivCourante, [Etat::CODE_CLOTURER]); return [ 'inscriptionsTerminees' => $inscriptionsTerminees, 'anneesUnivInscriptionsTerminees' => $this->inscriptionService->getAnneesUnivAsOptions(array_map( fn($item) => $item['inscription'], $inscriptionsTerminees )), 'inscriptionsEnCours' => $inscriptionsEnCours, ]; } } No newline at end of file