Commit 76f081e0 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Ajout des actions liées au formateuret modification de l'affichage des instances

parent e0892a2b
Loading
Loading
Loading
Loading
+99 −0
Changes for module/Application/src/Application/Controller/FormationInstanceController.php: 99 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -3,16 +3,19 @@
namespace Application\Controller;

use Application\Entity\Db\FormationInstance;
use Application\Entity\Db\FormationInstanceFormateur;
use Application\Entity\Db\FormationInstanceFrais;
use Application\Entity\Db\FormationInstanceInscrit;
use Application\Entity\Db\FormationInstanceJournee;
use Application\Entity\Db\FormationInstancePresence;
use Application\Form\FormationInstance\FormationInstanceFormAwareTrait;
use Application\Form\FormationInstanceFormateur\FormationInstanceFormateurFormAwareTrait;
use Application\Form\FormationInstanceFrais\FormationInstanceFraisFormAwareTrait;
use Application\Form\FormationJournee\FormationJourneeFormAwareTrait;
use Application\Form\SelectionAgent\SelectionAgentFormAwareTrait;
use Application\Service\Export\Formation\Emargement\EmargementPdfExporter;
use Application\Service\Formation\FormationServiceAwareTrait;
use Application\Service\FormationInstance\FormationInstanceFormateurServiceAwareTrait;
use Application\Service\FormationInstance\FormationInstanceFraisServiceAwareTrait;
use Application\Service\FormationInstance\FormationInstanceInscritServiceAwareTrait;
use Application\Service\FormationInstance\FormationInstanceJourneeServiceAwareTrait;
@@ -33,10 +36,12 @@ class FormationInstanceController extends AbstractActionController {
    use FormationInstanceServiceAwareTrait;
    use FormationInstanceInscritServiceAwareTrait;
    use FormationInstanceJourneeServiceAwareTrait;
    use FormationInstanceFormateurServiceAwareTrait;
    use FormationInstanceFraisServiceAwareTrait;
    use FormationInstancePresenceAwareTrait;
    use FormationInstanceFormAwareTrait;
    use FormationJourneeFormAwareTrait;
    use FormationInstanceFormateurFormAwareTrait;
    use FormationInstanceFraisFormAwareTrait;
    use SelectionAgentFormAwareTrait;
    use ExporterServiceAwareTrait;
@@ -146,6 +151,100 @@ class FormationInstanceController extends AbstractActionController {
        return $vm;
    }

    /** FORMATEUR ******************************************************************************************/

    public function ajouterFormateurAction()
    {
        $instance = $this->getFormationInstanceService()->getRequestedFormationInstance($this);

        $formateur = new FormationInstanceFormateur();
        $formateur->setInstance($instance);

        $form = $this->getFormationInstanceFormateurForm();
        $form->setAttribute('action', $this->url()->fromRoute('formation-instance/ajouter-formateur', ['formation-instance' => $instance->getId()], [], true));
        $form->bind($formateur);

        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            $form->setData($data);
            if ($form->isValid()) {
                $this->getFormationInstanceFormateurService()->create($formateur);
            }
        }

        $vm = new ViewModel();
        $vm->setTemplate('application/default/default-form');
        $vm->setVariables([
            'title' => "Ajout d'un formateur de formation",
            'form' => $form,
        ]);
        return $vm;
    }

    public function modifierFormateurAction() {
        $formateur = $this->getFormationInstanceFormateurService()->getRequestedFormationInstanceFormateur($this);

        $form = $this->getFormationInstanceFormateurForm();
        $form->setAttribute('action', $this->url()->fromRoute('formation-instance/modifier-formateur', ['formateur' => $formateur->getId()], [], true));
        $form->bind($formateur);

        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            $form->setData($data);
            if ($form->isValid()) {
                $this->getFormationInstanceFormateurService()->update($formateur);
            }
        }

        $vm = new ViewModel();
        $vm->setTemplate('application/default/default-form');
        $vm->setVariables([
            'title' => "Modification d'un formateur de formation",
            'form' => $form,
        ]);
        return $vm;
    }

    public function historiserFormateurAction()
    {
        $formateur = $this->getFormationInstanceFormateurService()->getRequestedFormationInstanceFormateur($this);
        $this->getFormationInstanceFormateurService()->historise($formateur);
        return $this->redirect()->toRoute('formation-instance/afficher', ['formation-instance' => $formateur->getInstance()->getId()], [], true);
    }

    public function restaurerFormateurAction()
    {
        $formateur = $this->getFormationInstanceFormateurService()->getRequestedFormationInstanceFormateur($this);
        $this->getFormationInstanceFormateurService()->restore($formateur);
        return $this->redirect()->toRoute('formation-instance/afficher', ['formation-instance' => $formateur->getInstance()->getId()], [], true);
    }

    public function supprimerFormateurAction()
    {
        $formateur = $this->getFormationInstanceFormateurService()->getRequestedFormationInstanceFormateur($this);

        /** @var Request $request */
        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            if ($data["reponse"] === "oui") $this->getFormationInstanceFormateurService()->delete($formateur);
            exit();
        }

        $vm = new ViewModel();
        if ($formateur !== null) {
            $vm->setTemplate('application/default/confirmation');
            $vm->setVariables([
                'title' => "Suppression du formateur de formation du [" . $formateur->getPrenom() . " ". $formateur->getNom() . "]",
                'text' => "La suppression est définitive êtes-vous sûr·e de vouloir continuer ?",
                'action' => $this->url()->fromRoute('formation-instance/supprimer-formateur', ["formateur" => $formateur->getId()], [], true),
            ]);
        }
        return $vm;
    }

    /** JOURNEE ********************************************************************************************/

    public function ajouterJourneeAction() {
+8 −0
Changes for module/Application/src/Application/Controller/FormationInstanceControllerFactory.php: 8 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -3,10 +3,12 @@
namespace Application\Controller;

use Application\Form\FormationInstance\FormationInstanceForm;
use Application\Form\FormationInstanceFormateur\FormationInstanceFormateurForm;
use Application\Form\FormationInstanceFrais\FormationInstanceFraisForm;
use Application\Form\FormationJournee\FormationJourneeForm;
use Application\Form\SelectionAgent\SelectionAgentForm;
use Application\Service\Formation\FormationService;
use Application\Service\FormationInstance\FormationInstanceFormateurService;
use Application\Service\FormationInstance\FormationInstanceFraisService;
use Application\Service\FormationInstance\FormationInstanceInscritService;
use Application\Service\FormationInstance\FormationInstanceJourneeService;
@@ -30,6 +32,7 @@ class FormationInstanceControllerFactory {
         * @var FormationInstanceInscritService $formationInstanceInscritService
         * @var FormationInstanceJourneeService $formationInstanceJourneeService
         * @var FormationInstancePresenceService $formationInstancePresenceService
         * @var FormationInstanceFormateurService $formationInstanceFormateurService
         * @var FormationInstanceFraisService $formationInstanceFraisService
         * @var ExporterService $exporterService
         */
@@ -38,17 +41,20 @@ class FormationInstanceControllerFactory {
        $formationInstanceInscritService = $container->get(FormationInstanceInscritService::class);
        $formationInstanceJourneeService = $container->get(FormationInstanceJourneeService::class);
        $formationInstancePresenceService = $container->get(FormationInstancePresenceService::class);
        $formationInstanceFormateurService = $container->get(FormationInstanceFormateurService::class);
        $formationInstanceFraisService = $container->get(FormationInstanceFraisService::class);
        $exporterService = $container->get(ExporterService::class);

        /**
         * @var FormationInstanceForm $formationInstanceForm
         * @var FormationJourneeForm $formationJourneeForm
         * @var FormationInstanceFormateurForm $formationFormateurForm
         * @var FormationInstanceFraisForm $formationFraisForm
         * @var SelectionAgentForm $selectionAgentForm
         */
        $formationInstanceForm = $container->get('FormElementManager')->get(FormationInstanceForm::class);
        $formationJourneeForm = $container->get('FormElementManager')->get(FormationJourneeForm::class);
        $formationFormateurForm = $container->get('FormElementManager')->get(FormationInstanceFormateurForm::class);
        $formationFraisForm = $container->get('FormElementManager')->get(FormationInstanceFraisForm::class);
        $selectionAgentForm = $container->get('FormElementManager')->get(SelectionAgentForm::class);

@@ -63,10 +69,12 @@ class FormationInstanceControllerFactory {
        $controller->setFormationInstanceInscritService($formationInstanceInscritService);
        $controller->setFormationInstanceJourneeService($formationInstanceJourneeService);
        $controller->setFormationInstancePresenceService($formationInstancePresenceService);
        $controller->setFormationInstanceFormateurService($formationInstanceFormateurService);
        $controller->setFormationInstanceFraisService($formationInstanceFraisService);
        $controller->setExporterService($exporterService);
        $controller->setFormationInstanceForm($formationInstanceForm);
        $controller->setFormationJourneeForm($formationJourneeForm);
        $controller->setFormationInstanceFormateurForm($formationFormateurForm);
        $controller->setFormationInstanceFraisForm($formationFraisForm);
        $controller->setSelectionAgentForm($selectionAgentForm);
        return $controller;
+13 −0
Changes for module/Application/src/Application/Entity/Db/FormationInstance.php: 13 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -166,6 +166,19 @@ class FormationInstance implements HistoriqueAwareInterface {
        return $this->formateurs->toArray();
    }

    /**
     * @return float
     */
    public function getVolumeHoraireSomme()
    {
        $somme = 0;
        /** @var FormationInstanceFormateur $formateur */
        foreach ($this->formateurs as $formateur) {
            if ($formateur->estNonHistorise() AND $formateur->getVolume()) $somme += $formateur->getVolume();
        }
        return $somme;
    }

    /** JOURNEE *******************************************************************************************************/

    public function getJournees()
+12 −0
Changes for module/Application/src/Application/Form/FormationInstanceFormateur/FormationInstanceFormateurForm.php: 12 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -35,6 +35,17 @@ class FormationInstanceFormateurForm extends Form
                'id' => 'nom',
            ],
        ]);
        //attachement
        $this->add([
            'type' => Text::class,
            'name' => 'attachement',
            'options' => [
                'label' => "Structure d'attachement :",
            ],
            'attributes' => [
                'id' => 'attachement',
            ],
        ]);
        //volume
        $this->add([
            'type' => Text::class,
@@ -77,6 +88,7 @@ class FormationInstanceFormateurForm extends Form
        $this->setInputFilter((new Factory())->createInputFilter([
            'prenom' => [ 'required' => true],
            'nom'    => [ 'required' => true],
            'attachement'    => [ 'required' => false],
            'volume'              => [
                'required' => false,
                'validators' => [
+3 −0
Changes for module/Application/src/Application/Form/FormationInstanceFormateur/FormationInstanceFormateurHydrator.php: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ class FormationInstanceFormateurHydrator implements HydratorInterface {
        $data = [
            'prenom'    => ($object)?$object->getPrenom():null,
            'nom'       => ($object)?$object->getNom():null,
            'attachement'       => ($object)?$object->getAttachement():null,
            'volume'    => ($object)?$object->getVolume():null,
            'montant'   => ($object)?$object->getMontant():null,
        ];
@@ -31,11 +32,13 @@ class FormationInstanceFormateurHydrator implements HydratorInterface {
    {
        $prenom     = (isset($data['prenom']) AND trim($data['prenom']) !== "")?trim($data['prenom']):null;
        $nom        = (isset($data['nom']) AND trim($data['nom']) !== "")?trim($data['nom']):null;
        $attachement = (isset($data['attachement']) AND trim($data['attachement']) !== "")?trim($data['attachement']):null;
        $volume     = (isset($data['volume']) AND trim($data['volume']) !== "")?trim($data['volume']):null;
        $montant    = (isset($data['montant']) AND trim($data['montant']) !== "")?trim($data['montant']):null;

        $object->setPrenom($prenom);
        $object->setNom($nom);
        $object->setAttachement($attachement);
        $object->setVolume($volume);
        $object->setMontant($montant);
        return $object;
Loading