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

Début de transfert des formations dans module a part : Frais, Presence

parent 19adb2d1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ $modules = [
    'Autoform',
    'Fichier',
    'Indicateur',
    'Formation',
    'Application',
//    'Document',
    'ZendDeveloperTools',
+0 −56
Original line number Diff line number Diff line
@@ -28,10 +28,6 @@ use Application\Form\FormationInstanceFormateur\FormationInstanceFormateurForm;
use Application\Form\FormationInstanceFormateur\FormationInstanceFormateurFormFactory;
use Application\Form\FormationInstanceFormateur\FormationInstanceFormateurHydrator;
use Application\Form\FormationInstanceFormateur\FormationInstanceFormateurHydratorFactory;
use Application\Form\FormationInstanceFrais\FormationInstanceFraisForm;
use Application\Form\FormationInstanceFrais\FormationInstanceFraisFormFactory;
use Application\Form\FormationInstanceFrais\FormationInstanceFraisHydrator;
use Application\Form\FormationInstanceFrais\FormationInstanceFraisHydratorFactory;
use Application\Form\FormationJournee\FormationJourneeForm;
use Application\Form\FormationJournee\FormationJourneeFormFactory;
use Application\Form\FormationJournee\FormationJourneeHydrator;
@@ -48,14 +44,10 @@ use Application\Service\Formation\FormationThemeService;
use Application\Service\Formation\FormationThemeServiceFactory;
use Application\Service\FormationInstance\FormationInstanceFormateurService;
use Application\Service\FormationInstance\FormationInstanceFormateurServiceFactory;
use Application\Service\FormationInstance\FormationInstanceFraisService;
use Application\Service\FormationInstance\FormationInstanceFraisServiceFactory;
use Application\Service\FormationInstance\FormationInstanceInscritService;
use Application\Service\FormationInstance\FormationInstanceInscritServiceFactory;
use Application\Service\FormationInstance\FormationInstanceJourneeService;
use Application\Service\FormationInstance\FormationInstanceJourneeServiceFactory;
use Application\Service\FormationInstance\FormationInstancePresenceService;
use Application\Service\FormationInstance\FormationInstancePresenceServiceFactory;
use Application\Service\FormationInstance\FormationInstanceService;
use Application\Service\FormationInstance\FormationInstanceServiceFactory;
use UnicaenPrivilege\Guard\PrivilegeController;
@@ -179,10 +171,6 @@ return [
                    'controller' => FormationInstanceController::class,
                    'action' => [
                        'modifier-informations',
                        'renseigner-presences',
                        'renseigner-frais',
                        'toggle-presence',
                        'toggle-presences',

                        'ajouter-journee',
                        'modifier-journee',
@@ -306,16 +294,6 @@ return [
                            ],
                        ],
                    ],
                    'renseigner-frais' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/renseigner-frais/:inscrit',
                            'defaults' => [
                                'controller' => FormationInstanceController::class,
                                'action'     => 'renseigner-frais',
                            ],
                        ],
                    ],
                    'historiser' => [
                        'type'  => Segment::class,
                        'options' => [
@@ -356,16 +334,6 @@ return [
                            ],
                        ],
                    ],
                    'renseigner-presences' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/renseigner-presences/:formation-instance',
                            'defaults' => [
                                'controller' => FormationInstanceController::class,
                                'action'     => 'renseigner-presences',
                            ],
                        ],
                    ],
                    'renseigner-questionnaire' => [
                        'type'  => Segment::class,
                        'options' => [
@@ -376,26 +344,6 @@ return [
                            ],
                        ],
                    ],
                    'toggle-presence' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/toggle-presence/:journee/:inscrit',
                            'defaults' => [
                                'controller' => FormationInstanceController::class,
                                'action'     => 'toggle-presence',
                            ],
                        ],
                    ],
                    'toggle-presences' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/toggle-presences/:mode/:inscrit',
                            'defaults' => [
                                'controller' => FormationInstanceController::class,
                                'action'     => 'toggle-presences',
                            ],
                        ],
                    ],
                    'ajouter-journee' => [
                        'type'  => Segment::class,
                        'options' => [
@@ -814,9 +762,7 @@ return [
            FormationInstanceService::class => FormationInstanceServiceFactory::class,
            FormationInstanceInscritService::class => FormationInstanceInscritServiceFactory::class,
            FormationInstanceJourneeService::class => FormationInstanceJourneeServiceFactory::class,
            FormationInstancePresenceService::class => FormationInstancePresenceServiceFactory::class,
            FormationInstanceFormateurService::class => FormationInstanceFormateurServiceFactory::class,
            FormationInstanceFraisService::class => FormationInstanceFraisServiceFactory::class,
            FormationGroupeService::class => FormationGroupeServiceFactory::class,
            FormationThemeService::class => FormationThemeServiceFactory::class,
            FormationInstanceInscritAssertion::class => FormationInstanceInscritAssertionFactory::class,
@@ -835,7 +781,6 @@ return [
            FormationGroupeForm::class => FormationGroupeFormFactory::class,
            FormationInstanceForm::class => FormationInstanceFormFactory::class,
            FormationInstanceFormateurForm::class => FormationInstanceFormateurFormFactory::class,
            FormationInstanceFraisForm::class => FormationInstanceFraisFormFactory::class,
            FormationJourneeForm::class => FormationJourneeFormFactory::class,
            SelectionFormationForm::class => SelectionFormationFormFactory::class,
        ],
@@ -850,7 +795,6 @@ return [
            FormationGroupeHydrator::class => FormationGroupeHydratorFactory::class,
            FormationInstanceHydrator::class => FormationInstanceHydratorFactory::class,
            FormationInstanceFormateurHydrator::class => FormationInstanceFormateurHydratorFactory::class,
            FormationInstanceFraisHydrator::class => FormationInstanceFraisHydratorFactory::class,
            FormationJourneeHydrator::class => FormationJourneeHydratorFactory::class,
        ],
    ],
+1 −121
Original line number Diff line number Diff line
@@ -4,24 +4,20 @@ 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;
use Application\Service\FormationInstance\FormationInstancePresenceAwareTrait;
use Application\Service\FormationInstance\FormationInstanceServiceAwareTrait;
use Autoform\Service\Formulaire\FormulaireInstanceServiceAwareTrait;
use Formation\Service\FormationInstancePresence\FormationInstancePresenceAwareTrait;
use Mpdf\MpdfException;
use UnicaenApp\Exception\RuntimeException;
use UnicaenDocument\Service\Exporter\ExporterServiceAwareTrait;
@@ -38,13 +34,11 @@ class FormationInstanceController extends AbstractActionController {
    use FormationInstanceInscritServiceAwareTrait;
    use FormationInstanceJourneeServiceAwareTrait;
    use FormationInstanceFormateurServiceAwareTrait;
    use FormationInstanceFraisServiceAwareTrait;
    use FormationInstancePresenceAwareTrait;
    use FormulaireInstanceServiceAwareTrait;
    use FormationInstanceFormAwareTrait;
    use FormationJourneeFormAwareTrait;
    use FormationInstanceFormateurFormAwareTrait;
    use FormationInstanceFraisFormAwareTrait;
    use SelectionAgentFormAwareTrait;
    use ExporterServiceAwareTrait;

@@ -519,120 +513,6 @@ class FormationInstanceController extends AbstractActionController {
        exit;
    }

    /** FRIAS DE FORMATION ********************************************************************************************/

    public function renseignerFraisAction()
    {
        $inscrit = $this->getFormationInstanceInscritService()->getRequestedFormationInstanceInscrit($this);
        if ($inscrit->getFrais() === null) {
            $frais = new FormationInstanceFrais();
            $frais->setInscrit($inscrit);
            $this->getFormationInstanceFraisService()->create($frais);
        }
        $frais = $inscrit->getFrais();

        $form = $this->getFormationInstanceFraisForm();
        $form->setAttribute('action', $this->url()->fromRoute('formation-instance/renseigner-frais', ['inscrit' => $inscrit->getId()], [], true));
        $form->bind($frais);

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

        $vm = new ViewModel();
        $vm->setTemplate('application/default/default-form');
        $vm->setVariables([
            'title' => "Saisie des frais de ".$inscrit->getAgent()->getDenomination(),
            'form' => $form,
        ]);
        return $vm;
    }

    /** PRESENCE AU FORMATION *****************************************************************************************/

    public function renseignerPresencesAction()
    {
        $instance = $this->getFormationInstanceService()->getRequestedFormationInstance($this);
        $presences = $this->getFormationInstancePresenceService()->getFormationInstancePresenceByInstance($instance);

        $dictionnaire = [];
        foreach ($presences as $presence) {
            $dictionnaire[$presence->getJournee()->getId()][$presence->getInscrit()->getId()] = $presence;
        }

        return new ViewModel([
            'instance' => $instance,
            'presences' => $dictionnaire,
        ]);
    }

    public function togglePresenceAction()
    {
        $journeeId = $this->params()->fromRoute('journee');
        $journee = $this->getFormationInstanceJourneeService()->getFormationInstanceJournee($journeeId);
        $inscritId = $this->params()->fromRoute('inscrit');
        $inscrit = $this->getFormationInstanceInscritService()->getFormationInstanceInscrit($inscritId);

        /** @var  FormationInstancePresence $presence */
        $presence = $this->getFormationInstancePresenceService()->getFormationInstancePresenceByJourneeAndInscrit($journee, $inscrit);
        if ($presence === null) {
            $presence = new FormationInstancePresence();
            $presence->setJournee($journee);
            $presence->setInscrit($inscrit);
            $presence->setPresent(true);
            $presence->setPresenceType("???");
            $this->getFormationInstancePresenceService()->create($presence);
        } else {
            $presence->setPresent(! $presence->isPresent());
            $this->getFormationInstancePresenceService()->update($presence);
        }

        $vm = new ViewModel();
        $vm->setTemplate('application/default/reponse');
        $vm->setVariables([
            'reponse' => $presence->isPresent(),
        ]);
        return $vm;
    }

    public function togglePresencesAction()
    {
        $mode = $this->params()->fromRoute('mode');
        $inscritId = $this->params()->fromRoute('inscrit');
        $inscrit = $this->getFormationInstanceInscritService()->getFormationInstanceInscrit($inscritId);

        $instance = $inscrit->getInstance();
        $journees = $instance->getJournees();

        /** @var  FormationInstancePresence $presence */
        foreach ($journees as $journee) {
            $presence = $this->getFormationInstancePresenceService()->getFormationInstancePresenceByJourneeAndInscrit($journee, $inscrit);
            if ($presence === null) {
                $presence = new FormationInstancePresence();
                $presence->setJournee($journee);
                $presence->setInscrit($inscrit);
                $presence->setPresent($mode === 'on');
                $presence->setPresenceType("???");
                $this->getFormationInstancePresenceService()->create($presence);
            } else {
                $presence->setPresent($mode === 'on');
                $this->getFormationInstancePresenceService()->update($presence);
            }
        }

        $vm = new ViewModel();
        $vm->setTemplate('application/default/reponse');
        $vm->setVariables([
            'reponse' => ($mode === 'on'),
        ]);
        return $vm;
    }
    
    /** Question suite à la formation */

    public function renseignerQuestionnaireAction()
+1 −9
Original line number Diff line number Diff line
@@ -4,17 +4,15 @@ 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;
use Application\Service\FormationInstance\FormationInstancePresenceService;
use Application\Service\FormationInstance\FormationInstanceService;
use Autoform\Service\Formulaire\FormulaireInstanceService;
use Formation\Service\FormationInstancePresence\FormationInstancePresenceService;
use Interop\Container\ContainerInterface;
use UnicaenDocument\Service\Exporter\ExporterService;
use Zend\View\Renderer\PhpRenderer;
@@ -34,7 +32,6 @@ class FormationInstanceControllerFactory {
         * @var FormationInstanceJourneeService $formationInstanceJourneeService
         * @var FormationInstancePresenceService $formationInstancePresenceService
         * @var FormationInstanceFormateurService $formationInstanceFormateurService
         * @var FormationInstanceFraisService $formationInstanceFraisService
         * @var FormulaireInstanceService $formulaireInstanceService
         * @var ExporterService $exporterService
         */
@@ -44,7 +41,6 @@ class FormationInstanceControllerFactory {
        $formationInstanceJourneeService = $container->get(FormationInstanceJourneeService::class);
        $formationInstancePresenceService = $container->get(FormationInstancePresenceService::class);
        $formationInstanceFormateurService = $container->get(FormationInstanceFormateurService::class);
        $formationInstanceFraisService = $container->get(FormationInstanceFraisService::class);
        $formulaireInstanceService = $container->get(FormulaireInstanceService::class);
        $exporterService = $container->get(ExporterService::class);

@@ -52,13 +48,11 @@ class FormationInstanceControllerFactory {
         * @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);

        /* @var PhpRenderer $renderer  */
@@ -73,13 +67,11 @@ class FormationInstanceControllerFactory {
        $controller->setFormationInstanceJourneeService($formationInstanceJourneeService);
        $controller->setFormationInstancePresenceService($formationInstancePresenceService);
        $controller->setFormationInstanceFormateurService($formationInstanceFormateurService);
        $controller->setFormationInstanceFraisService($formationInstanceFraisService);
        $controller->setFormulaireInstanceService($formulaireInstanceService);
        $controller->setExporterService($exporterService);
        $controller->setFormationInstanceForm($formationInstanceForm);
        $controller->setFormationJourneeForm($formationJourneeForm);
        $controller->setFormationInstanceFormateurForm($formationFormateurForm);
        $controller->setFormationInstanceFraisForm($formationFraisForm);
        $controller->setSelectionAgentForm($selectionAgentForm);
        return $controller;
    }
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ use Application\Entity\HasAgentInterface;
use Autoform\Entity\Db\FormulaireInstance;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Formation\Entity\Db\FormationInstanceFrais;
use UnicaenUtilisateur\Entity\HistoriqueAwareInterface;
use UnicaenUtilisateur\Entity\HistoriqueAwareTrait;
use Zend\Permissions\Acl\Resource\ResourceInterface;
Loading