Commit d6fe0cf7 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Finalisation des plafonds pour le suivi

parent 1a303668
Loading
Loading
Loading
Loading
+11 −0
Changes for front/Mission/Suivi.vue: 11 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ export default {
    {
        return {
            date: new Date(),
            isMounted: false,
            suivi: []
        };
    },
@@ -80,8 +81,18 @@ export default {
                    newSuivi.push(missionSuivi);
                }
                this.suivi = newSuivi;
                this.refreshPlafonds();
            });
        },
        refreshPlafonds()
        {
            if (this.isMounted) {
                // Mise à jour des plafonds
                $(".plafonds").refresh();
            }else{
                this.isMounted = true;
            }
        },
    }
}
</script>
+23 −2
Changes for module/Mission/src/Controller/SuiviController.php: 23 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ use Mission\Entity\Db\VolumeHoraireMission;
use Mission\Form\MissionFormAwareTrait;
use Mission\Form\MissionSuiviFormAwareTrait;
use Mission\Service\MissionServiceAwareTrait;
use Plafond\Processus\PlafondProcessusAwareTrait;
use Service\Entity\Db\TypeVolumeHoraire;
use Service\Service\TypeVolumeHoraireServiceAwareTrait;
use UnicaenVue\View\Model\AxiosModel;
@@ -33,6 +34,7 @@ class SuiviController extends AbstractController
    use WorkflowServiceAwareTrait;
    use MissionSuiviFormAwareTrait;
    use TypeVolumeHoraireServiceAwareTrait;
    use PlafondProcessusAwareTrait;

    public function indexAction()
    {
@@ -151,10 +153,24 @@ class SuiviController extends AbstractController
        $form->date = $volumeHoraireMission->getHoraireDebut();
        $form->build();

        $form->bindRequestSave($volumeHoraireMission, $this->getRequest(), function ($vhm) {
        $hDeb = $volumeHoraireMission->getHeures();

        $form->bindRequestSave($volumeHoraireMission, $this->getRequest(), function (VolumeHoraireMission $vhm) use ($hDeb) {
            $typeVolumeHoraire = $this->getServiceTypeVolumeHoraire()->getRealise();
            $this->getProcessusPlafond()->beginTransaction();
            try {
                $this->getServiceMission()->saveVolumeHoraire($vhm);
                $hFin = $vhm->getHeures();
                $this->updateTableauxBord($vhm->getMission());
                if (!$this->getProcessusPlafond()->endTransaction($vhm, $typeVolumeHoraire, $hFin < $hDeb)) {
                    $this->updateTableauxBord($vhm->getMission());
                }else{
                    $this->flashMessenger()->addSuccessMessage('Suivi bien enregistré');
                }
            } catch (\Exception $e) {
                $this->flashMessenger()->addErrorMessage($this->translate($e));
                $this->em()->rollback();
            }
        });
        // on passe l'id pour pouvoir le récupérer dans la vue et mettre à jour la liste
        $form->setAttribute('data-id', $volumeHoraireMission->getId());
@@ -170,15 +186,20 @@ class SuiviController extends AbstractController

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

        /** @var VolumeHoraireMission $volumeHoraireMission */
        $volumeHoraireMission = $this->getEvent()->getParam('volumeHoraireMission');

        $this->getProcessusPlafond()->beginTransaction();
        try {
            $this->getServiceMission()->deleteVolumeHoraire($volumeHoraireMission);
            $this->updateTableauxBord($volumeHoraireMission->getMission());
            $this->flashMessenger()->addSuccessMessage('Le suivi a bien été supprimé');
        } catch (\Exception $e) {
            $this->flashMessenger()->addErrorMessage('Une erreur s\'est produite lors de la suppression du suivi : ' . $e->getMessage());
            $this->flashMessenger()->addErrorMessage($this->translate($e));
        }
        $this->getProcessusPlafond()->endTransaction($volumeHoraireMission->getMission(), $typeVolumeHoraire, true);

        return new AxiosModel([]);
    }
+1 −1
Changes for module/Mission/view/mission/suivi/saisie.phtml: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@ if (1 === count($form->get('mission')->getValueOptions())){
    }
}

//echo $this->messenger()->addCurrentMessagesFromFlashMessengerWithNoNamespace();
echo $this->messenger()->addCurrentMessagesFromFlashMessengerWithNamespace('error');
echo $this->form()->openTag($form);

echo $this->tag('h1', ['class' => 'page-header'])->html($title);