Skip to content
Snippets Groups Projects
Commit 85c85ca7 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Merging pous vers 0.1.0

parents 55fc7954 1e886eb8
No related branches found
No related tags found
No related merge requests found
Showing
with 580 additions and 72 deletions
...@@ -14,8 +14,8 @@ return [ ...@@ -14,8 +14,8 @@ return [
'app_infos' => [ 'app_infos' => [
'nom' => "PrEECoG", 'nom' => "PrEECoG",
'desc' => "Gestion Prévisionnelle des effectifs, des emplois et des compétences", 'desc' => "Gestion Prévisionnelle des effectifs, des emplois et des compétences",
'version' => "0.0.3", 'version' => "0.1.0",
'date' => "18/12/2018", 'date' => "24/12/2018",
'contact' => ['mail' => "dsi.applications@unicaen.fr", /*'tel' => "01 02 03 04 05"*/], 'contact' => ['mail' => "dsi.applications@unicaen.fr", /*'tel' => "01 02 03 04 05"*/],
'mentionsLegales' => "http://www.unicaen.fr/acces-direct/mentions-legales/", 'mentionsLegales' => "http://www.unicaen.fr/acces-direct/mentions-legales/",
'informatiqueEtLibertes' => "http://www.unicaen.fr/acces-direct/informatique-et-libertes/", 'informatiqueEtLibertes' => "http://www.unicaen.fr/acces-direct/informatique-et-libertes/",
......
...@@ -8,6 +8,13 @@ use Application\Controller\RessourceRh\RessourceRhControllerFactory; ...@@ -8,6 +8,13 @@ use Application\Controller\RessourceRh\RessourceRhControllerFactory;
use Application\Form\RessourceRh\DomaineForm; use Application\Form\RessourceRh\DomaineForm;
use Application\Form\RessourceRh\DomaineFormFactory; use Application\Form\RessourceRh\DomaineFormFactory;
use Application\Form\RessourceRh\DomaineHydrator; use Application\Form\RessourceRh\DomaineHydrator;
use Application\Form\RessourceRh\FonctionForm;
use Application\Form\RessourceRh\FonctionFormFactory;
use Application\Form\RessourceRh\FonctionHydrator;
use Application\Form\RessourceRh\GradeForm;
use Application\Form\RessourceRh\GradeFormFactory;
use Application\Form\RessourceRh\GradeHydrator;
use Application\Form\RessourceRh\GradeHydratorFactory;
use Application\Form\RessourceRh\MetierFamilleForm; use Application\Form\RessourceRh\MetierFamilleForm;
use Application\Form\RessourceRh\MetierFamilleFormFactory; use Application\Form\RessourceRh\MetierFamilleFormFactory;
use Application\Form\RessourceRh\MetierFamilleHydrator; use Application\Form\RessourceRh\MetierFamilleHydrator;
...@@ -39,6 +46,7 @@ return [ ...@@ -39,6 +46,7 @@ return [
'controller' => RessourceRhController::class, 'controller' => RessourceRhController::class,
'action' => [ 'action' => [
'index', 'index',
'get-grades-json',
], ],
'privileges' => [ 'privileges' => [
RessourceRhPrivileges::AFFICHER, RessourceRhPrivileges::AFFICHER,
...@@ -53,6 +61,8 @@ return [ ...@@ -53,6 +61,8 @@ return [
'creer-metier', 'creer-metier',
'creer-famille', 'creer-famille',
'ajouter-domaine', 'ajouter-domaine',
'ajouter-fonction',
'ajouter-grade',
], ],
'privileges' => [ 'privileges' => [
RessourceRhPrivileges::AJOUTER, RessourceRhPrivileges::AJOUTER,
...@@ -67,6 +77,8 @@ return [ ...@@ -67,6 +77,8 @@ return [
'modifier-metier', 'modifier-metier',
'modifier-famille', 'modifier-famille',
'modifier-domaine', 'modifier-domaine',
'modifier-fonction',
'modifier-grade',
], ],
'privileges' => [ 'privileges' => [
RessourceRhPrivileges::MODIFIER, RessourceRhPrivileges::MODIFIER,
...@@ -81,6 +93,8 @@ return [ ...@@ -81,6 +93,8 @@ return [
'effacer-agent-status', 'effacer-agent-status',
'effacer-famille', 'effacer-famille',
'supprimer-domaine', 'supprimer-domaine',
'supprimer-fonction',
'supprimer-grade',
], ],
'privileges' => [ 'privileges' => [
RessourceRhPrivileges::EFFACER, RessourceRhPrivileges::EFFACER,
...@@ -341,6 +355,94 @@ return [ ...@@ -341,6 +355,94 @@ 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',
],
],
],
],
],
'grade' => [
'type' => Literal::class,
'options' => [
'route' => '/grade',
],
'may_terminate' => false,
'child_routes' => [
'get-grades' => [
'type' => Literal::class,
'options' => [
'route' => '/get-grades',
'defaults' => [
'controller' => RessourceRhController::class,
'action' => 'get-grades-json',
],
],
],
'ajouter' => [
'type' => Literal::class,
'options' => [
'route' => '/ajouter',
'defaults' => [
'controller' => RessourceRhController::class,
'action' => 'ajouter-grade',
],
],
],
'modifier' => [
'type' => Segment::class,
'options' => [
'route' => '/modifier/:grade',
'defaults' => [
'controller' => RessourceRhController::class,
'action' => 'modifier-grade',
],
],
],
'supprimer' => [
'type' => Segment::class,
'options' => [
'route' => '/supprimer/:grade',
'defaults' => [
'controller' => RessourceRhController::class,
'action' => 'supprimer-grade',
],
],
],
],
],
], ],
], ],
], ],
...@@ -366,6 +468,8 @@ return [ ...@@ -366,6 +468,8 @@ return [
MetierForm::class => MetierFormFactory::class, MetierForm::class => MetierFormFactory::class,
MetierFamilleForm::class => MetierFamilleFormFactory::class, MetierFamilleForm::class => MetierFamilleFormFactory::class,
DomaineForm::class => DomaineFormFactory::class, DomaineForm::class => DomaineFormFactory::class,
FonctionForm::class => FonctionFormFactory::class,
GradeForm::class => GradeFormFactory::class,
], ],
], ],
'hydrators' => [ 'hydrators' => [
...@@ -375,9 +479,11 @@ return [ ...@@ -375,9 +479,11 @@ return [
CorrespondanceHydrator::class => CorrespondanceHydrator::class, CorrespondanceHydrator::class => CorrespondanceHydrator::class,
MetierFamilleHydrator::class => MetierFamilleHydrator::class, MetierFamilleHydrator::class => MetierFamilleHydrator::class,
DomaineHydrator::class => DomaineHydrator::class, DomaineHydrator::class => DomaineHydrator::class,
FonctionHydrator::class => FonctionHydrator::class,
], ],
'factories' => [ 'factories' => [
MetierHydrator::class => MetierHydratorFactory::class, MetierHydrator::class => MetierHydratorFactory::class,
GradeHydrator::class => GradeHydratorFactory::class,
], ],
] ]
......
...@@ -53,7 +53,7 @@ class AgentController extends AbstractActionController ...@@ -53,7 +53,7 @@ class AgentController extends AbstractActionController
} }
$vm = new ViewModel(); $vm = new ViewModel();
$vm->setTemplate('application/default/default-form'); $vm->setTemplate('application/agent/modifier');
$vm->setVariables([ $vm->setVariables([
'title' => 'Ajouter un agent', 'title' => 'Ajouter un agent',
'form' => $form, 'form' => $form,
...@@ -83,7 +83,7 @@ class AgentController extends AbstractActionController ...@@ -83,7 +83,7 @@ class AgentController extends AbstractActionController
} }
$vm = new ViewModel(); $vm = new ViewModel();
$vm->setTemplate('application/default/default-form'); $vm->setTemplate('application/agent/modifier');
$vm->setVariables([ $vm->setVariables([
'title' => 'Modifier un agent', 'title' => 'Modifier un agent',
'form' => $form, 'form' => $form,
......
...@@ -6,9 +6,13 @@ use Application\Entity\Db\AgentStatus; ...@@ -6,9 +6,13 @@ use Application\Entity\Db\AgentStatus;
use Application\Entity\Db\Corps; use Application\Entity\Db\Corps;
use Application\Entity\Db\Correspondance; use Application\Entity\Db\Correspondance;
use Application\Entity\Db\Domaine; use Application\Entity\Db\Domaine;
use Application\Entity\Db\Fonction;
use Application\Entity\Db\Grade;
use Application\Entity\Db\Metier; use Application\Entity\Db\Metier;
use Application\Entity\Db\MetierFamille; use Application\Entity\Db\MetierFamille;
use Application\Form\RessourceRh\DomaineForm; use Application\Form\RessourceRh\DomaineForm;
use Application\Form\RessourceRh\FonctionForm;
use Application\Form\RessourceRh\GradeForm;
use Application\Form\RessourceRh\MetierFamilleForm; use Application\Form\RessourceRh\MetierFamilleForm;
use Application\Form\RessourceRh\MetierForm; use Application\Form\RessourceRh\MetierForm;
use Application\Form\RessourceRh\AgentStatusForm; use Application\Form\RessourceRh\AgentStatusForm;
...@@ -17,6 +21,7 @@ use Application\Form\RessourceRh\CorrespondanceForm; ...@@ -17,6 +21,7 @@ use Application\Form\RessourceRh\CorrespondanceForm;
use Application\Service\RessourceRh\RessourceRhServiceAwareTrait; use Application\Service\RessourceRh\RessourceRhServiceAwareTrait;
use Zend\Http\Request; use Zend\Http\Request;
use Zend\Mvc\Controller\AbstractActionController; use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\JsonModel;
use Zend\View\Model\ViewModel; use Zend\View\Model\ViewModel;
class RessourceRhController extends AbstractActionController { class RessourceRhController extends AbstractActionController {
...@@ -30,6 +35,8 @@ class RessourceRhController extends AbstractActionController { ...@@ -30,6 +35,8 @@ class RessourceRhController extends AbstractActionController {
$corps = $this->getRessourceRhService()->getCorpsListe('libelle'); $corps = $this->getRessourceRhService()->getCorpsListe('libelle');
$familles = $this->getRessourceRhService()->getMetiersFamilles('libelle'); $familles = $this->getRessourceRhService()->getMetiersFamilles('libelle');
$domaines = $this->getRessourceRhService()->getDomaines('libelle'); $domaines = $this->getRessourceRhService()->getDomaines('libelle');
$fonctions = $this->getRessourceRhService()->getFonctions('libelle');
$grades = $this->getRessourceRhService()->getGrades();
return new ViewModel([ return new ViewModel([
'status' => $status, 'status' => $status,
...@@ -38,6 +45,8 @@ class RessourceRhController extends AbstractActionController { ...@@ -38,6 +45,8 @@ class RessourceRhController extends AbstractActionController {
'familles' => $familles, 'familles' => $familles,
'corps' => $corps, 'corps' => $corps,
'domaines' => $domaines, 'domaines' => $domaines,
'fonctions' => $fonctions,
'grades' => $grades,
]); ]);
} }
...@@ -136,7 +145,7 @@ class RessourceRhController extends AbstractActionController { ...@@ -136,7 +145,7 @@ class RessourceRhController extends AbstractActionController {
$vm = new ViewModel(); $vm = new ViewModel();
$vm->setTemplate('application/default/default-form'); $vm->setTemplate('application/default/default-form');
$vm->setVariables([ $vm->setVariables([
'title' => 'Ajouter une nouvelle correspondance', 'title' => 'Ajouter une nouvelle catégorie',
'form' => $form, 'form' => $form,
]); ]);
return $vm; return $vm;
...@@ -165,7 +174,7 @@ class RessourceRhController extends AbstractActionController { ...@@ -165,7 +174,7 @@ class RessourceRhController extends AbstractActionController {
$vm = new ViewModel(); $vm = new ViewModel();
$vm->setTemplate('application/default/default-form'); $vm->setTemplate('application/default/default-form');
$vm->setVariables([ $vm->setVariables([
'title' => 'Éditer une correspondance', 'title' => 'Éditer une catégorie',
'form' => $form, 'form' => $form,
]); ]);
return $vm; return $vm;
...@@ -470,4 +479,171 @@ class RessourceRhController extends AbstractActionController { ...@@ -470,4 +479,171 @@ class RessourceRhController extends AbstractActionController {
$this->redirect()->toRoute('ressource-rh', [], [], true); $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 Fonction $fonction */
$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 Fonction $fonction */
$fonctionId = $this->params()->fromRoute('fonction');
$fonction = $this->getRessourceRhService()->getFonction($fonctionId);
if ($fonction !== null) {
$this->getRessourceRhService()->deleteFonction($fonction);
}
$this->redirect()->toRoute('ressource-rh', [], [], true);
}
/** Grade ******************************************************************************************************/
public function ajouterGradeAction()
{
/** @var Grade $grade */
$grade = new Grade();
/** @var GradeForm $form */
$form = $this->getServiceLocator()->get('FormElementManager')->get(GradeForm::class);
$form->setAttribute('action', $this->url()->fromRoute('ressource-rh/grade/ajouter', [], [], true));
$form->bind($grade);
/** @var Request $request */
$request = $this->getRequest();
if ($request->isPost()) {
$data = $request->getPost();
$form->setData($data);
if ($form->isValid()) {
$this->getRessourceRhService()->createGrade($grade);
}
}
$vm = new ViewModel();
$vm->setTemplate('application/default/default-form');
$vm->setVariables([
'title' => 'Ajouter un grade',
'form' => $form,
]);
return $vm;
}
public function modifierGradeAction()
{
/** @var Grade $grade */
$gradeId = $this->params()->fromRoute('grade');
$grade = $this->getRessourceRhService()->getGrade($gradeId);
/** @var GradeForm $form */
$form = $this->getServiceLocator()->get('FormElementManager')->get(GradeForm::class);
$form->setAttribute('action', $this->url()->fromRoute('ressource-rh/grade/modifier', ['grade' => $grade->getId()], [], true));
$form->bind($grade);
/** @var Request $request */
$request = $this->getRequest();
if ($request->isPost()) {
$data = $request->getPost();
$form->setData($data);
if ($form->isValid()) {
$this->getRessourceRhService()->updateGrade($grade);
}
}
$vm = new ViewModel();
$vm->setTemplate('application/default/default-form');
$vm->setVariables([
'title' => 'Modifier un grade',
'form' => $form,
]);
return $vm;
}
public function supprimerGradeAction()
{
/** @var Grade $grade */
$gradeId = $this->params()->fromRoute('grade');
$grade = $this->getRessourceRhService()->getGrade($gradeId);
if ($grade !== null) {
$this->getRessourceRhService()->deleteGrade($grade);
}
$this->redirect()->toRoute('ressource-rh', [], [], true);
}
public function getGradesJsonAction()
{
$grades = $this->getRessourceRhService()->getGrades();
$result = [];
foreach ($grades as $grade) {
$result[$grade->getId()] = [
'id' => $grade->getId(),
'corps' => $grade->getCorps()->getId(),
'libelle' => $grade->getLibelle(),
];
}
$jm = new JsonModel(
$result
);
return $jm;
}
} }
\ No newline at end of file
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
namespace Application\Entity\Db; namespace Application\Entity\Db;
use DateTime; use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
class Agent { class Agent {
...@@ -30,16 +29,13 @@ class Agent { ...@@ -30,16 +29,13 @@ class Agent {
private $correspondance; private $correspondance;
/** @var Corps */ /** @var Corps */
private $corps; private $corps;
/** @var Grade */
private $grade;
/** @var string */ /** @var string */
private $missionsComplementaires; private $missionsComplementaires;
public function __construct()
{
$this->missionsComplementaires = new ArrayCollection();
}
/** /**
* @return int * @return int
*/ */
...@@ -233,6 +229,25 @@ class Agent { ...@@ -233,6 +229,25 @@ class Agent {
return $this; return $this;
} }
/**
* @return Grade
*/
public function getGrade()
{
return $this->grade;
}
/**
* @param Grade $grade
* @return Agent
*/
public function setGrade($grade)
{
$this->grade = $grade;
return $this;
}
} }
\ No newline at end of file
...@@ -12,8 +12,6 @@ class FicheMetier ...@@ -12,8 +12,6 @@ class FicheMetier
private $id; private $id;
/** @var string */ /** @var string */
private $libelle; private $libelle;
/** @var Affectation */
private $affectation;
/** @var Agent */ /** @var Agent */
private $agent; private $agent;
...@@ -47,24 +45,6 @@ class FicheMetier ...@@ -47,24 +45,6 @@ class FicheMetier
return $this; return $this;
} }
/**
* @return Affectation
*/
public function getAffectation()
{
return $this->affectation;
}
/**
* @param Affectation $affectation
* @return FicheMetier
*/
public function setAffectation($affectation)
{
$this->affectation = $affectation;
return $this;
}
/** /**
* @return Agent * @return Agent
*/ */
......
<?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
<?php
namespace Application\Entity\Db;
class Grade {
/** @var integer */
private $id;
/** @var Corps */
private $corps;
/** @var string */
private $libelle;
/** @var integer */
private $rang;
/**
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* @return Corps
*/
public function getCorps()
{
return $this->corps;
}
/**
* @param Corps $corps
* @return Grade
*/
public function setCorps($corps)
{
$this->corps = $corps;
return $this;
}
/**
* @return string
*/
public function getLibelle()
{
return $this->libelle;
}
/**
* @param string $libelle
* @return Grade
*/
public function setLibelle($libelle)
{
$this->libelle = $libelle;
return $this;
}
public function __toString()
{
$texte = $this->getCorps()->getLibelle() . " ". $this->getLibelle();
return $texte;
}
/**
* @return int
*/
public function getRang()
{
return $this->rang;
}
/**
* @param int $rang
* @return Grade
*/
public function setRang($rang)
{
$this->rang = $rang;
return $this;
}
}
\ No newline at end of file
...@@ -23,6 +23,9 @@ ...@@ -23,6 +23,9 @@
<many-to-one target-entity="Application\Entity\Db\Corps" field="corps"> <many-to-one target-entity="Application\Entity\Db\Corps" field="corps">
<join-column name="corps" referenced-column-name="id" /> <join-column name="corps" referenced-column-name="id" />
</many-to-one> </many-to-one>
<many-to-one target-entity="Application\Entity\Db\Grade" field="grade">
<join-column name="grade" referenced-column-name="id" />
</many-to-one>
</entity> </entity>
</doctrine-mapping> </doctrine-mapping>
...@@ -7,11 +7,6 @@ ...@@ -7,11 +7,6 @@
</id> </id>
<field name="libelle" type="string" length="256" column="libelle" nullable="false"/> <field name="libelle" type="string" length="256" column="libelle" nullable="false"/>
<many-to-one target-entity="Application\Entity\Db\Affectation" field="affectation">
<join-column name="affectation" referenced-column-name="id"/>
</many-to-one>
<field name="histoCreation" type="datetime" column="histo_creation" nullable="false"/> <field name="histoCreation" type="datetime" column="histo_creation" nullable="false"/>
<field name="histoModification" type="datetime" column="histo_modification" nullable="false"/> <field name="histoModification" type="datetime" column="histo_modification" nullable="false"/>
<field name="histoDestruction" type="datetime" column="histo_destruction" nullable="true"/> <field name="histoDestruction" type="datetime" column="histo_destruction" nullable="true"/>
......
<?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>
<?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\Grade" table="grade">
<id name="id" type="integer" column="id">
<generator strategy="IDENTITY"/>
</id>
<field name="libelle" type="string" length="256" column="libelle" nullable="false" />
<field name="rang" type="integer" column="rang" nullable="true" />
<many-to-one target-entity="Application\Entity\Db\Corps" field="corps">
<join-column name="corps" referenced-column-name="id" />
</many-to-one>
</entity>
</doctrine-mapping>
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
<field name="numeroPoste" type="string" length="128" column="numero_poste" nullable="true"/> <field name="numeroPoste" type="string" length="128" column="numero_poste" nullable="true"/>
<field name="localisation" type="string" length="128" column="localisation" nullable="true"/> <field name="localisation" type="string" length="128" column="localisation" nullable="true"/>
<field name="lien" type="string" length="256" column="lien" nullable="true"/>
<many-to-one target-entity="Application\Entity\Db\Agent" field="rattachementHierarchique"> <many-to-one target-entity="Application\Entity\Db\Agent" field="rattachementHierarchique">
<join-column name="rattachement_hierarchique" referenced-column-name="id" /> <join-column name="rattachement_hierarchique" referenced-column-name="id" />
...@@ -21,6 +22,9 @@ ...@@ -21,6 +22,9 @@
<many-to-one target-entity="Application\Entity\Db\Domaine" field="domaine"> <many-to-one target-entity="Application\Entity\Db\Domaine" field="domaine">
<join-column name="domaine" referenced-column-name="id" /> <join-column name="domaine" referenced-column-name="id" />
</many-to-one> </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> </entity>
</doctrine-mapping> </doctrine-mapping>
...@@ -18,6 +18,10 @@ class Poste { ...@@ -18,6 +18,10 @@ class Poste {
private $rattachementHierarchique; private $rattachementHierarchique;
/** @var Domaine */ /** @var Domaine */
private $domaine; private $domaine;
/** @var string */
private $lien;
/** @var Fonction */
private $fonction;
/** /**
* @return int * @return int
...@@ -135,5 +139,39 @@ class Poste { ...@@ -135,5 +139,39 @@ class Poste {
return $this; return $this;
} }
/**
* @return string
*/
public function getLien()
{
return $this->lien;
}
/**
* @param string $lien
* @return Poste
*/
public function setLien($lien)
{
$this->lien = $lien;
return $this;
}
/**
* @return Fonction
*/
public function getFonction()
{
return $this->fonction;
}
/**
* @param Fonction $fonction
* @return Poste
*/
public function setFonction($fonction)
{
$this->fonction = $fonction;
return $this;
}
} }
\ No newline at end of file
...@@ -5,6 +5,7 @@ namespace Application\Form\Agent; ...@@ -5,6 +5,7 @@ namespace Application\Form\Agent;
use Application\Entity\Db\AgentStatus; use Application\Entity\Db\AgentStatus;
use Application\Entity\Db\Corps; use Application\Entity\Db\Corps;
use Application\Entity\Db\Correspondance; use Application\Entity\Db\Correspondance;
use Application\Entity\Db\Grade;
use DoctrineModule\Form\Element\ObjectSelect; use DoctrineModule\Form\Element\ObjectSelect;
use UnicaenApp\Form\Element\Date; use UnicaenApp\Form\Element\Date;
use UnicaenApp\Service\EntityManagerAwareTrait; use UnicaenApp\Service\EntityManagerAwareTrait;
...@@ -98,9 +99,6 @@ class AgentForm extends Form { ...@@ -98,9 +99,6 @@ class AgentForm extends Form {
'70' => ' 70 % ', '70' => ' 70 % ',
'60' => ' 60 % ', '60' => ' 60 % ',
'50' => ' 50 % ', '50' => ' 50 % ',
'40' => ' 40 % ',
'30' => ' 30 % ',
'20' => ' 20 % ',
], ],
], ],
'attributes' => [ 'attributes' => [
...@@ -153,7 +151,7 @@ class AgentForm extends Form { ...@@ -153,7 +151,7 @@ class AgentForm extends Form {
'id' => 'correspondance', 'id' => 'correspondance',
], ],
]); ]);
// Status // Corps
$this->add([ $this->add([
'type' => ObjectSelect::class, 'type' => ObjectSelect::class,
'name' => 'corps', 'name' => 'corps',
...@@ -176,6 +174,29 @@ class AgentForm extends Form { ...@@ -176,6 +174,29 @@ class AgentForm extends Form {
'id' => 'corps', 'id' => 'corps',
], ],
]); ]);
// Grade
$this->add([
'type' => ObjectSelect::class,
'name' => 'grade',
'options' => [
'label' => "Grade* :",
'empty_option' => "Sélectionner un grade ...",
'object_manager' => $this->getEntityManager(),
'target_class' => Grade::class,
'property' => 'libelle',
'find_method' => [
'name' => 'findBy',
'params' => [
'criteria' => [],
'orderBy' => ['libelle' => 'ASC'],
],
],
'disable_inarray_validator' => true,
],
'attributes' => [
'id' => 'grade',
],
]);
// description // description
$this->add([ $this->add([
...@@ -235,6 +256,9 @@ class AgentForm extends Form { ...@@ -235,6 +256,9 @@ class AgentForm extends Form {
'corps' => [ 'corps' => [
'required' => true, 'required' => true,
], ],
'grade' => [
'required' => true,
],
'missions' => [ 'missions' => [
'required' => false, 'required' => false,
], ],
......
...@@ -26,6 +26,7 @@ class AgentHydrator implements HydratorInterface { ...@@ -26,6 +26,7 @@ class AgentHydrator implements HydratorInterface {
'status' => $object->getStatus(), 'status' => $object->getStatus(),
'correspondance' => $object->getCorrespondance(), 'correspondance' => $object->getCorrespondance(),
'corps' => $object->getCorps(), 'corps' => $object->getCorps(),
'grade' => $object->getGrade(),
'description' => $object->getMissionsComplementaires(), 'description' => $object->getMissionsComplementaires(),
]; ];
...@@ -42,6 +43,7 @@ class AgentHydrator implements HydratorInterface { ...@@ -42,6 +43,7 @@ class AgentHydrator implements HydratorInterface {
$status = $this->getRessourceRhService()->getAgentStatus($data['status']); $status = $this->getRessourceRhService()->getAgentStatus($data['status']);
$correspondance = $this->getRessourceRhService()->getCorrespondance($data['correspondance']); $correspondance = $this->getRessourceRhService()->getCorrespondance($data['correspondance']);
$corps = $this->getRessourceRhService()->getCorps($data['corps']); $corps = $this->getRessourceRhService()->getCorps($data['corps']);
$grade = $this->getRessourceRhService()->getGrade($data['grade']);
$object->setPrenom($data['prenom']); $object->setPrenom($data['prenom']);
$object->setNom($data['nom']); $object->setNom($data['nom']);
...@@ -58,6 +60,7 @@ class AgentHydrator implements HydratorInterface { ...@@ -58,6 +60,7 @@ class AgentHydrator implements HydratorInterface {
$object->setStatus($status); $object->setStatus($status);
$object->setCorrespondance($correspondance); $object->setCorrespondance($correspondance);
$object->setCorps($corps); $object->setCorps($corps);
$object->setGrade($grade);
$object->setMissionsComplementaires($data['description']); $object->setMissionsComplementaires($data['description']);
return $object; return $object;
......
...@@ -2,15 +2,11 @@ ...@@ -2,15 +2,11 @@
namespace Application\Form\FicheMetier; namespace Application\Form\FicheMetier;
use Application\Entity\Db\Affectation;
use DoctrineModule\Form\Element\ObjectSelect;
use UnicaenApp\Service\EntityManagerAwareTrait;
use Zend\Form\Element\Button; use Zend\Form\Element\Button;
use Zend\Form\Element\Text; use Zend\Form\Element\Text;
use Zend\Form\Form; use Zend\Form\Form;
class FicheMetierCreationForm extends Form { class FicheMetierCreationForm extends Form {
use EntityManagerAwareTrait;
public function init() public function init()
{ {
...@@ -25,29 +21,6 @@ class FicheMetierCreationForm extends Form { ...@@ -25,29 +21,6 @@ class FicheMetierCreationForm extends Form {
'id' => 'libelle', 'id' => 'libelle',
], ],
]); ]);
//Selection obligatoire AFFECTATION
$this->add([
'type' => ObjectSelect::class,
'name' => 'affectation',
'options' => [
'label' => "Service/composante/direction d'affectation :",
'empty_option' => "Sélectionner une affectation",
'object_manager' => $this->getEntityManager(),
'target_class' => Affectation::class,
'property' => 'libelle',
'find_method' => [
'name' => 'findBy',
'params' => [
'criteria' => [],
'orderBy' => ['libelle' => 'ASC'],
],
],
'disable_inarray_validator' => true,
],
'attributes' => [
'id' => 'affectation',
],
]);
// submit // submit
$this->add([ $this->add([
......
...@@ -17,7 +17,6 @@ class FicheMetierCreationHydrator implements HydratorInterface { ...@@ -17,7 +17,6 @@ class FicheMetierCreationHydrator implements HydratorInterface {
{ {
$data = [ $data = [
'libelle' => $object->getLibelle(), 'libelle' => $object->getLibelle(),
'affectation' => ($object->getAffectation())?$object->getAffectation()->getId():null,
]; ];
return $data; return $data;
...@@ -33,7 +32,6 @@ class FicheMetierCreationHydrator implements HydratorInterface { ...@@ -33,7 +32,6 @@ class FicheMetierCreationHydrator implements HydratorInterface {
$affectation = $this->getAffectationService()->getAffectation($data['affectation']); $affectation = $this->getAffectationService()->getAffectation($data['affectation']);
$object->setLibelle($data['libelle']); $object->setLibelle($data['libelle']);
$object->setAffectation($affectation);
return $object; return $object;
} }
......
...@@ -4,6 +4,7 @@ namespace Application\Form\Poste; ...@@ -4,6 +4,7 @@ namespace Application\Form\Poste;
use Application\Entity\Db\Affectation; use Application\Entity\Db\Affectation;
use Application\Entity\Db\Domaine; use Application\Entity\Db\Domaine;
use Application\Entity\Db\Fonction;
use Application\Service\Agent\AgentServiceAwareTrait; use Application\Service\Agent\AgentServiceAwareTrait;
use Application\Service\RessourceRh\RessourceRhServiceAwareTrait; use Application\Service\RessourceRh\RessourceRhServiceAwareTrait;
use DoctrineModule\Form\Element\ObjectSelect; use DoctrineModule\Form\Element\ObjectSelect;
...@@ -71,7 +72,7 @@ class PosteForm extends Form { ...@@ -71,7 +72,7 @@ class PosteForm extends Form {
'type' => Select::class, 'type' => Select::class,
'name' => 'correspondance', 'name' => 'correspondance',
'options' => [ 'options' => [
'label' => "Correspondance :", 'label' => "Catégorie :",
'value_options' => $this->generateCorrespondanceSelectOptions(), 'value_options' => $this->generateCorrespondanceSelectOptions(),
], ],
'attributes' => [ 'attributes' => [
...@@ -116,6 +117,42 @@ class PosteForm extends Form { ...@@ -116,6 +117,42 @@ class PosteForm extends Form {
], ],
]); ]);
// domaine
$this->add([
'type' => ObjectSelect::class,
'name' => 'fonction',
'options' => [
'label' => "Fonction :",
'empty_option' => "Sélectionner une fonction",
'object_manager' => $this->getEntityManager(),
'target_class' => Fonction::class,
'property' => 'libelle',
'find_method' => [
'name' => 'findBy',
'params' => [
'criteria' => [],
'orderBy' => ['libelle' => 'ASC'],
],
],
'disable_inarray_validator' => true,
],
'attributes' => [
'id' => 'fonction',
],
]);
// liens exterieur vers fiche de poste
$this->add([
'type' => Text::class,
'name' => 'lien',
'options' => [
'label' => "Lien externe ver la fiche de poste :",
],
'attributes' => [
'id' => 'lien',
],
]);
// button // button
$this->add([ $this->add([
'type' => Button::class, 'type' => Button::class,
......
...@@ -26,6 +26,8 @@ class PosteHydrator implements HydratorInterface { ...@@ -26,6 +26,8 @@ class PosteHydrator implements HydratorInterface {
'correspondance' => ($object->getCorrespondance())?$object->getCorrespondance()->getId():null, 'correspondance' => ($object->getCorrespondance())?$object->getCorrespondance()->getId():null,
'rattachement' => ($object->getRattachementHierarchique())?$object->getRattachementHierarchique()->getId():null, 'rattachement' => ($object->getRattachementHierarchique())?$object->getRattachementHierarchique()->getId():null,
'domaine' => ($object->getDomaine())?$object->getDomaine()->getId():null, 'domaine' => ($object->getDomaine())?$object->getDomaine()->getId():null,
'fonction' => ($object->getFonction())?$object->getFonction()->getId():null,
'lien' => $object->getLien(),
]; ];
return $data; return $data;
} }
...@@ -41,6 +43,7 @@ class PosteHydrator implements HydratorInterface { ...@@ -41,6 +43,7 @@ class PosteHydrator implements HydratorInterface {
$correspondance = $this->getRessourceRhService()->getCorrespondance($data['correspondance']); $correspondance = $this->getRessourceRhService()->getCorrespondance($data['correspondance']);
$rattachement = $this->getAgentService()->getAgent($data['rattachement']); $rattachement = $this->getAgentService()->getAgent($data['rattachement']);
$domaine = $this->getRessourceRhService()->getDomaine($data['domaine']); $domaine = $this->getRessourceRhService()->getDomaine($data['domaine']);
$fonction = $this->getRessourceRhService()->getFonction($data['fonction']);
$object->setNumeroPoste($data['numero_poste']); $object->setNumeroPoste($data['numero_poste']);
$object->setLocalisation($data['localisation']); $object->setLocalisation($data['localisation']);
...@@ -48,6 +51,8 @@ class PosteHydrator implements HydratorInterface { ...@@ -48,6 +51,8 @@ class PosteHydrator implements HydratorInterface {
$object->setCorrespondance($correspondance); $object->setCorrespondance($correspondance);
$object->setRattachementHierarchique($rattachement); $object->setRattachementHierarchique($rattachement);
$object->setDomaine($domaine); $object->setDomaine($domaine);
$object->setFonction($fonction);
$object->setLien($data['lien']);
return $object; return $object;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment