Commit f6abe4c2 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Finalisation refactoring modalité de service par statut

parent 51d36d8e
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -165,6 +165,8 @@ class EnseignementController extends AbstractController

        $form = $this->getFormServiceEnseignementSaisie();
        $form->setTypeVolumeHoraire($typeVolumeHoraire);
        $form->setIntervenant($intervenant);
        $form->initPeriodes();
        $form->bind($service);

        if ($service->getId()) {
@@ -247,8 +249,6 @@ class EnseignementController extends AbstractController
            $typeVolumeHoraire = $this->getServiceTypeVolumehoraire()->get($typeVolumeHoraire);
        }
        $service       = $this->getServiceService();
        $form    = $this->getFormServiceEnseignementSaisie();
        $form->setTypeVolumeHoraire($typeVolumeHoraire);
        $element       = $this->context()->elementPedagogiqueFromPost('element');
        $etablissement = $this->context()->etablissementFromPost();

@@ -261,6 +261,13 @@ class EnseignementController extends AbstractController
        $entity->setTypeVolumeHoraire($typeVolumeHoraire);
        $entity->setEtablissement($etablissement);
        $entity->setElementPedagogique($element);
        //Lorsque le service n'existe pas encore on est obligé de récupérer l'intervenant via le localContext...
        $intervenant = $this->getServiceLocalContext()->getIntervenant();

        $form = $this->getFormServiceEnseignementSaisie();
        $form->setIntervenant($intervenant);
        $form->setTypeVolumeHoraire($typeVolumeHoraire);
        $form->initPeriodes();
        $form->bind($entity);

        if (!$serviceId) $form->initFromContext();
+2 −1
Original line number Diff line number Diff line
@@ -55,10 +55,11 @@ class VolumeHoraireController extends AbstractController


        $service->setTypeVolumeHoraire($typeVolumeHoraire);
        $intervenant = $service->getIntervenant();
        $readOnly    = 1 == (int)$this->params()->fromQuery('read-only', 0);

        $volumeHoraireListe = $service->getVolumeHoraireListe()->setTypeVolumehoraire($typeVolumeHoraire);
        $semestriel         = $this->getServiceContext()->isModaliteServicesSemestriel($typeVolumeHoraire);
        $semestriel         = $intervenant->getStatut()->isModeEnseignementSemestriel($typeVolumeHoraire);

        return compact('volumeHoraireListe', 'readOnly', 'semestriel');
    }
+5 −2
Original line number Diff line number Diff line
@@ -241,6 +241,8 @@ class VolumeHoraireListe
     */
    public function match(VolumeHoraire $volumeHoraire): bool
    {
        $intervenant = $volumeHoraire->getService()->getIntervenant();

        if ($volumeHoraire->getRemove()) { // Si le volume horaire est en cours de suppression
            return false;
        }
@@ -283,8 +285,9 @@ class VolumeHoraireListe
                if ($typeIntervention !== $this->typeIntervention) return false;
            }
        }

        //Uniquement en mode semestriel car en mode calendaire on ne doit pas être sur des mêmes horaires de début et de fin
        if (false !== $this->motifNonPaiement && $this->getServiceContext()->isModaliteServicesSemestriel($volumeHoraire->getTypeVolumeHoraire())) {
        if (false !== $this->motifNonPaiement && $intervenant->getStatut()->isModeEnseignementSemestriel($volumeHoraire->getTypeVolumeHoraire())) {
            $motifNonPaiement = $volumeHoraire->getMotifNonPaiement();
            if (true === $this->motifNonPaiement) {
                if (null === $motifNonPaiement) return false;
@@ -293,7 +296,7 @@ class VolumeHoraireListe
            }
        }
        //Uniquement en mode semestriel car en mode calendaire on ne doit pas être sur des mêmes horaires de début et de fin
        if (false !== $this->tag && $this->getServiceContext()->isModaliteServicesSemestriel($volumeHoraire->getTypeVolumeHoraire())) {
        if (false !== $this->tag && $intervenant->getStatut()->isModeEnseignementSemestriel($volumeHoraire->getTypeVolumeHoraire())) {
            $tag = $volumeHoraire->getTag();
            if (true === $this->tag) {
                if (null === $tag) return false;
+17 −8
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
namespace Enseignement\Form;

use Application\Entity\Db\Periode;
use Application\Entity\Db\Traits\IntervenantAwareTrait;
use Application\Service\Traits\LocalContextServiceAwareTrait;
use Enseignement\Entity\Db\Service;
use Laminas\Form\FormInterface;
@@ -29,6 +30,7 @@ class EnseignementSaisieForm extends AbstractForm
    use LocalContextServiceAwareTrait;
    use EnseignementSaisieFieldsetAwareTrait;
    use VolumeHoraireSaisieMultipleFieldsetAwareTrait;
    use IntervenantAwareTrait;


    /**
@@ -75,14 +77,7 @@ class EnseignementSaisieForm extends AbstractForm

        $this->add($this->getFieldsetEnseignementSaisie());

        // Product Fieldset
        if ($this->getServiceContext()->isModaliteServicesSemestriel($this->getTypeVolumeHoraire())) {
            foreach ($this->getPeriodes() as $periode) {
                $pf = $this->getFieldsetVolumeHoraireSaisieMultiple();
                $pf->setName($periode->getCode());
                $this->add($pf);
            }
        }

        $this->add(new Hidden('intervenant'));

        $this->add([
@@ -117,6 +112,20 @@ class EnseignementSaisieForm extends AbstractForm
    {
        return [];
    }



    public function initPeriodes()
    {
        // Product Fieldset
        if ($this->getIntervenant()->getStatut()->isModeEnseignementSemestriel($this->getTypeVolumeHoraire())) {
            foreach ($this->getPeriodes() as $periode) {
                $pf = $this->getFieldsetVolumeHoraireSaisieMultiple();
                $pf->setName($periode->getCode());
                $this->add($pf);
            }
        }
    }
}


+2 −2
Original line number Diff line number Diff line
@@ -184,8 +184,8 @@ class EnseignementSaisieFormViewHelper extends AbstractViewHelper

    public function renderVolumesHoraires()
    {

        if (!$this->getServiceContext()->isModaliteServicesSemestriel($this->form->getTypeVolumeHoraire())) {
        $intervenant = $this->form->getIntervenant();
        if (!$intervenant->getStatut()->isModeEnseignementSemestriel($this->form->getTypeVolumeHoraire())) {
            return null;
        }

Loading