Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

etablissement.numeroid suivant la codification ERP V2 #645

Open
SDIS91 opened this issue Jan 19, 2017 · 3 comments
Open

etablissement.numeroid suivant la codification ERP V2 #645

SDIS91 opened this issue Jan 19, 2017 · 3 comments

Comments

@SDIS91
Copy link

SDIS91 commented Jan 19, 2017

Bonjour,

Veuillez trouver ci-joint un trigger MYSQL (pour ne pas modifier le code de l'application) permettant d’assurer la création et la modification de la numérotation ERP telle qu’utilisée dans WINPREV ERP 2.0.
Le champ « Identifiant » de la fiche établissement reçoit le code genre (1), le numéro insee (3) et une itération dans la commune (5).

Il est à noter que :

  • La filiation « -000 » est abandonnée au regard du mode de gestion retenu dans PREVARISC,
  • L’itération dans la commune recherche tout d’abord un « trou » dans la séquence itérative pour attribution, avant d’attribuer, en dernier recours « maxiteration+1 »
  • La modification du genre modifie uniquement la valeur du code genre.
  • La modification de la commune relance l’ensemble de la procédure de numérotation
drop FUNCTION IF EXISTS `NUM_ERPV2`;

CREATE DEFINER = CURRENT_USER 
    FUNCTION `NUM_ERPV2`(`id_etb` BIGINT(20)) 
    RETURNS char(9) CHARSET utf8
    READS SQL DATA


/*
SDIS 91 - OR - 24/08/2016

Trigger permettant de formaliser etablissement.numeroid suivant la codification ERP V2
GIII00000
G : Genre de l établissement
III : Code insee de la commune
00000 : Compteur itératif par code insee

Paramétre entrant id_etb = clef d identification de l établissement id_etablissement
Paramétre sortant chaine formaté de 9 caractéres

nota : la codification inital ERP V2 contenait en fin lexpression -000 destinée à gérer 
la filiation des établissements entre eux. Cette codification est abandonné dans prevarisc du fait du mode de gestion prévu
*/
begin

DECLARE etb_genre char(1);
DECLARE etb_insee char(3);
DECLARE etb_iter char(5);

DECLARE numerp_conform tinyint(1);
DECLARE etb_old_genre char(1);
DECLARE etb_old_insee char(3);


SET etb_genre = (SELECT (mid(LIBELLE_GENRE,1,1)) FROM genre,etablissementinformations 
WHERE genre.ID_GENRE=etablissementinformations.ID_GENRE
AND 
             etablissementinformations.ID_ETABLISSEMENT=id_etb);
             
if etb_genre is null 
then return null;
end if;

 
SET etb_insee = (SELECT min(mid(NUMINSEE_COMMUNE,3,3)) FROM etablissementadresse,etablissement
            WHERE etablissement.ID_ETABLISSEMENT=id_etb
            AND etablissementadresse.ID_ETABLISSEMENT=id_etb);
            
if etb_insee is null 
then return null;
end if;
            
            
SET etb_iter = (select min(compteur) as valeur from (select insee,cast(mid(iteration,4,5) as int) as iter, @compteur :=@compteur+1 as compteur from 
            (SELECT mid(NUMEROID_ETABLISSEMENT,2,3) as insee,cast(mid(NUMEROID_ETABLISSEMENT,2,9) as int) as iteration FROM etablissement
           group by iteration ) as tempo,(SELECT @compteur:=0) AS t where insee=etb_insee ORDER BY ITERATION) as final where iter<>compteur);
 
 if etb_iter is null then

 set etb_iter=(select max(mid(NUMEROID_ETABLISSEMENT,5,5))+1 as iteration from etablissement where mid(NUMEROID_ETABLISSEMENT,2,3)=etb_insee
ORDER BY iteration);

end if;
 
 REMPL_0:WHILE length(etb_iter) < 5 DO
     SET etb_iter=concat('0',etb_iter);
   END WHILE REMPL_0 ;
if numerp_conform=1 and etb_genre=etb_old_genre and etb_insee=etb_old_insee 
then
    return numeroid_etablissement; 
elseif numerp_conform=1 and etb_genre<>etb_old_genre and etb_insee=etb_old_insee then
    return concat(etb_genre,mid(numeroid_etablissement,2));
else
    return concat(etb_genre,etb_insee,etb_iter);
end if;

end

Nous avons par contre identifié un souci concernant les ERP Multi-communes. L'ajout de plusieurs adresses avec communes différentes génère un numéro ERP lié à la première commune par ordre croissant INSEE, sans pouvoir définir la commune de référence ( Art L2215-1 §3 du CGCT).

Une des pistes est de rajouter dans le choix du type d'adresse une valeur de champ type "Adresse officielle ; Mais à ce jour, ce développement reste à faire. D’ailleurs, si quelqu’un peu nous indiquer où modifier la liste d’adresse ?

Cordialement

@CO16
Copy link

CO16 commented Feb 28, 2017

Bonjour,

Rester sur la numérotation ERPV2 génère plusieurs difficultés:

  • l'identifiant ERPV2 est composé du genre de l'établissement. Si au cours de la vie de l'établissement, le genre change (type J qui passe en foyer logement par exemple) cela change l'identifiant de cet établissement, ce n'est pas cohérent.
  • l'identifiant ERPv2 est composé du code commune. Cela pose des difficultés pour les établissements sur 2 communes ou les sites (groupe hospitalier) dont les bâtiments sont pour partie sur une 1ère commune, et pour partie sur une deuxième commune (voire sur un autre département!)
  • Les "enfants" (cellule pour un ERP ou ERP pour un site) ont un lien fort avec leur "père" au niveau de l'identifiant. Si une cellule d'un ERP s'isole réglementairement et devient ainsi un ERP à part entière, il n'est pas logique que ce "nouvel" ERP ait le même début d'identifiant que les cellules.

En revanche, passer à la numérotation Prevarisc change un peu les habitudes. Mais à l'usage ce n'est pas bloquant. Ca oblige à trouver quelques adaptations (mettre le nom de la commune sur le dossier d'archives papier en plus du numéro prevarisc) et l'identifiant ne donne plus d'informations sur les relations de communes ni de parenté, il faut ouvrir prevarisc pour avoir l'info.

Cdlt

@SDIS33
Copy link

SDIS33 commented Mar 1, 2017

Bonjour,

Nous nous sommes aussi penchés sur cette problématique en interne : le besoin étant de pouvoir extraire la liste des établissements liés (un établissement père et ses fils), nous avions envisagé de reprendre la numérotation ERP2, qui permettait d'isoler ces établissements dans l'écran de recherche des établissements, en saisissant le début d'identifiant de l'établissement père.
Devant les difiicultés listées par @CO16, nous avons abandonné cette solution au profit d'une évolution de l'application qui a consisté a ajouté un bouton d'export sur tous les établissements ayant des fils.

Au regard de ces difficultés, y-a-t'il un réel intérêt à rester sur la numérotation ERP2 ?

@regnaulto
Copy link

bonjour,

cette numérotation est pour ce qui nous concerne la pierre angulaire des référencements des ERP notamment pour les archives, les courrier à destination des requérants, les communes, etc, et ce depuis la mise en place d'ERP.
Donc, oui, pour ce qui nous concerne, c'est nécessaire.
Pour ce qui concerne la filiation, c'est un faux problème. Comme vous l'avez dit, Prevarisc le gére, pas besoin de réinventer ce qui fonctionne. Par contre, cette fonctionnalité permet de garantir la continuité de la logique de numérotation des ERP...c'est tout ce qui est demandé et çà fonctionne en ce sens.

Cordialement

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants