Commit 6295fe34 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

[FIX] Soutenance : non prise en compte du décès d'un acteur, empêchant la...

[FIX] Soutenance : non prise en compte du décès d'un acteur, empêchant la validation de la part des structures (UR, ED).
parent fff59720
Loading
Loading
Loading
Loading
+1 −0
Changes for CHANGELOG.md: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ Journal des modifications
- [FIX] Inscription administrative : mapping erroné de la nationalité de l'apprenant, impactant la création de l'individu à l'import de l'IA.
- [FIX] Création de thèse à partir du dossier d'admission : le codirecteur de thèse avait le rôle de directeur.
- [FIX] Admission et thèse saisie dans l'application : l'origine de financement doit provenir de la source SyGAL.
- [FIX] Soutenance : non prise en compte du décès d'un acteur, empêchant la validation de la part des structures (UR, ED). 

13.2.0
------
+16 −5
Changes for module/Soutenance/src/Soutenance/Assertion/These/PropositionTheseAssertion.php: 16 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -184,16 +184,28 @@ class PropositionTheseAssertion implements AssertionInterface {
            case PropositionPrivileges::PROPOSITION_VALIDER_UR:
                switch ($role) {
                    case Role::CODE_RESP_UR :

                        $validationsArray = [];
                        $validationsArray[$these->getApprenant()->getIndividu()->getId()] = [];
                        /** @var ActeurThese $directeur */
                        foreach ($these->getActeursByRoleCode(Role::CODE_DIRECTEUR_THESE) as $directeur) $validationsArray[$directeur->getIndividu()->getId()] = [];
                        foreach ($these->getActeursByRoleCode(Role::CODE_CODIRECTEUR_THESE) as $directeur) $validationsArray[$directeur->getIndividu()->getId()] = [];
                        $validations_ACTEUR = $this->getValidationTheseService()->getRepository()->findValidationByCodeAndThese(TypeValidation::CODE_PROPOSITION_SOUTENANCE, $these);
                        foreach ($these->getActeursByRoleCode(Role::CODE_DIRECTEUR_THESE) as $directeur) {
                            if (!$directeur->getIndividu()->getEstDecede()) {
                                $validationsArray[$directeur->getIndividu()->getId()] = [];
                            }
                        }
                        foreach ($these->getActeursByRoleCode(Role::CODE_CODIRECTEUR_THESE) as $directeur) {
                            if (!$directeur->getIndividu()->getEstDecede()) {
                                $validationsArray[$directeur->getIndividu()->getId()] = [];
                            }
                        }
                        $validations_ACTEUR = $this->getValidationTheseService()->getRepository()->findValidationByCodeAndThese(
                            TypeValidation::CODE_PROPOSITION_SOUTENANCE,
                            $these
                        );
                        foreach ($validations_ACTEUR as $validation) {
                            if (array_key_exists($validation->getIndividu()->getId(), $validationsArray)) {
                                $validationsArray[$validation->getIndividu()->getId()][] = $validation;
                            }
                        }
                        $ok = true;
                        foreach ($validationsArray as $id => $validations) {
                            if (empty($validations)) {
@@ -217,7 +229,6 @@ class PropositionTheseAssertion implements AssertionInterface {
                        return false;
                }
            case PropositionPrivileges::PROPOSITION_VALIDER_BDD:

                switch ($role) {
                    case Role::CODE_BDD :
                        $validations_UNITE  = $this->getValidationTheseService()->getRepository()->findValidationByCodeAndThese(TypeValidation::CODE_VALIDATION_PROPOSITION_UR, $these);