Commit 093941b1 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Afficher uniquement les etapes étant concernant potentiellement par une...

Afficher uniquement les etapes étant concernant potentiellement par une reconduction de centre de cout ou de modulateur.

Amélioration de l'UX pour l'utilisateur (phrases plus claires et précises dans l'explication).
parent ec0cf9f3
Loading
Loading
Loading
Loading
+38 −12
Original line number Diff line number Diff line
@@ -229,16 +229,28 @@ class OffreFormationController extends AbstractController
        //Récupération de toutes les étapes éligibles à la reconduction des coûts
        if (!empty($structure)) {
            $etapesReconduitesResult = $this->getServiceEtape()->getEtapeReconduit($structure);
            $codesEtapesWithoutCC = [];
            if ($etapesReconduitesResult) {
                foreach ($etapesReconduitesResult as $etape) {
                    if ($etape->getAnnee()->getLibelle() == $this->getServiceContext()->getAnnee()->getLibelle()) {
                        $epWithCc = $this->getServiceElementPedagogique()->countEpWithCc($etape);
                        if(empty($epWithCc))
                        {
                            $codesEtapesWithoutCC[] = $etape->getCode();
                        }
                        $etapesReconduites[$etape->getCode()]['N']['etape']    = $etape;
                        $etapesReconduites[$etape->getCode()]['N']['epWithCc'] = $this->getServiceElementPedagogique()->countEpWithCc($etape);
                        $etapesReconduites[$etape->getCode()]['N']['epWithCc'] = $epWithCc;
                    } else {
                        $epWithCc = $this->getServiceElementPedagogique()->countEpWithCc($etape);
                        $etapesReconduites[$etape->getCode()]['N1']['etape']    = $etape;
                        $etapesReconduites[$etape->getCode()]['N1']['epWithCc'] = $this->getServiceElementPedagogique()->countEpWithCc($etape);
                        $etapesReconduites[$etape->getCode()]['N1']['epWithCc'] = $epWithCc;
                    }
                }
                //Clean etapes sans aucun centre de coût
                foreach($codesEtapesWithoutCC as $code)
                {
                    unset($etapesReconduites[$code]);
                }
            }
        }

@@ -258,8 +270,8 @@ class OffreFormationController extends AbstractController
                }
                $result = $this->getProcessusReconduction()->reconduireCCFormation($etapesReconduitesCc);
                if ($result > 0) {
                    $this->flashMessenger()->addSuccessMessage("Les centres de coût ont bien été reconduit sur le $result 
                élément(s) pédagogique(s) existant pour la prochaine année universitaire");
                    $this->flashMessenger()->addSuccessMessage("Les centres de coût des éléments pédagogiques des étapes sélectionnées ont bien été reconduit pour la prochaine année universitaire ($result 
                élément(s) pédagogique(s) concerné(s))");
                } else {
                    $this->flashMessenger()->addWarningMessage("Aucun centre de cout n'a été reconduit car aucun élément
                pédagogique n'existe pour cette formation pour la prochaine année universitaire.");
@@ -289,15 +301,19 @@ class OffreFormationController extends AbstractController
        $anneeN  = $this->getServiceContext()->getAnnee();
        $anneeN1 = $this->getServiceContext()->getAnneeSuivante();


        [$structure, $niveau, $etape] = $this->getParams();
        $etapesReconduites = [];
        $fromPost          = 0;
        $role              = $this->getServiceContext()->getSelectedIdentityRole();



        $qb = $this->getServiceStructure()->finderByHistorique();
        $this->getServiceStructure()->finderByEnseignement($qb);
        $this->getServiceStructure()->finderByRole($role, $qb);
        $structures = $this->getServiceStructure()->getList($qb);
        $codesEtapesWithoutModulateur = [];

        //Récupération de toutes les étapes éligibles à la reconduction des coûts
        if (!empty($structure)) {
@@ -305,17 +321,26 @@ class OffreFormationController extends AbstractController
            if ($etapesReconduitesResult) {
                foreach ($etapesReconduitesResult as $etape) {
                    if ($etape->getAnnee()->getLibelle() == $this->getServiceContext()->getAnnee()->getLibelle()) {
                        $epWithModulateur = $this->getServiceElementPedagogique()->countEpWithModulateur($etape);
                        if(empty($epWithModulateur))
                        {
                            $codesEtapesWithoutModulateur[] = $etape->getCode();
                        }
                        $etapesReconduites[$etape->getCode()]['N']['etape']            = $etape;
                        $etapesReconduites[$etape->getCode()]['N']['epWithModulateur'] = $this->getServiceElementPedagogique()->countEpWithModulateur($etape);
                        $etapesReconduites[$etape->getCode()]['N']['epWithModulateur'] = $epWithModulateur;
                    } else {
                        $etapesReconduites[$etape->getCode()]['N1']['etape']            = $etape;
                        $etapesReconduites[$etape->getCode()]['N1']['epWithModulateur'] = $this->getServiceElementPedagogique()->countEpWithModulateur($etape);
                    }
                }
                //Clean etapes sans aucun centre de coût
                foreach($codesEtapesWithoutModulateur as $code)
                {
                    unset($etapesReconduites[$code]);
                }
            }
        }


        $request = $this->getRequest();
        if ($request->isPost()) {
            $fromPost = true;
@@ -323,17 +348,18 @@ class OffreFormationController extends AbstractController
            //Reconduire les modulateurs des EP de l'étape.
            try {
                $etapesReconduitesCc = [];

                foreach (current($datas) as $code) {
                if (isset($datas['etapes'])) {
                    foreach ($datas['etapes'] as $code) {

                        if (array_key_exists($code, $etapesReconduites)) {
                            $etapesReconduitesCc[$code] = $etapesReconduites[$code];
                        }
                    }
                }
                $result = $this->getProcessusReconduction()->reconduireModulateurFormation($etapesReconduitesCc);
                if ($result > 0) {
                    $this->flashMessenger()->addSuccessMessage("Les modulateurs ont bien été reconduit sur le $result 
                élément(s) pédagogique(s) existant pour la prochaine année universitaire");
                    $this->flashMessenger()->addSuccessMessage("Les modulateurs des éléments pédagogiques des étapes sélectionnées ont bien été reconduit pour la prochaine année universitaire ($result 
                élément(s) pédagogique(s) concerné(s))");
                } else {
                    $this->flashMessenger()->addWarningMessage("Aucun modulateur n'a été reconduit car aucun élément
                pédagogique n'existe pour cette formation pour la prochaine année universitaire.");
+30 −4
Original line number Diff line number Diff line
@@ -201,15 +201,29 @@ class ReconductionProcessus extends AbstractProcessus
            $etapeN                     = $etape['N']['etape'];
            $elementsPedagogiqueN       = $etapeN->getElementPedagogique();
            $elementsPedagogiqueNByCode = [];
            $codesEpWithoutCc = [];
            foreach ($elementsPedagogiqueN as $ep) {
                //Check si ep a un élément pédagoggique
                $ccep = $ep->getCentreCoutEp();
                if(count($ccep) > 0)
                {
                    //Si il a des centres de couts alors je le stocke
                    $elementsPedagogiqueNByCode[$ep->getCode()] = $ep;
                }
                else{
                    $codesEpWithoutCc[] = $ep->getCode();
                }
            }
            $etapeN1                     = $etape['N1']['etape'];
            $elementsPedagogiqueN1       = $etapeN1->getElementPedagogique();
            $elementsPedagogiqueN1ByCode = [];
            foreach ($elementsPedagogiqueN1 as $epN1) {
                //Si l'epN possède des CC alors je continuer
                if(!in_array($epN1->getCode(), $codesEpWithoutCc))
                {
                    $elementsPedagogiqueN1ByCode[$epN1->getCode()] = $epN1;
                }
            }

            foreach ($elementsPedagogiqueN as $ep) {
                //Cas d'un élément pédagogique historisé a ne pas reconduire
@@ -260,15 +274,27 @@ class ReconductionProcessus extends AbstractProcessus
            $etapeN                     = $etape['N']['etape'];
            $elementsPedagogiqueN       = $etapeN->getElementPedagogique();
            $elementsPedagogiqueNByCode = [];
            $codesEpWithoutModulateur = [];
            foreach ($elementsPedagogiqueN as $ep) {
                $mep = $ep->getElementModulateur();
                if(count($mep) > 0)
                {
                    //Si il a des modulateurs alors je le stocke
                    $elementsPedagogiqueNByCode[$ep->getCode()] = $ep;
                }
                else{
                    $codesEpWithoutModulateur[] = $ep->getCode();
                }
            }
            $etapeN1                     = $etape['N1']['etape'];
            $elementsPedagogiqueN1       = $etapeN1->getElementPedagogique();
            $elementsPedagogiqueN1ByCode = [];
            foreach ($elementsPedagogiqueN1 as $epN1) {
                if(!in_array($epN1->getCode(), $codesEpWithoutModulateur))
                {
                    $elementsPedagogiqueN1ByCode[$epN1->getCode()] = $epN1;
                }
            }

            foreach ($elementsPedagogiqueN as $ep) {
                $epN1 = (array_key_exists($ep->getCode(), $elementsPedagogiqueN1ByCode)) ? $elementsPedagogiqueN1ByCode[$ep->getCode()] : false;
+2 −2
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ $this->headScript()->offsetSetFile(100, '/js/reconduction-centre-cout.js');
    Si la formation n'est pas disponible dans la liste ci-dessous, veuillez vérifier qu'elle a bien été reconduit pour la prochaine année universitaire.
</div>

<h3>Offre de formation disponible pour la prochaine année universitaire :</h3>
<h3>Offre de formation disponible (possédants des centres de coûts définis) pour la prochaine année universitaire :</h3>
<br/>
<?php
echo $this->messenger()->addCurrentMessagesFromFlashMessenger();
@@ -57,7 +57,7 @@ echo $this->messenger()->addCurrentMessagesFromFlashMessenger();
</table>
<?php else: ?>
    <?php if($fromPost): ?>
        <p> <a href="<?= $this->url('aof/reconduction-centre-cout', [], ['query' => ['structure' => $structure->getId()]]) ?>" >< Retour à la liste des formations.</a></p>
        <p> <a href="<?= $this->url('aof/reconduction-centre-cout', [], ['query' => ['structure' => $structure->getId()]]) ?>" >< Retour à la liste des formations éligibles à la reconduction des centres de coûts.</a></p>
    <?php else: ?>
        <form action="<?= $this->url('aof/reconduction-centre-cout', [], ['query' => ['structure' => $structure->getId()]]) ?>" method="POST" id="form-reconduction">

+3 −4
Original line number Diff line number Diff line
@@ -28,12 +28,11 @@ $this->headScript()->offsetSetFile(100, '/js/reconduction-modulateur.js');
    Seules les formations reconduites pour la prochaine année universitaire peuvent bénéficier de la reconduction des modulateurs d'une année sur l'autre.
    Si la formation n'est pas disponible dans la liste ci-dessous, veuillez vérifier qu'elle a bien été reconduit pour la prochaine année universitaire.
</div>
<h3>Offre de formation disponible pour la prochaine année universitaire :</h3>
<br/>

<h3>Offre de formation disponible (possédants des modulateurs définis) pour la prochaine année universitaire :</h3>
<?php
echo $this->messenger()->addCurrentMessagesFromFlashMessenger();
?>

<?php if(empty($etapesReconduites)): ?>
    <table class="reconduction-modulateur table table-bordered table-condensed table-hover">
        <thead>
@@ -55,7 +54,7 @@ echo $this->messenger()->addCurrentMessagesFromFlashMessenger();
    </table>
<?php else: ?>
    <?php if($fromPost): ?>
        <p> <a href="<?= $this->url('aof/reconduction-modulateur', [], ['query' => ['structure' => $structure->getId()]]) ?>" >< Retour à la liste des formations.</a></p>
        <p> <a href="<?= $this->url('aof/reconduction-modulateur', [], ['query' => ['structure' => $structure->getId()]]) ?>" >< Retour à la liste des formations éligibles à la reconduction des modulateurs.</a></p>
    <?php else: ?>
        <form action="<?= $this->url('aof/reconduction-modulateur', [], ['query' => ['structure' => $structure->getId()]]) ?>" method="POST" id="form-reconduction">