Commit 83e12670 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

- Correction ajout/modification modulateur pour ne pas recréer une entrée en...

- Correction ajout/modification modulateur pour ne pas recréer une entrée en base à chaque modification
- Gestion du cas EP faisant partie d'une composante sans type de modulateur de paramétré.
- Ajout de commentaire pour documentation.
parent 4b88ba36
Loading
Loading
Loading
Loading
+16 −15
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ class ElementModulateurCentreCoutForm extends AbstractForm
    use ElementPedagogiqueServiceAwareTrait;
    use TypeModulateurServiceAwareTrait;
    use ElementModulateursFieldsetAwareTrait;

    use CentreCoutServiceAwareTrait;

    /**
@@ -29,7 +28,7 @@ class ElementModulateurCentreCoutForm extends AbstractForm
     *
     * @var Element
     */
    protected $elementPedagogiquePeddagogique;
    protected $elementPedagogiquePedagogique;



@@ -67,6 +66,7 @@ class ElementModulateurCentreCoutForm extends AbstractForm
        }
        //Formulaire partie Modulateur de l'élément pédagogique en cours
        $typeModulateur = $this->getServiceTypeModulateur()->finderByElementPedagogique($elementPedagogique)->getQuery()->getOneOrNullResult();
        if (!is_null($typeModulateur)) {
            $values = $typeModulateur->getModulateur();
            foreach ($values as $value) {
                $modulateursValues[$typeModulateur->getCode()][$value->getCode()] = $value->getLibelle();
@@ -81,6 +81,7 @@ class ElementModulateurCentreCoutForm extends AbstractForm
                $selectModulateur->setValue($modulateur->getCode());
            }
            $this->add($selectModulateur);
        }

        //Formulaire partie Centres de coût de l'élément pédagogique en cours
        $centresCoutsEp     = $elementPedagogique->getCentreCoutEp();
+15 −1
Original line number Diff line number Diff line
@@ -89,6 +89,14 @@ class CentreCoutEpService extends AbstractEntityService



    /**
     * Ajoute des centres de coût par types d'heures sur élement pédagogique
     *
     * @param ElementPedagogique $element
     * @param Array              $centreCouts tableau type heures => centre de coût
     *
     * @return ElementPedagogique
     */
    public function addElementCentreCout(ElementPedagogique $element, $centreCouts)
    {
        $centreCoutEpCollection = $element->getCentreCoutEp()->toArray();
@@ -114,7 +122,12 @@ class CentreCoutEpService extends AbstractEntityService
                    //Creation
                    $centreCoutEntity = $this->getServiceCentreCout()->getRepo()->findOneByCode($cc);
                    $typeHeuresEntity = $this->getServiceTypeHeures()->getRepo()->findOneByCode($th);
                    //TODO : Faire un try catch sur la récupération centre cout et types heures
                    try {
                        $centreCoutEntity = $this->getServiceCentreCout()->getRepo()->findOneByCode($cc);
                        $typeHeuresEntity = $this->getServiceTypeHeures()->getRepo()->findOneByCode($th);
                    } catch (\Exception $e) {
                        $this->flashMessenger()->addErrorMessage("Centre de coût ou Modulateur inexistant");
                    }
                    $newCentreCoutEp = $this->newEntity();
                    $newCentreCoutEp->setCentreCout($centreCoutEntity);
                    $newCentreCoutEp->setElementPedagogique($element);
@@ -123,6 +136,7 @@ class CentreCoutEpService extends AbstractEntityService
                }
            }
        }
        //refresh l'entité pour l'affichage utilisateur post traitement
        $this->entityManager->refresh($element);

        return $element;
+31 −7
Original line number Diff line number Diff line
@@ -66,17 +66,41 @@ class ElementModulateurService extends AbstractEntityService



    /**
     * Ajoute un élément modulateur à un élément pédagogique
     *
     * @param ElementPedagogique $element
     * @param String             $codeModulateur Code du modulateur
     *
     * @return ElementPedagogique
     */


    public function addElementModulateur(ElementPedagogique $element, $codeModulateur)
    {

        $elementModulateurCollection = $element->getElementModulateur();
        if ($elementModulateurCollection->count() != 0) {
            foreach ($elementModulateurCollection as $elementModulateur) {
                if (empty($codeModulateur)) {
                    $this->delete($elementModulateur);
                } else {
                    $modulateur = $this->getServiceModulateur()->getRepo()->findOneByCode($codeModulateur);
                    $elementModulateur->setModulateur($modulateur);
                    $this->save($elementModulateur);
                }
            }
        } else {
            //Uniquement si le code modulateur n'est pas vide.
            if (!empty($codeModulateur)) {
                $modulateur           = $this->getServiceModulateur()->getRepo()->findOneByCode($codeModulateur);
                $newElementModulateur = $this->newEntity();
                $newElementModulateur->setElement($element);
                $newElementModulateur->setModulateur($modulateur);
                $this->save($newElementModulateur);
            }
        }
        //refresh l'entité pour l'affichage utilisateur post traitement
        $this->entityManager->refresh($element);

        return $element;
+4 −4
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@
                    <td><?= $form->get('modulateur')->getLabel(); ?></td>
                    <td><?= $this->formSelect($form->get('modulateur')); ?></td>
                <?php else: ?>
                    <td colspan="2">Aucun modulateur disponible pour cet élément pédagogique.</td>
                    <td colspan="2" class="text-center" >Aucun modulateur ne correspond aux enseignements de cette formation.</td>
                <?php endif; ?>
            </tr>
        </tbody>
@@ -28,19 +28,19 @@
        <tbody>
            <?php if($form->has('fi')): ?>
                <tr>
                    <td><abbr title="Formation initiale"><?= $form->get('fi')->getLabel(); ?></abbr></td>
                    <td class="text-center"><abbr title="Formation initiale"><?= $form->get('fi')->getLabel(); ?></abbr></td>
                    <td><?= $this->formSelect($form->get('fi')); ?></td>
                </tr>
            <?php endif; ?>
            <?php if($form->has('fa')): ?>
                <tr>
                    <td><abbr title="Formation apprentissage"><?= $form->get('fa')->getLabel(); ?></abbr></td>
                    <td class="text-center"><abbr title="Formation apprentissage"><?= $form->get('fa')->getLabel(); ?></abbr></td>
                    <td><?= $this->formSelect($form->get('fa')); ?></td>
                </tr>
            <?php endif; ?>
            <?php if($form->has('fc')): ?>
                <tr>
                    <td><abbr title="Formation continue"><?= $form->get('fc')->getLabel(); ?></abbr></td>
                    <td class="text-center"><abbr title="Formation continue"><?= $form->get('fc')->getLabel(); ?></abbr></td>
                    <td><?= $this->formSelect($form->get('fc')); ?></td>
                </tr>
            <?php endif; ?>