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

Début d'ajout des Ressources RH

parent 0bb86ddb
Loading
Loading
Loading
Loading
+105 −0
Changes for module/Application/config/merged/ressource-rh.config.php: 105 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace Application;

use Application\Controller\RessourceRh\RessourceRhController;
use Application\Controller\RessourceRh\RessourceRhControllerFactory;
use Application\Form\RessourceRh\AgentStatusForm;
use Application\Form\RessourceRh\AgentStatusFormFactory;
use Application\Form\RessourceRh\AgentStatusHydrator;
use Application\Service\RessourceRh\RessourceRhService;
use Application\Service\RessourceRh\RessourceRhServiceFactory;
use UnicaenAuth\Guard\PrivilegeController;
use Zend\Mvc\Router\Http\Literal;
use Zend\Mvc\Router\Http\Segment;

return [
    'bjyauthorize' => [
        'guards' => [
            PrivilegeController::class => [
                [
                    'controller' => RessourceRhController::class,
                    'action' => [
                        'index',
                        'creer-agent-status',
                        'modifier-agent-status',
                        'effacer-agent-status',
                    ],
                    'roles' => [],
                ],
            ],
        ],
    ],

    'router'          => [
        'routes' => [
            'ressource-rh' => [
                'type'  => Literal::class,
                'options' => [
                    'route'    => '/ressource-rh',
                    'defaults' => [
                        'controller' => RessourceRhController::class,
                        'action'     => 'index',
                    ],
                ],
                'may_terminate' => true,
                'child_routes' => [
                    'creer-agent-status' => [
                        'type'  => Literal::class,
                        'options' => [
                            'route'    => '/creer-agent-status',
                            'defaults' => [
                                'controller' => RessourceRhController::class,
                                'action'     => 'creer-agent-status',
                            ],
                        ],
                    ],
                    'modifier-agent-status' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/modifier-agent-status/:id',
                            'defaults' => [
                                'controller' => RessourceRhController::class,
                                'action'     => 'modifier-agent-status',
                            ],
                        ],
                    ],
                    'effacer-agent-status' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/effacer-agent-status/:id',
                            'defaults' => [
                                'controller' => RessourceRhController::class,
                                'action'     => 'effacer-agent-status',
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ],

    'service_manager' => [
        'invokables' => [
        ],
        'factories' => [
            RessourceRhService::class => RessourceRhServiceFactory::class,
        ],
    ],
    'controllers'     => [
        'factories' => [
            RessourceRhController::class => RessourceRhControllerFactory::class,
        ],
    ],
    'form_elements' => [
        'factories' => [
            AgentStatusForm::class => AgentStatusFormFactory::class,
        ],
    ],
    'hydrators' => [
        'invokable' => [
            AgentStatusHydrator::class => AgentStatusHydrator::class,
        ]
    ]

];
 No newline at end of file
+94 −0
Changes for module/Application/src/Application/Controller/RessourceRh/RessourceRhController.php: 94 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace Application\Controller\RessourceRh;

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

class RessourceRhController extends AbstractActionController {
    use RessourceRhServiceAwareTrait;

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

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

    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->bind($status);

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

        return new ViewModel([
            'title' => 'Ajouter un nouveau status',
            'form' => $form,
        ]);
    }

    public function modifierAgentStatusAction()
    {
        $statusId = $this->params()->fromRoute('id');
        $status = $this->getRessourceRhService()->getAgentStatus($statusId);

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

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

        return new ViewModel([
            'title' => 'Modifier un nouveau status',
            'form' => $form,
        ]);
    }

    public function effacerAgentStatusAction()
    {
        $statusId = $this->params()->fromRoute('id');
        $status = $this->getRessourceRhService()->getAgentStatus($statusId);

        if ($status !== null) {
            $this->getRessourceRhService()->deleteAgentStatus($status);
        }

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

namespace Application\Controller\RessourceRh;

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

class RessourceRhControllerFactory {

    public function __invoke(ControllerManager $controllerManager)
    {
        /**
         * @var RessourceRhService $ressourceService
         */
        $ressourceService = $controllerManager->getServiceLocator()->get(RessourceRhService::class);

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

}
 No newline at end of file
+37 −0
Changes for module/Application/src/Application/Entity/Db/AgentStatus.php: 37 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace Application\Entity\Db;

class AgentStatus {

    /** @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 AgentStatus
     */
    public function setLibelle($libelle)
    {
        $this->libelle = $libelle;
        return $this;
    }
}
 No newline at end of file
+12 −0
Changes for module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.AgentStatus.dcm.xml: 12 added lines, 0 removed lines.
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\AgentStatus" table="agent_status">

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

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

    </entity>
</doctrine-mapping>
Loading