Commit 8d728e2d authored by Laurent Lécluse's avatar Laurent Lécluse
Browse files

Refonte de la table intervenant et adaptation de l'entité

Rafactoring Intervenant
parent 9dba4974
......@@ -24,25 +24,5 @@ var_dump($r);
*/
$departements = [];
$r = fopen($oa->getOseDir() . 'data/departement.csv', 'r');
$i = 0;
while ($d = fgetcsv($r, 0, ',', '"')) {
$i++;
if ($i > 1) {
$code = (string)$d[0];
if (2 == strlen($code)) {
$code = '0' . $code;
}
$departements[] = [
'CODE' => $code,
'LIBELLE' => $d[6],
];
$c->println("update departement set libelle = '$d[6]' where code = '$code';");
}
}
fclose($r);
//var_dump($departements);
\ No newline at end of file
$dataGen = new DataGen($oa);
$dataGen->update('ADRESSE_NUMERO_COMPL');
\ No newline at end of file
......@@ -38,6 +38,11 @@ class DataGen
/* Nomenclatures fixes et jamais paramétrables */
[
'table' => 'ADRESSE_NUMERO_COMPL',
'context' => ['install', 'update'],
'key' => ['CODE'],
],
[
'table' => 'CIVILITE',
'context' => ['install', 'update'],
......
This diff is collapsed.
<?php
return [
'ADRESSE_NUMERO_COMPL' => [
[
'ID' => 2,
'CODE' => 'B',
'LIBELLE' => 'BIS',
],
[
'ID' => 3,
'CODE' => 'T',
'LIBELLE' => 'TER',
],
[
'ID' => 4,
'CODE' => 'Q',
'LIBELLE' => 'QUATER',
],
[
'ID' => 5,
'CODE' => 'C',
'LIBELLE' => 'QUINQUIES',
],
],
'AFFECTATION' => [
[
'UTILISATEUR_ID' => 'oseappli',
......
......@@ -72,7 +72,6 @@ return [
'Application\Entity\Db\Interfaces\NiveauFormationAwareInterface' => __DIR__ . '/src/Application/Entity/Db/Interfaces/NiveauFormationAwareInterface.php',
'Application\Entity\Db\Interfaces\CcActiviteAwareInterface' => __DIR__ . '/src/Application/Entity/Db/Interfaces/CcActiviteAwareInterface.php',
'Application\Entity\Db\Interfaces\VIndicAttenteValidationServiceAwareInterface' => __DIR__ . '/src/Application/Entity/Db/Interfaces/VIndicAttenteValidationServiceAwareInterface.php',
'Application\Entity\Db\Interfaces\IndicModifDossierAwareInterface' => __DIR__ . '/src/Application/Entity/Db/Interfaces/IndicModifDossierAwareInterface.php',
'Application\Entity\Db\Interfaces\MotifNonPaiementAwareInterface' => __DIR__ . '/src/Application/Entity/Db/Interfaces/MotifNonPaiementAwareInterface.php',
'Application\Entity\Db\Interfaces\PieceJointeAwareInterface' => __DIR__ . '/src/Application/Entity/Db/Interfaces/PieceJointeAwareInterface.php',
'Application\Entity\Db\Interfaces\DossierAwareInterface' => __DIR__ . '/src/Application/Entity/Db/Interfaces/DossierAwareInterface.php',
......@@ -162,7 +161,6 @@ return [
'Application\Entity\Db\Traits\EtatVolumeHoraireAwareTrait' => __DIR__ . '/src/Application/Entity/Db/Traits/EtatVolumeHoraireAwareTrait.php',
'Application\Entity\Db\Traits\VIndicAttenteValidRefAutreAwareTrait' => __DIR__ . '/src/Application/Entity/Db/Traits/VIndicAttenteValidRefAutreAwareTrait.php',
'Application\Entity\Db\Traits\EtablissementAwareTrait' => __DIR__ . '/src/Application/Entity/Db/Traits/EtablissementAwareTrait.php',
'Application\Entity\Db\Traits\IndicModifDossierAwareTrait' => __DIR__ . '/src/Application/Entity/Db/Traits/IndicModifDossierAwareTrait.php',
'Application\Entity\Db\Traits\StructureAwareTrait' => __DIR__ . '/src/Application/Entity/Db/Traits/StructureAwareTrait.php',
'Application\Entity\Db\Traits\TypeContratAwareTrait' => __DIR__ . '/src/Application/Entity/Db/Traits/TypeContratAwareTrait.php',
'Application\Entity\Db\Traits\TypePosteAwareTrait' => __DIR__ . '/src/Application/Entity/Db/Traits/TypePosteAwareTrait.php',
......@@ -510,7 +508,6 @@ return [
'Application\Hydrator\Service\RechercheHydrator' => __DIR__ . '/src/Application/Hydrator/Service/RechercheHydrator.php',
'Application\Hydrator\Service\Traits\RechercheHydratorAwareTrait' => __DIR__ . '/src/Application/Hydrator/Service/Traits/RechercheHydratorAwareTrait.php',
'Application\Filter\IntervenantEmailFormatter' => __DIR__ . '/src/Application/Filter/IntervenantEmailFormatter.php',
'Application\Filter\NomCompletFormatter' => __DIR__ . '/src/Application/Filter/NomCompletFormatter.php',
'Application\Filter\FloatFromString' => __DIR__ . '/src/Application/Filter/FloatFromString.php',
'Application\Filter\StringFromFloat' => __DIR__ . '/src/Application/Filter/StringFromFloat.php',
'Application\Acl\Role' => __DIR__ . '/src/Application/Acl/Role.php',
......
......@@ -56,11 +56,13 @@ class ServiceAssertion extends AbstractAssertion
&& $role
&& $role->getStructure()
&& (WfEtape::CODE_SERVICE_VALIDATION == $etape || WfEtape::CODE_SERVICE_VALIDATION_REALISE == $etape)
){ // dans ce cas ce n'est pas le WF qui agit mais on voit la validation dès qu'on a des services directement...
// car on peut très bien avoir à visualiser cette page sans pour autant avoir de services à soi à valider!!
return $this->assertHasServices( $intervenant, $role->getStructure() );
}else if (!$this->assertEtapeAtteignable($etape, $intervenant)) {
return false;
) { // dans ce cas ce n'est pas le WF qui agit mais on voit la validation dès qu'on a des services directement...
// car on peut très bien avoir à visualiser cette page sans pour autant avoir de services à soi à valider!!
return $this->assertHasServices($intervenant, $role->getStructure());
} else {
if (!$this->assertEtapeAtteignable($etape, $intervenant)) {
return false;
}
}
}
......@@ -289,18 +291,20 @@ class ServiceAssertion extends AbstractAssertion
protected function assertHasServices( Intervenant $intervenant, Structure $structure )
protected function assertHasServices(Intervenant $intervenant, Structure $structure)
{
$services = $intervenant->getService()->filter( function(Service $service) use ($structure){
$services = $intervenant->getService()->filter(function (Service $service) use ($structure) {
if (!$service->getElementPedagogique()) return false;
return $service->getElementPedagogique()->getStructure() == $structure;
});
return $services->count() > 0;
}
protected function assertCampagneSaisie( Role $role, TypeVolumeHoraire $typeVolumeHoraire )
protected function assertCampagneSaisie(Role $role, TypeVolumeHoraire $typeVolumeHoraire)
{
if ($typeVolumeHoraire && $role->getIntervenant()) {
$campagneSaisie = $this->getServiceCampagneSaisie()->getBy(
......@@ -309,6 +313,7 @@ class ServiceAssertion extends AbstractAssertion
);
if (!$campagneSaisie->estOuverte()) return false;
}
return true;
}
......@@ -323,12 +328,13 @@ class ServiceAssertion extends AbstractAssertion
if ($hardPassCloture) return true; // on n'a toujours le droit
if ($softPassCloture) { // si on peut éditer toujours alors pas la peine de tester...
return ! $intervenant->hasMiseEnPaiement(); // on n'a le droit s'il n'y a pas de MEP
return !$intervenant->hasMiseEnPaiement(); // on n'a le droit s'il n'y a pas de MEP
} else {
$cloture = $this->getServiceValidation()->getValidationClotureServices($intervenant);
if ($cloture && $cloture->getId()) return false; // pas de saisie si c'est clôturé
}
}
return true;
}
......@@ -380,7 +386,7 @@ class ServiceAssertion extends AbstractAssertion
protected function assertIntervenantServiceExterieur(Role $role, Intervenant $intervenant)
{
return $this->asserts([
$intervenant->estPermanent(),
$intervenant->getStatut()->estPermanent(),
$role->hasPrivilege(Privileges::ENSEIGNEMENT_EXTERIEUR),
]);
}
......
......@@ -88,7 +88,7 @@ class ServiceReferentielController extends AbstractController
$services = [];
}
$renderReferentiel = $intervenant && $intervenant->estPermanent();
$renderReferentiel = $intervenant && $intervenant->getStatut()->estPermanent();
$typeVolumeHoraire = $recherche->getTypeVolumeHoraire();
$params = $viewHelperParams;
......@@ -219,7 +219,6 @@ class ServiceReferentielController extends AbstractController
$this->getProcessusPlafond()->endTransaction($service->getIntervenant(), $typeVolumeHoraire);
}
}
}
return new MessengerViewModel;
......@@ -273,7 +272,7 @@ class ServiceReferentielController extends AbstractController
$intervenant = $this->getEvent()->getParam('intervenant');
/* @var $intervenant Intervenant */
if (!$intervenant){
if (!$intervenant) {
throw new \LogicException('Intervenant non précisé ou inexistant');
}
......@@ -342,7 +341,7 @@ class ServiceReferentielController extends AbstractController
if ($this->getRequest()->isPost()) {
try {
$this->getProcessusValidationReferentiel()->enregistrer($typeVolumeHoraire, $validation);
$this->updateTableauxBord($intervenant,true);
$this->updateTableauxBord($intervenant, true);
$this->flashMessenger()->addSuccessMessage(
"Validation effectuée avec succès."
);
......@@ -370,7 +369,7 @@ class ServiceReferentielController extends AbstractController
if ($this->getRequest()->isPost()) {
try {
$this->getProcessusValidationReferentiel()->supprimer($validation);
$this->updateTableauxBord($validation->getIntervenant(),true);
$this->updateTableauxBord($validation->getIntervenant(), true);
$this->flashMessenger()->addSuccessMessage(
"Dévalidation effectuée avec succès."
);
......@@ -387,11 +386,11 @@ class ServiceReferentielController extends AbstractController
private function updateTableauxBord(Intervenant $intervenant, $validation=false)
private function updateTableauxBord(Intervenant $intervenant, $validation = false)
{
$this->getServiceWorkflow()->calculerTableauxBord(['formule','validation_referentiel','service_referentiel'], $intervenant);
if (!$validation){
$this->getServiceWorkflow()->calculerTableauxBord(['service_saisie','piece_jointe_fournie'], $intervenant);
$this->getServiceWorkflow()->calculerTableauxBord(['formule', 'validation_referentiel', 'service_referentiel'], $intervenant);
if (!$validation) {
$this->getServiceWorkflow()->calculerTableauxBord(['service_saisie', 'piece_jointe_fournie'], $intervenant);
}
}
......
<?php
namespace Application\Entity\Db;
/**
* Voirie
*/
class AdresseNumeroCompl
{
/**
* @var int
*/
protected $id;
/**
* @var string
*/
protected $code;
/**
* @var string
*/
protected $libelle;
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @return string
*/
public function getCode(): string
{
return $this->code;
}
/**
* @return string
*/
public function getLibelle(): string
{
return $this->libelle;
}
/**
* Retourne la représentation littérale de cet objet.
*
* @return string
*/
public function __toString()
{
return $this->getLibelle();
}
}
......@@ -700,9 +700,9 @@ class Dossier implements HistoriqueAwareInterface
->setDepartementNaissance($intervenant->getDepNaissance())
->setVilleNaissance($intervenant->getVilleNaissanceLibelle())
->setNumeroInsee($intervenant->getNumeroInsee() . $intervenant->getNumeroInseeCle())
->setAdresse((string)$intervenant->getAdressePrincipale())
->setEmail($intervenant->getEmail())
->setTelephone($intervenant->getTelPro() ?: $intervenant->getTelMobile())
->setAdresse($intervenant->getAdresse(false))
->setEmail($intervenant->getEmailPerso())
->setTelephone($intervenant->getTelPro() ?: $intervenant->getTelPerso())
->setStatut($intervenant->getStatut())
->setRib(preg_replace('/\s+/', '', $intervenant->getBIC() . '-' . $intervenant->getIBAN()));
......
<?php
namespace Application\Entity\Db\Interfaces;
use Application\Entity\Db\IndicModifDossier;
/**
* Description of IndicModifDossierAwareInterface
*
* @author UnicaenCode
*/
interface IndicModifDossierAwareInterface
{
/**
* @param IndicModifDossier $indicModifDossier
* @return self
*/
public function setIndicModifDossier( IndicModifDossier $indicModifDossier = null );
/**
* @return IndicModifDossier
*/
public function getIndicModifDossier();
}
\ No newline at end of file
<?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\AdresseNumeroCompl" table="ADRESSE_NUMERO_COMPL">
<id name="id" type="integer" column="ID" />
<field name="code" type="string" column="CODE" length="5" nullable="false"/>
<field name="libelle" type="string" column="LIBELLE" length="60" nullable="false"/>
</entity>
</doctrine-mapping>
......@@ -3,133 +3,126 @@
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\Intervenant" table="INTERVENANT">
<indexes>
<index name="IDX_FED386B4C2443469" columns="TYPE_ID"/>
<index name="IDX_FED386B48C579EB7" columns="CIVILITE_ID"/>
<index name="IDX_FED386B4BB536304" columns="DISCIPLINE_ID"/>
<index name="IDX_FED386B459860CDC" columns="HISTO_CREATEUR_ID"/>
<index name="IDX_FED386B47E9E2204" columns="HISTO_DESTRUCTEUR_ID"/>
<index name="IDX_FED386B463F06898" columns="HISTO_MODIFICATEUR_ID"/>
<index name="IDX_FED386B4E9B3446E" columns="SOURCE_ID"/>
<index name="IDX_FED386B48AAF600B" columns="STATUT_ID"/>
<index name="IDX_FED386B4884B0F7B" columns="STRUCTURE_ID"/>
</indexes>
<unique-constraints>
<unique-constraint name="intervenant_source__un" columns="SOURCE_CODE"/>
</unique-constraints>
<id name="id" type="integer" column="ID">
<generator strategy="SEQUENCE"/>
</id>
<many-to-one field="annee" target-entity="Application\Entity\Db\Annee">
<join-column name="ANNEE_ID" referenced-column-name="ID"/>
</many-to-one>
<field name="code" type="string" column="CODE" length="60" nullable="false"/>
<field name="utilisateurCode" type="string" column="UTILISATEUR_CODE" length="60" nullable="false"/>
<field name="dateNaissance" type="datetime" column="DATE_NAISSANCE" nullable="false"/>
<field name="email" type="string" column="EMAIL" length="255" nullable="true"/>
<field name="histoCreation" type="datetime" column="HISTO_CREATION" nullable="false"/>
<field name="histoDestruction" type="datetime" column="HISTO_DESTRUCTION" nullable="true"/>
<field name="histoModification" type="datetime" column="HISTO_MODIFICATION" nullable="false"/>
<field name="nomPatronymique" type="string" column="NOM_PATRONYMIQUE" length="60" nullable="true"/>
<many-to-one field="structure" target-entity="Application\Entity\Db\Structure">
<join-column name="STRUCTURE_ID" referenced-column-name="ID"/>
</many-to-one>
<many-to-one field="statut" target-entity="Application\Entity\Db\StatutIntervenant">
<join-column name="STATUT_ID" referenced-column-name="ID"/>
</many-to-one>
<many-to-one field="grade" target-entity="Application\Entity\Db\Grade">
<join-column name="GRADE_ID" referenced-column-name="ID"/>
</many-to-one>
<many-to-one field="discipline" target-entity="Application\Entity\Db\Discipline">
<join-column name="DISCIPLINE_ID" referenced-column-name="ID"/>
</many-to-one>
<many-to-one field="civilite" target-entity="Application\Entity\Db\Civilite">
<join-column name="CIVILITE_ID" referenced-column-name="ID"/>
</many-to-one>
<field name="nomUsuel" type="string" column="NOM_USUEL" length="60" nullable="false"/>
<field name="numeroInsee" type="string" column="NUMERO_INSEE" length="13" nullable="true"/>
<field name="numeroInseeCle" type="string" column="NUMERO_INSEE_CLE" length="2" nullable="true"/>
<field name="numeroInseeProvisoire" type="boolean" column="NUMERO_INSEE_PROVISOIRE" nullable="true"/>
<field name="prenom" type="string" column="PRENOM" length="60" nullable="false"/>
<field name="sourceCode" type="string" column="SOURCE_CODE" length="100" nullable="true"/>
<field name="telMobile" type="string" column="TEL_MOBILE" length="20" nullable="true"/>
<field name="telPro" type="string" column="TEL_PRO" length="20" nullable="true"/>
<field name="dateNaissance" type="datetime" column="DATE_NAISSANCE" nullable="false"/>
<field name="nomPatronymique" type="string" column="NOM_PATRONYMIQUE" length="60" nullable="true"/>
<field name="villeNaissanceCodeInsee" type="string" column="VILLE_NAISSANCE_CODE_INSEE" length="5" nullable="true"/>
<field name="villeNaissanceLibelle" type="string" column="VILLE_NAISSANCE_LIBELLE" length="26" nullable="true"/>
<field name="BIC" type="string" column="BIC" length="255" nullable="true"/>
<field name="IBAN" type="string" column="IBAN" length="255" nullable="true"/>
<field name="ribHorsSepa" type="boolean" column="RIB_HORS_SEPA"/>
<field name="premierRecrutement" type="boolean" column="PREMIER_RECRUTEMENT" nullable="true"/>
<field name="montantIndemniteFc" type="float" column="MONTANT_INDEMNITE_FC" nullable="true" />
<many-to-one field="paysNaissance" target-entity="Application\Entity\Db\Pays">
<join-columns>
<join-column name="PAYS_NAISSANCE_ID" referenced-column-name="ID"/>
</join-columns>
</many-to-one>
<many-to-one field="paysNationalite" target-entity="Application\Entity\Db\Pays">
<join-columns>
<join-column name="PAYS_NATIONALITE_ID" referenced-column-name="ID"/>
</join-columns>
<join-column name="PAYS_NAISSANCE_ID" referenced-column-name="ID"/>
</many-to-one>
<many-to-one field="depNaissance" target-entity="Application\Entity\Db\Departement">
<join-columns>
<join-column name="DEP_NAISSANCE_ID" referenced-column-name="ID"/>
</join-columns>
<join-column name="DEP_NAISSANCE_ID" referenced-column-name="ID"/>
</many-to-one>
<many-to-one field="paysNationalite" target-entity="Application\Entity\Db\Pays">
<join-column name="PAYS_NATIONALITE_ID" referenced-column-name="ID"/>
</many-to-one>
<many-to-one field="grade" target-entity="Application\Entity\Db\Grade">
<join-columns>
<join-column name="GRADE_ID" referenced-column-name="ID"/>
</join-columns>
<field name="telPro" type="string" column="TEL_PRO" length="20" nullable="true"/>
<field name="telPerso" type="string" column="TEL_PERSO" length="20" nullable="true"/>
<field name="emailPro" type="string" column="EMAIL_PRO" length="255" nullable="true"/>
<field name="emailPerso" type="string" column="EMAIL_Perso" length="255" nullable="true"/>
<field name="addrPrecisions" type="string" column="ADDR_PRECISIONS" length="240" nullable="true"/>
<field name="addrNumero" type="string" column="ADDR_NUMERO" length="4" nullable="true"/>
<many-to-one field="addrNumeroCompl" target-entity="Application\Entity\Db\AdresseNumeroCompl">
<join-column name="ADDR_NUMERO_COMPL_ID" referenced-column-name="ID"/>
</many-to-one>
<many-to-one field="source" target-entity="UnicaenImport\Entity\Db\Source">
<join-columns>
<join-column name="SOURCE_ID" referenced-column-name="ID"/>
</join-columns>
<many-to-one field="addrVoirie" target-entity="Application\Entity\Db\Voirie">
<join-column name="ADDR_VOIRIE_ID" referenced-column-name="ID"/>
</many-to-one>
<many-to-one field="annee" target-entity="Application\Entity\Db\Annee">
<join-columns>
<join-column name="ANNEE_ID" referenced-column-name="ID"/>
</join-columns>
<field name="addrVoie" type="string" column="ADDR_VOIE" length="60" nullable="true"/>
<field name="addrLieuDit" type="string" column="ADDR_LIEU_DIT" length="60" nullable="true"/>
<field name="addrCodePostal" type="string" column="ADDR_CODE_POSTAL" length="15" nullable="true"/>
<field name="addrCommune" type="string" column="ADDR_COMMUNE" length="50" nullable="true"/>
<many-to-one field="addrPays" target-entity="Application\Entity\Db\Pays">
<join-column name="ADDR_PAYS_ID" referenced-column-name="ID"/>
</many-to-one>
<many-to-one field="statut" target-entity="Application\Entity\Db\StatutIntervenant">
<join-columns>
<join-column name="STATUT_ID" referenced-column-name="ID"/>
</join-columns>
<field name="numeroInsee" type="string" column="NUMERO_INSEE" length="13" nullable="true"/>
<field name="numeroInseeCle" type="string" column="NUMERO_INSEE_CLE" length="2" nullable="true"/>
<field name="numeroInseeProvisoire" type="boolean" column="NUMERO_INSEE_PROVISOIRE" nullable="true"/>
<field name="IBAN" type="string" column="IBAN" length="255" nullable="true"/>
<field name="BIC" type="string" column="BIC" length="255" nullable="true"/>
<field name="ribHorsSepa" type="boolean" column="RIB_HORS_SEPA"/>
<field name="autre1" type="string" column="AUTRE_1" length="1000" nullable="true"/>
<field name="autre2" type="string" column="AUTRE_2" length="1000" nullable="true"/>
<field name="autre3" type="string" column="AUTRE_3" length="1000" nullable="true"/>
<field name="autre4" type="string" column="AUTRE_4" length="1000" nullable="true"/>
<field name="autre5" type="string" column="AUTRE_5" length="1000" nullable="true"/>
<field name="montantIndemniteFc" type="float" column="MONTANT_INDEMNITE_FC" nullable="true" />
<field name="premierRecrutement" type="boolean" column="PREMIER_RECRUTEMENT" nullable="true"/>
<many-to-one field="source" target-entity="UnicaenImport\Entity\Db\Source">
<join-column name="SOURCE_ID" referenced-column-name="ID"/>
</many-to-one>
<many-to-one field="structure" target-entity="Application\Entity\Db\Structure">
<join-columns>
<join-column name="STRUCTURE_ID" referenced-column-name="ID"/>
</join-columns>
<field name="sourceCode" type="string" column="SOURCE_CODE" length="100" nullable="true"/>
<field name="syncStatut" type="boolean" column="SYNC_STATUT" nullable="false"/>
<field name="syncStructure" type="boolean" column="SYNC_STRUCTURE" nullable="false"/>
<field name="histoCreation" type="datetime" column="HISTO_CREATION" nullable="false"/>
<many-to-one field="histoCreateur" target-entity="Application\Entity\Db\Utilisateur">
<join-column name="HISTO_CREATEUR_ID" referenced-column-name="ID"/>
</many-to-one>
<field name="histoModification" type="datetime" column="HISTO_MODIFICATION" nullable="false"/>
<many-to-one field="histoModificateur" target-entity="Application\Entity\Db\Utilisateur">
<join-columns>
<join-column name="HISTO_MODIFICATEUR_ID" referenced-column-name="ID"/>
</join-columns>
<join-column name="HISTO_MODIFICATEUR_ID" referenced-column-name="ID"/>
</many-to-one>
<field name="histoDestruction" type="datetime" column="HISTO_DESTRUCTION" nullable="true"/>
<many-to-one field="histoDestructeur" target-entity="Application\Entity\Db\Utilisateur">
<join-columns>
<join-column name="HISTO_DESTRUCTEUR_ID" referenced-column-name="ID"/>
</join-columns>
</many-to-one>
<many-to-one field="civilite" target-entity="Application\Entity\Db\Civilite">
<join-columns>
<join-column name="CIVILITE_ID" referenced-column-name="ID"/>
</join-columns>
</many-to-one>
<many-to-one field="discipline" target-entity="Application\Entity\Db\Discipline">
<join-columns>
<join-column name="DISCIPLINE_ID" referenced-column-name="ID"/>
</join-columns>
</many-to-one>
<many-to-one field="histoCreateur" target-entity="Application\Entity\Db\Utilisateur">
<join-columns>
<join-column name="HISTO_CREATEUR_ID" referenced-column-name="ID"/>
</join-columns>
<join-column name="HISTO_DESTRUCTEUR_ID" referenced-column-name="ID"/>
</many-to-one>
<one-to-many field="affectation" target-entity="Application\Entity\Db\AffectationRecherche" mapped-by="intervenant"/>
<one-to-many field="adresse" target-entity="Application\Entity\Db\AdresseIntervenant" mapped-by="intervenant"/>
<one-to-many field="service" target-entity="Application\Entity\Db\Service" mapped-by="intervenant"/>
<one-to-many field="pieceJointe" target-entity="Application\Entity\Db\PieceJointe" mapped-by="intervenant" fetch="EXTRA_LAZY"/>
<one-to-many field="agrement" target-entity="Application\Entity\Db\Agrement" mapped-by="intervenant"/>
<one-to-many field="contrat" target-entity="Application\Entity\Db\Contrat" mapped-by="intervenant"/>
<one-to-many field="formuleResultat" target-entity="Application\Entity\Db\FormuleResultat" mapped-by="intervenant"/>
<one-to-many field="histoService" target-entity="Application\Entity\Db\HistoIntervenantService" mapped-by="intervenant"/>
<one-to-many field="serviceReferentiel" target-entity="Application\Entity\Db\ServiceReferentiel" mapped-by="intervenant">
<one-to-many field="miseEnPaiementIntervenantStructure" target-entity="Application\Entity\Db\MiseEnPaiementIntervenantStructure" mapped-by="intervenant"/>
<one-to-many field="modificationServiceDu" target-entity="Application\Entity\Db\ModificationServiceDu" mapped-by="intervenant">
<cascade>
<cascade-persist/>
</cascade>
</one-to-many>
<one-to-many field="validation" target-entity="Application\Entity\Db\Validation" mapped-by="intervenant"/>
<one-to-many field="agrement" target-entity="Application\Entity\Db\Agrement" mapped-by="intervenant"/>
<one-to-many field="formuleResultat" target-entity="Application\Entity\Db\FormuleResultat" mapped-by="intervenant"/>
<one-to-many field="indicModifDossier" target-entity="Application\Entity\Db\IndicModifDossier" mapped-by="intervenant"/>
<one-to-many field="miseEnPaiementIntervenantStructure" target-entity="Application\Entity\Db\MiseEnPaiementIntervenantStructure" mapped-by="intervenant"/>
<one-to-many field="modificationServiceDu" target-entity="Application\Entity\Db\ModificationServiceDu" mapped-by="intervenant">
<one-to-many field="pieceJointe" target-entity="Application\Entity\Db\PieceJointe" mapped-by="intervenant" fetch="EXTRA_LAZY"/>
<one-to-many field="service" target-entity="Application\Entity\Db\Service" mapped-by="intervenant"/>
<one-to-many field="serviceReferentiel" target-entity="Application\Entity\Db\ServiceReferentiel" mapped-by="intervenant">