Commit 034cdf77 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Ne pas pouvoir mettre de motif de non paiement sur du service référentiel déjà validé (#51180)

parent b02affd6
Loading
Loading
Loading
Loading
+87 −54
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ use Application\Controller\AbstractController;
use Application\Entity\Db\Intervenant;
use Laminas\View\Model\ViewModel;
use Referentiel\Entity\Db\ServiceReferentiel;
use Referentiel\Entity\Db\VolumeHoraireReferentiel;
use Service\Entity\Db\TypeVolumeHoraire;
use Referentiel\Form\SaisieAwareTrait;
use Plafond\Processus\PlafondProcessusAwareTrait;
@@ -42,16 +43,6 @@ class ServiceReferentielController extends AbstractController
    use PlafondProcessusAwareTrait;


    protected function initFilters()
    {
        $this->em()->getFilters()->enable('historique')->init([
            \Referentiel\Entity\Db\ServiceReferentiel::class,
            \Referentiel\Entity\Db\VolumeHoraireReferentiel::class,
            \Application\Entity\Db\Validation::class,
        ]);
    }


    public function prevuAction ()
    {
        $prevu = $this->getServiceTypeVolumeHoraire()->getPrevu();
@@ -60,13 +51,6 @@ class ServiceReferentielController extends AbstractController
    }


    public function realiseAction()
    {
        $realise = $this->getServiceTypeVolumeHoraire()->getRealise();

        return $this->indexAction($realise);
    }


    public function indexAction (?TypeVolumeHoraire $typeVolumeHoraire = null)
    {
@@ -89,6 +73,27 @@ class ServiceReferentielController extends AbstractController
    }



    protected function initFilters ()
    {
        $this->em()->getFilters()->enable('historique')->init([
            \Referentiel\Entity\Db\ServiceReferentiel::class,
            \Referentiel\Entity\Db\VolumeHoraireReferentiel::class,
            \Application\Entity\Db\Validation::class,
        ]);
    }



    public function realiseAction ()
    {
        $realise = $this->getServiceTypeVolumeHoraire()->getRealise();

        return $this->indexAction($realise);
    }



    public function saisieAction ()
    {
        $this->initFilters();
@@ -124,6 +129,24 @@ class ServiceReferentielController extends AbstractController
            $title = "Ajout de référentiel";
        }

        //Si volume referentiel est validé alors on passe les motifs de non paiement en lecture seule
        $disabled               = false;
        $listeVolumeReferentiel = $entity->getVolumeHoraireReferentiel();
        foreach ($listeVolumeReferentiel as $vhr) {
            /**
             * @var $vhr VolumeHoraireReferentiel
             */

            if ($vhr->isValide()) {
                $disabled = true;
            }
        }
        if ($disabled) {
            $form->get('service')->get('motif-non-paiement')->setAttribute('disabled', 'disabled');
            $form->get('service')->get('motif-non-paiement')->setAttribute('title', 'Vous ne pouvez pas mettre de motif de non paiement sur un volume horaire déjà validé');
        }


        $assertionEntity = $service->newEntity();
        $assertionEntity
            ->setTypeVolumeHoraire($typeVolumeHoraire)
@@ -166,6 +189,17 @@ class ServiceReferentielController extends AbstractController
    }



    private function updateTableauxBord (Intervenant $intervenant, $validation = false)
    {
        $this->getServiceWorkflow()->calculerTableauxBord(['formule', 'validation_referentiel', 'referentiel'], $intervenant);
        if (!$validation) {
            $this->getServiceWorkflow()->calculerTableauxBord(['referentiel', 'piece_jointe_fournie'], $intervenant);
        }
    }



    public function rafraichirLigneAction ()
    {
        $this->initFilters();
@@ -189,6 +223,7 @@ class ServiceReferentielController extends AbstractController
    }



    public function initialisationAction ()
    {
        $intervenant = $this->getEvent()->getParam('intervenant');
@@ -202,6 +237,7 @@ class ServiceReferentielController extends AbstractController
    }



    public function constatationAction ()
    {
        $this->initFilters();
@@ -229,6 +265,7 @@ class ServiceReferentielController extends AbstractController
    }



    public function suppressionAction ()
    {
        $typeVolumeHoraire = $this->params()->fromQuery('type-volume-horaire', $this->params()->fromPost('type-volume-horaire'));
@@ -264,6 +301,7 @@ class ServiceReferentielController extends AbstractController
    }



    public function validationPrevuAction ()
    {
        $typeVolumeHoraire = $this->getServiceTypeVolumeHoraire()->getPrevu();
@@ -272,13 +310,6 @@ class ServiceReferentielController extends AbstractController
    }


    public function validationRealiseAction()
    {
        $typeVolumeHoraire = $this->getServiceTypeVolumeHoraire()->getRealise();

        return $this->validationAction($typeVolumeHoraire);
    }


    private function validationAction (TypeVolumeHoraire $typeVolumeHoraire)
    {
@@ -340,6 +371,16 @@ class ServiceReferentielController extends AbstractController
    }



    public function validationRealiseAction ()
    {
        $typeVolumeHoraire = $this->getServiceTypeVolumeHoraire()->getRealise();

        return $this->validationAction($typeVolumeHoraire);
    }



    public function validerAction ()
    {
        $this->initFilters();
@@ -376,6 +417,7 @@ class ServiceReferentielController extends AbstractController
    }



    public function devaliderAction ()
    {
        $this->initFilters();
@@ -402,13 +444,4 @@ class ServiceReferentielController extends AbstractController
        return new MessengerViewModel();
    }


    private function updateTableauxBord(Intervenant $intervenant, $validation = false)
    {
        $this->getServiceWorkflow()->calculerTableauxBord(['formule', 'validation_referentiel', 'referentiel'], $intervenant);
        if (!$validation) {
            $this->getServiceWorkflow()->calculerTableauxBord(['referentiel', 'piece_jointe_fournie'], $intervenant);
        }
    }

}