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

Ajout des fonctions

parent a066439b
Loading
Loading
Loading
Loading
+47 −0
Original line number Diff line number Diff line
@@ -8,6 +8,9 @@ use Application\Controller\RessourceRh\RessourceRhControllerFactory;
use Application\Form\RessourceRh\DomaineForm;
use Application\Form\RessourceRh\DomaineFormFactory;
use Application\Form\RessourceRh\DomaineHydrator;
use Application\Form\RessourceRh\FonctionForm;
use Application\Form\RessourceRh\FonctionFormFactory;
use Application\Form\RessourceRh\FonctionHydrator;
use Application\Form\RessourceRh\MetierFamilleForm;
use Application\Form\RessourceRh\MetierFamilleFormFactory;
use Application\Form\RessourceRh\MetierFamilleHydrator;
@@ -53,6 +56,7 @@ return [
                        'creer-metier',
                        'creer-famille',
                        'ajouter-domaine',
                        'ajouter-fonction',
                    ],
                    'privileges' => [
                        RessourceRhPrivileges::AJOUTER,
@@ -67,6 +71,7 @@ return [
                        'modifier-metier',
                        'modifier-famille',
                        'modifier-domaine',
                        'modifier-fonction',
                    ],
                    'privileges' => [
                        RessourceRhPrivileges::MODIFIER,
@@ -81,6 +86,7 @@ return [
                        'effacer-agent-status',
                        'effacer-famille',
                        'supprimer-domaine',
                        'supprimer-fonction',
                    ],
                    'privileges' => [
                        RessourceRhPrivileges::EFFACER,
@@ -341,6 +347,45 @@ return [
                            ],
                        ],
                    ],
                    'fonction' => [
                        'type' => Literal::class,
                        'options' => [
                            'route'    => '/fonction',
                        ],
                        'may_terminate' => false,
                        'child_routes' => [
                            'ajouter' => [
                                'type'  => Literal::class,
                                'options' => [
                                    'route'    => '/ajouter',
                                    'defaults' => [
                                        'controller' => RessourceRhController::class,
                                        'action'     => 'ajouter-fonction',
                                    ],
                                ],
                            ],
                            'modifier' => [
                                'type'  => Segment::class,
                                'options' => [
                                    'route'    => '/modifier/:fonction',
                                    'defaults' => [
                                        'controller' => RessourceRhController::class,
                                        'action'     => 'modifier-fonction',
                                    ],
                                ],
                            ],
                            'supprimer' => [
                                'type'  => Segment::class,
                                'options' => [
                                    'route'    => '/supprimer/:fonction',
                                    'defaults' => [
                                        'controller' => RessourceRhController::class,
                                        'action'     => 'supprimer-fonction',
                                    ],
                                ],
                            ],
                        ],
                    ],
                ],
            ],
        ],
@@ -366,6 +411,7 @@ return [
            MetierForm::class => MetierFormFactory::class,
            MetierFamilleForm::class => MetierFamilleFormFactory::class,
            DomaineForm::class => DomaineFormFactory::class,
            FonctionForm::class => FonctionFormFactory::class,
        ],
    ],
    'hydrators' => [
@@ -375,6 +421,7 @@ return [
            CorrespondanceHydrator::class => CorrespondanceHydrator::class,
            MetierFamilleHydrator::class => MetierFamilleHydrator::class,
            DomaineHydrator::class => DomaineHydrator::class,
            FonctionHydrator::class => FonctionHydrator::class,
        ],
        'factories' => [
            MetierHydrator::class => MetierHydratorFactory::class,
+78 −0
Original line number Diff line number Diff line
@@ -6,9 +6,11 @@ use Application\Entity\Db\AgentStatus;
use Application\Entity\Db\Corps;
use Application\Entity\Db\Correspondance;
use Application\Entity\Db\Domaine;
use Application\Entity\Db\Fonction;
use Application\Entity\Db\Metier;
use Application\Entity\Db\MetierFamille;
use Application\Form\RessourceRh\DomaineForm;
use Application\Form\RessourceRh\FonctionForm;
use Application\Form\RessourceRh\MetierFamilleForm;
use Application\Form\RessourceRh\MetierForm;
use Application\Form\RessourceRh\AgentStatusForm;
@@ -30,6 +32,7 @@ class RessourceRhController extends AbstractActionController {
        $corps = $this->getRessourceRhService()->getCorpsListe('libelle');
        $familles = $this->getRessourceRhService()->getMetiersFamilles('libelle');
        $domaines = $this->getRessourceRhService()->getDomaines('libelle');
        $fonctions = $this->getRessourceRhService()->getFonctions('libelle');

        return new ViewModel([
            'status' => $status,
@@ -38,6 +41,7 @@ class RessourceRhController extends AbstractActionController {
            'familles' => $familles,
            'corps' => $corps,
            'domaines' => $domaines,
            'fonctions' => $fonctions,
        ]);
    }

@@ -470,4 +474,78 @@ class RessourceRhController extends AbstractActionController {
        $this->redirect()->toRoute('ressource-rh', [], [], true);
    }

    /** FONCTION ******************************************************************************************************/

    public function ajouterFonctionAction()
    {
        /** @var Fonction $fonction */
        $fonction = new Fonction();

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

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

        $vm = new ViewModel();
        $vm->setTemplate('application/default/default-form');
        $vm->setVariables([
            'title' => 'Ajouter une fonction',
            'form' => $form,
        ]);
        return $vm;
    }

    public function modifierFonctionAction()
    {
        /** @var Domaine $domaine */
        $fonctionId = $this->params()->fromRoute('fonction');
        $fonction = $this->getRessourceRhService()->getFonction($fonctionId);

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

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

        $vm = new ViewModel();
        $vm->setTemplate('application/default/default-form');
        $vm->setVariables([
            'title' => 'Modifier une fonction',
            'form' => $form,
        ]);
        return $vm;
    }

    public function supprimerFonctionAction()
    {
        /** @var Domaine $domaine */
        $fonctionId = $this->params()->fromRoute('fonction');
        $fonction = $this->getRessourceRhService()->getFonction($fonctionId);

        if ($domaine !== null) {
            $this->getRessourceRhService()->deleteFonction($fonction);
        }

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

}
 No newline at end of file
+39 −0
Original line number Diff line number Diff line
<?php

namespace Application\Entity\Db;

class Fonction {

    /** @var integer */
    private $id;
    /** @var string */
    private $libelle;

    /**
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * @return string
     */
    public function getLibelle()
    {
        return $this->libelle;
    }

    /**
     * @param string $libelle
     * @return Fonction
     */
    public function setLibelle($libelle)
    {
        $this->libelle = $libelle;
        return $this;
    }


};
 No newline at end of file
+12 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
    <entity name="Application\Entity\Db\Fonction" table="fonction">

        <id name="id" type="integer" column="id">
            <generator strategy="IDENTITY"/>
        </id>

        <field name="libelle"           type="string" length="255"      column="libelle"                nullable="false"/>

    </entity>
</doctrine-mapping>
+3 −0
Original line number Diff line number Diff line
@@ -22,6 +22,9 @@
        <many-to-one target-entity="Application\Entity\Db\Domaine" field="domaine">
            <join-column name="domaine" referenced-column-name="id" />
        </many-to-one>
        <many-to-one target-entity="Application\Entity\Db\Fonction" field="fonction">
            <join-column name="fonction" referenced-column-name="id" />
        </many-to-one>

    </entity>
</doctrine-mapping>
Loading