Commit 8d3ec45b authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

- Développement formulaire spécifique pour modification centre de cout et...

- Développement formulaire spécifique pour modification centre de cout et modulateurs d'un élément pédagogique(ticket #25857) - Suite
parent bea172c5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ class ElementPedagogiqueController extends AbstractController
{
    use ElementPedagogiqueServiceAwareTrait;
    use ContextServiceAwareTrait;
    use ElementPedagogiqueSaisieAwareTrait;
    use VolumeHoraireEnsFormAwareTrait;
    use VolumeHoraireEnsServiceAwareTrait;
    use ElementModulateurCCSaisieAwareTrait;
+37 −10
Original line number Diff line number Diff line
@@ -4,7 +4,9 @@ namespace Application\Form\OffreFormation;

use Application\Entity\Db\ElementPedagogique;
use Application\Form\AbstractForm;
use Application\Form\OffreFormation\EtapeCentreCout\Traits\EtapeCentreCoutFormAwareTrait;
use Application\Form\OffreFormation\Traits\ElementModulateursFieldsetAwareTrait;
use Application\Service\Traits\CentreCoutServiceAwareTrait;
use Application\Service\Traits\TypeModulateurServiceAwareTrait;
use Application\Entity\Db\Etape;
use Application\Service\Traits\ElementPedagogiqueServiceAwareTrait;
@@ -20,6 +22,7 @@ class ElementModulateurCCSaisie extends AbstractForm
    use TypeModulateurServiceAwareTrait;
    use ElementPedagogiqueServiceAwareTrait;
    use ElementModulateursFieldsetAwareTrait;
    use CentreCoutServiceAwareTrait;

    /**
     * Element
@@ -73,14 +76,19 @@ class ElementModulateurCCSaisie extends AbstractForm
                $modulateursValues[$typeModulateur->getCode()][$m->getId()] = $m->getLibelle();
            }
        }

        $elementCentresCouts = $element->getCentreCoutEp();
        $typesHeures         = $element->getTypeHeures();
        foreach ($typesHeures as $type) {
            $libelle[] = $type->getLibelleCourt();
        //TODO Prévoir le cas où il n'y a pas de modulateur et de centre de cout sur un EP
        $centresCoutsEp     = $element->getCentreCoutEp();
        $centresCoutsValues = [];
        foreach ($centresCoutsEp as $centreCoutEp) {
            $libelleTypeHeures                      = $centreCoutEp->getTypeHeures()->getLibelleCourt();
            $centreCout                             = $centreCoutEp->getCentreCout();
            $centresCoutsValues[$libelleTypeHeures] = $centreCout->getCode();
        }
        $typeHeuresEp = $element->getTypeHeures()->getValues();
        foreach ($typeHeuresEp as $typeHeures) {
            $select = $this->createSelectElement($typeHeures);
            $this->add($select);
        }
        //Récupération des centres de coût pour chaque type d'heure
        

        //Select pour le modulateur de l'élément pédagogique
        $select = new Select('modulateur');
@@ -89,8 +97,6 @@ class ElementModulateurCCSaisie extends AbstractForm
        $select->setValue(1);
        $this->add($select);

        //Select pour le centre de cout de l'élément pédagogique

        
        $this->add([
            'name' => 'id',
@@ -100,6 +106,27 @@ class ElementModulateurCCSaisie extends AbstractForm



    private function createSelectElement(\Application\Entity\Db\TypeHeures $th)
    {
        //retrieve centre cout by types heures
        $qb           = $this->getServiceCentreCout()->finderByTypeHeures($th);
        $centresCouts = $qb->getQuery()->execute();
        $valueOptions = [];
        foreach ($centresCouts as $centreCout) {
            $valueOptions[$centreCout->getCode()] = $centreCout->getCode() . ' - ' . $centreCout->getLibelle();
        }
        $element = new Select($th->getCode());
        $element
            ->setLabel($th->getLibelleCourt())
            ->setValueOptions(['' => '(Aucun)'] + $valueOptions)
            ->setAttribute('class', 'type-heures selectpicker')
            ->setAttribute('data-live-search', 'true');

        return $element;
    }



    /**
     * Retourne la liste des types de modulateurs de l'element
     *
+23 −1
Original line number Diff line number Diff line
@@ -17,8 +17,30 @@
            </tr>
        </tbody>
    </table>
    <table class="table table-bordered table-extra-condensed">
        <thead>
            <tr>
                <th colspan="2">Centre de coûts de l'élément pédagogique</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td><abbr title="Formation initiale"><?= $form->get('fi')->getLabel(); ?></abbr></td>
                <td><?= $this->formSelect($form->get('fi')); ?></td>
            </tr>
            <tr>
                <td><abbr title="Formation apprentissage"><?= $form->get('fa')->getLabel(); ?></abbr></td>
                <td><?= $this->formSelect($form->get('fa')); ?></td>
            </tr>
            <tr>
                <td><abbr title="Formation continue"><?= $form->get('fc')->getLabel(); ?></abbr></td>
                <td><?= $this->formSelect($form->get('fc')); ?></td>
            </tr>
        </tbody>
    </table>

    <?= $this->form()->closeTag($form); ?>


</div>