Commit 2e2dc839 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Sauvegarde de l'étape sélectionnée au niveau du service lors de la saisie de...

Sauvegarde de l'étape sélectionnée au niveau du service lors de la saisie de service sur un enseignement mutualisé (#53620)
parent 460bcbec
Loading
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -184,8 +184,14 @@ class EnseignementController extends AbstractController

        $form->get('service')->setIntervenant($intervenant);
        $form->get('service')->removeUnusedElements();
        //On set l'étape du service si elle a été renseigné sinon par défaut cela prendra
        //l'étape porteuse de l'élément pédagogique
        if ($service->getEtape()) {
            $form->get('service')->get('element-pedagogique')->get('etape')->setValue($service->getEtape()->getId());
        }
        $hDeb    = $service->getVolumeHoraireListe()->getHeures();
        $request = $this->getRequest();

        if ($request->isPost()) {
            $form->setData($request->getPost());
            if ($form->isValid()) {
@@ -196,6 +202,15 @@ class EnseignementController extends AbstractController
                    $this->getProcessusPlafond()->beginTransaction();
                    try {
                        $this->em()->getConnection()->setAutoCommit(true);
                        //Récupération de l'id de l'étape qui a été selectionné pour la recherche de la formation
                        $etapeId = $form->get('service')
                            ->get('element-pedagogique')
                            ->get('etape')
                            ->getValue();

                        $etape   = $etapeId ? $this->getServiceEtape()->get($etapeId) : null;
                        $service = $service->setEtape($etape);

                        $service = $this->getServiceService()->save($service);
                        $this->em()->getConnection()->setAutoCommit(false);
                        $saved   = $service;
+3 −0
Original line number Diff line number Diff line
@@ -26,6 +26,9 @@
        <many-to-one field="elementPedagogique" target-entity="OffreFormation\Entity\Db\ElementPedagogique">
            <join-column name="ELEMENT_PEDAGOGIQUE_ID" referenced-column-name="ID"/>
        </many-to-one>
        <many-to-one field="etape" target-entity="OffreFormation\Entity\Db\Etape">
            <join-column name="ETAPE_ID" referenced-column-name="ID"/>
        </many-to-one>
        <many-to-one field="etablissement" target-entity="Lieu\Entity\Db\Etablissement">
            <join-column name="ETABLISSEMENT_ID" referenced-column-name="ID"/>
        </many-to-one>
+19 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ use Laminas\Permissions\Acl\Resource\ResourceInterface;
use Lieu\Entity\Db\Etablissement;
use Lieu\Entity\Db\Structure;
use OffreFormation\Entity\Db\ElementPedagogique;
use OffreFormation\Entity\Db\Etape;
use OffreFormation\Entity\Db\TypeIntervention;
use Plafond\Interfaces\PlafondDataInterface;
use Service\Entity\Db\TypeVolumeHoraire;
@@ -35,6 +36,8 @@ class Service implements HistoriqueAwareInterface, ResourceInterface, ImportAwar

    protected ?ElementPedagogique $elementPedagogique = null;

    protected ?Etape $etape = null;

    protected ?string             $description        = null;

    protected bool                $changed            = false;
@@ -206,6 +209,22 @@ class Service implements HistoriqueAwareInterface, ResourceInterface, ImportAwar



    public function getEtape(): ?Etape
    {
        return $this->etape;
    }



    public function setEtape(?Etape $etape): Service
    {
        $this->etape = $etape;

        return $this;
    }



    public function setEtablissement(?Etablissement $etablissement = null): Service
    {
        if ($this->etablissement !== $etablissement) {
+2 −1
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ class LigneEnseignementViewHelper extends AbstractHtmlElement
        $liste   = $this->enseignements;
        $service = $this->getService();
        $element = $service->getElementPedagogique();
        $etape = ($service->getEtape()) ? $service->getEtape() : $element->getEtape();

        $vhl = $service->getVolumeHoraireListe()->setTypeVolumeHoraire($liste->getTypeVolumeHoraire());

@@ -97,7 +98,7 @@ class LigneEnseignementViewHelper extends AbstractHtmlElement
                if ($element && $element->getCheminPedagogique()->count() > 1) {
                    $out .= '<small class="badge bg-secondary" style="font-size:8pt" title="Enseignement mutualisé entre plusieures formations. Seule la formation principale est présentée ci-dessous">Enseignement mutualisé</small><br />';
                }
                $out .= $this->renderEtape($element ? $element->getEtape() : null) . "</td>\n";
                $out .= $this->renderEtape($etape) . "</td>\n";
            }
            if ($liste->getColumnVisibility('periode')) {
                $out .= '<td style="text-align:center">' . $this->renderPeriode($element ? $element->getPeriode() : null) . "</td>\n";