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

Ajout des correspondances

parent 6f94cbcd
Loading
Loading
Loading
Loading
+2 −1
Changes for module/Application/config/merged/fiche-metier.config.php: 2 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ use Application\Controller\FicheMetier\FicheMetierTypeControllerFactory;
use Application\Form\Agent\AgentForm;
use Application\Form\Agent\AgentFormFactory;
use Application\Form\Agent\AgentHydrator;
use Application\Form\Agent\AgentHydratorFactory;
use Application\Form\FicheMetier\FicheMetierCreationForm;
use Application\Form\FicheMetier\FicheMetierCreationFormFactory;
use Application\Form\FicheMetier\FicheMetierCreationHydrator;
@@ -312,11 +313,11 @@ return [
    'hydrators' => [
        'invokables' => [
            MissionsPrincipalesHydrator::class => MissionsPrincipalesHydrator::class,
            AgentHydrator::class => AgentHydrator::class,
        ],
        'factories' => [
            FicheMetierCreationHydrator::class => FicheMetierCreationHydratorFactory::class,
            LibelleHydrator::class => LibelleHydratorFactory::class,
            AgentHydrator::class => AgentHydratorFactory::class,
        ]
    ]

+30 −7
Changes for module/Application/config/merged/menu.config.php: 30 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -7,12 +7,42 @@ use Application\Provider\Privilege\AffectationPrivileges;
use Application\Provider\Privilege\ApplicationPrivileges;
use Application\Provider\Privilege\FicheMetierPrivileges;
use Application\Provider\Privilege\MetierPrivileges;
use Application\Provider\Privilege\RessourceRhPrivileges;

return [
    'navigation' => [
        'default' => [
            'home' => [
                'pages' => [
                    'ressource' => [
                        'order' => 100,
                        'label' => 'Ressources RH',
                        'route' => 'ressource-rh',
                        'roles' => [],
                        'pages' => [
                            [
                                'label' => 'Status',
                                'route' => 'ressource-rh',
                                'privileges' => RessourceRhPrivileges::AFFICHER,
                                'dropdown-header' => true,
                                'icon' => 'fas fa-angle-right'
                            ],
                            [
                                'label' => 'Correspondances',
                                'route' => 'ressource-rh',
                                'privileges' => RessourceRhPrivileges::AFFICHER,
                                'dropdown-header' => true,
                                'icon' => 'fas fa-angle-right'
                            ],
                            [
                                'label' => 'Métiers',
                                'route' => 'ressource-rh',
                                'privileges' => RessourceRhPrivileges::AFFICHER,
                                'dropdown-header' => true,
                                'icon' => 'fas fa-angle-right'
                            ],
                        ],
                    ],
                    'fiche-metier' => [
//                        'order' => -10,
                        'label' => 'Fiches',
@@ -55,13 +85,6 @@ return [
                                'dropdown-header' => true,
                                'icon' => 'fas fa-angle-right'
                            ],
                            [
                                'label' => 'Les métiers',
                                'route' => 'metier',
                                'privileges' => MetierPrivileges::AFFICHER,
                                'dropdown-header' => true,
                                'icon' => 'fas fa-angle-right'
                            ],
                        ],
                    ],
                ],
+64 −6
Changes for module/Application/config/merged/ressource-rh.config.php: 64 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -7,6 +7,9 @@ use Application\Controller\RessourceRh\RessourceRhControllerFactory;
use Application\Form\RessourceRh\AgentStatusForm;
use Application\Form\RessourceRh\AgentStatusFormFactory;
use Application\Form\RessourceRh\AgentStatusHydrator;
use Application\Form\RessourceRh\CorrespondanceForm;
use Application\Form\RessourceRh\CorrespondanceFormFactory;
use Application\Form\RessourceRh\CorrespondanceHydrator;
use Application\Service\RessourceRh\RessourceRhService;
use Application\Service\RessourceRh\RessourceRhServiceFactory;
use UnicaenAuth\Guard\PrivilegeController;
@@ -24,6 +27,9 @@ return [
                        'creer-agent-status',
                        'modifier-agent-status',
                        'effacer-agent-status',
                        'creer-correspondance',
                        'modifier-correspondance',
                        'effacer-correspondance',
                    ],
                    'roles' => [],
                ],
@@ -44,30 +50,37 @@ return [
                ],
                'may_terminate' => true,
                'child_routes' => [
                    'creer-agent-status' => [
                    'agent-status' => [
                        'type' => Literal::class,
                        'options' => [
                            'route'    => '/creer-agent-status',
                            'route'    => '/agent-status',
                        ],
                        'may_terminate' => false,
                        'child_routes' => [
                            'creer' => [
                                'type'  => Literal::class,
                                'options' => [
                                    'route'    => '/creer',
                                    'defaults' => [
                                        'controller' => RessourceRhController::class,
                                        'action'     => 'creer-agent-status',
                                    ],
                                ],
                            ],
                    'modifier-agent-status' => [
                            'modifier' => [
                                'type'  => Segment::class,
                                'options' => [
                            'route'    => '/modifier-agent-status/:id',
                                    'route'    => '/modifier/:id',
                                    'defaults' => [
                                        'controller' => RessourceRhController::class,
                                        'action'     => 'modifier-agent-status',
                                    ],
                                ],
                            ],
                    'effacer-agent-status' => [
                            'effacer' => [
                                'type'  => Segment::class,
                                'options' => [
                            'route'    => '/effacer-agent-status/:id',
                                    'route'    => '/effacer/:id',
                                    'defaults' => [
                                        'controller' => RessourceRhController::class,
                                        'action'     => 'effacer-agent-status',
@@ -76,6 +89,49 @@ return [
                            ],
                        ],
                    ],
                    'correspondance' => [
                        'type' => Literal::class,
                        'options' => [
                            'route'    => '/correspondance',
                        ],
                        'may_terminate' => false,
                        'child_routes' => [
                            'creer' => [
                                'type'  => Literal::class,
                                'options' => [
                                    'route'    => '/creer',
                                    'defaults' => [
                                        'controller' => RessourceRhController::class,
                                        'action'     => 'creer-correspondance',
                                    ],
                                ],
                            ],
                            'modifier' => [
                                'type'  => Segment::class,
                                'options' => [
                                    'route'    => '/modifier/:id',
                                    'defaults' => [
                                        'controller' => RessourceRhController::class,
                                        'action'     => 'modifier-correspondance',
                                    ],
                                ],
                            ],
                            'effacer' => [
                                'type'  => Segment::class,
                                'options' => [
                                    'route'    => '/effacer/:id',
                                    'defaults' => [
                                        'controller' => RessourceRhController::class,
                                        'action'     => 'effacer-correspondance',
                                    ],
                                ],
                            ],
                        ],
                    ],

                ],

            ],
        ],
    ],

@@ -94,11 +150,13 @@ return [
    'form_elements' => [
        'factories' => [
            AgentStatusForm::class => AgentStatusFormFactory::class,
            CorrespondanceForm::class => CorrespondanceFormFactory::class,
        ],
    ],
    'hydrators' => [
        'invokable' => [
            AgentStatusHydrator::class => AgentStatusHydrator::class,
            CorrespondanceHydrator::class => CorrespondanceHydrator::class,
        ]
    ]

+78 −11
Changes for module/Application/src/Application/Controller/RessourceRh/RessourceRhController.php: 78 added lines, 11 removed lines.
Original line number Diff line number Diff line
@@ -3,39 +3,41 @@
namespace Application\Controller\RessourceRh;

use Application\Entity\Db\AgentStatus;
use Application\Entity\Db\Correspondance;
use Application\Form\RessourceRh\AgentStatusForm;
use Application\Form\RessourceRh\CorrespondanceForm;
use Application\Service\Metier\MetierServiceAwareTrait;
use Application\Service\RessourceRh\RessourceRhServiceAwareTrait;
use Zend\Http\Request;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class RessourceRhController extends AbstractActionController {
    use MetierServiceAwareTrait;
    use RessourceRhServiceAwareTrait;

    public function indexAction()
    {
        $status = $this->getRessourceRhService()->getAgentStatusListe('libelle');
        $BAPs = null;
        $REFERENSs = null;
        $REMEs = null;
        $bibliotheques = null;
        $correspondances = $this->getRessourceRhService()->getCorrespondances('libelle');
        $metiers = $this->getMetierService()->getMetiers('libelle');

        return new ViewModel([
            'status' => $status,
//            'BAPs' => $BAPs,
//            'REFERENSs' => $REFERENSs,
//            'REMEs' => $REMEs,
//            'bibliotheques' => $bibliotheques,
            'correspondances' => $correspondances,
            'metiers' => $metiers,
        ]);
    }

    /** AGENT STATUS **************************************************************************************************/

    public function creerAgentStatusAction()
    {
        $status = new AgentStatus();

        /** @var AgentStatusForm $form */
        $form = $this->getServiceLocator()->get('FormElementManager')->get(AgentStatusForm::class);
        $form->setAttribute('action', $this->url()->fromRoute('ressource-rh/creer-agent-status', [], [], true));
        $form->setAttribute('action', $this->url()->fromRoute('ressource-rh/agent-status/creer', [], [], true));
        $form->bind($status);

        /** @var Request $request */
@@ -61,7 +63,7 @@ class RessourceRhController extends AbstractActionController {

        /** @var AgentStatusForm $form */
        $form = $this->getServiceLocator()->get('FormElementManager')->get(AgentStatusForm::class);
        $form->setAttribute('action', $this->url()->fromRoute('ressource-rh/modifier-agent-status', [], [], true));
        $form->setAttribute('action', $this->url()->fromRoute('ressource-rh/agent-status/modifier', [], [], true));
        $form->bind($status);

        /** @var Request $request */
@@ -75,7 +77,7 @@ class RessourceRhController extends AbstractActionController {
        }

        return new ViewModel([
            'title' => 'Modifier un nouveau status',
            'title' => 'Modifier un status',
            'form' => $form,
        ]);
    }
@@ -91,4 +93,69 @@ class RessourceRhController extends AbstractActionController {

        $this->redirect()->toRoute('ressource-rh', [], [], true);
    }

    /** CORRESPONDANCE ************************************************************************************************/

    public function creerCorrespondanceAction()
    {
        $correspondance = new Correspondance();

        /** @var AgentStatusForm $form */
        $form = $this->getServiceLocator()->get('FormElementManager')->get(CorrespondanceForm::class);
        $form->setAttribute('action', $this->url()->fromRoute('ressource-rh/correspondance/creer', [], [], true));
        $form->bind($correspondance);

        /** @var Request $request */
        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            $form->setData($data);
            if ($form->isValid()) {
                $this->getRessourceRhService()->createCorrespondance($correspondance);
            }
        }

        return new ViewModel([
            'title' => 'Ajouter une nouvelle correspondance',
            'form' => $form,
        ]);
    }

    public function modifierCorrespondanceAction()
    {
        $correspondanceId = $this->params()->fromRoute('id');
        $correspondance = $this->getRessourceRhService()->getCorrespondance($correspondanceId);

        /** @var AgentStatusForm $form */
        $form = $this->getServiceLocator()->get('FormElementManager')->get(CorrespondanceForm::class);
        $form->setAttribute('action', $this->url()->fromRoute('ressource-rh/correspondance/modifier', [], [], true));
        $form->bind($correspondance);

        /** @var Request $request */
        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            $form->setData($data);
            if ($form->isValid()) {
                $this->getRessourceRhService()->updateCorrespondance($correspondance);
            }
        }

        return new ViewModel([
            'title' => 'Modifier une correspondance',
            'form' => $form,
        ]);
    }

    public function effacerCorrespondanceAction()
    {
        $correspondanceId = $this->params()->fromRoute('id');
        $correspondance = $this->getRessourceRhService()->getCorrespondance($correspondanceId);

        if ($correspondance !== null) {
            $this->getRessourceRhService()->deleteCorrespondance($correspondance);
        }

        $this->redirect()->toRoute('ressource-rh', [], [], true);
    }
}
 No newline at end of file
+4 −0
Changes for module/Application/src/Application/Controller/RessourceRh/RessourceRhControllerFactory.php: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@

namespace Application\Controller\RessourceRh;

use Application\Service\Metier\MetierService;
use Application\Service\RessourceRh\RessourceRhService;
use Zend\Mvc\Controller\ControllerManager;

@@ -10,12 +11,15 @@ class RessourceRhControllerFactory {
    public function __invoke(ControllerManager $controllerManager)
    {
        /**
         * @var MetierService $metierService
         * @var RessourceRhService $ressourceService
         */
        $metierService       = $controllerManager->getServiceLocator()->get(MetierService::class);
        $ressourceService    = $controllerManager->getServiceLocator()->get(RessourceRhService::class);

        /** @var RessourceRhController $controller */
        $controller = new RessourceRhController();
        $controller->setMetierService($metierService);
        $controller->setRessourceRhService($ressourceService);
        return $controller;
    }
Loading