Gestion des avenants : Différence entre versions

De Wiki ODR
Aller à : navigation, rechercher
Ligne 1 : Ligne 1 :
 
  
 
Les données spécifiques aux dispositifs fournies par l'ASP concernent l'ensemble des dossiers engagés à une date donnée. La clefs des tables transmises est donc le numéro de dossier administratif. Celui-ci sert à l'appariement avec les données du tronc commun afin d'attribuer par ligne de dossier, le numéro identifiant du bénéficiaire, la commune du dossier, l'année d'engagement.
 
Les données spécifiques aux dispositifs fournies par l'ASP concernent l'ensemble des dossiers engagés à une date donnée. La clefs des tables transmises est donc le numéro de dossier administratif. Celui-ci sert à l'appariement avec les données du tronc commun afin d'attribuer par ligne de dossier, le numéro identifiant du bénéficiaire, la commune du dossier, l'année d'engagement.
Ligne 57 : Ligne 56 :
  
 
La requête SQL ci-dessous permet de générer la variable  "dossier_non_valide"  :
 
La requête SQL ci-dessous permet de générer la variable  "dossier_non_valide"  :
 +
 +
<pre>
 +
 +
/* création d'un table temporaire avec les numéros de dossiers sans avenant ainsi que le code du dernier avenant 01 ou 02 etc. */
 +
 +
create temporary table t1 (index(`numero de dossier sans avenant`)) select  max(replace(`numero de dossier`,left(`numero de dossier`,15),'')) as `dernier avenant`, left(`numero de dossier`,15) as `numero de dossier sans avenant`  from `nom de la table` where length(`numero de dossier`) > 15 group by `numero de dossier sans avenant` ;
 +
 +
/* création du champ dossier_non_valide dans la table */
 +
ALTER TABLE  `nom de la table` ADD  `dossier_non_valide` VARCHAR( 1 ) NOT NULL ;
 +
 +
/* insertion d'une valeur '1' pour les dossiers précédents le dernier avenant. Un dossier peut avoir plusieurs avenants */
 +
update `nom de la table` a left outer join t1 b on a.`numero de dossier sans avenant`= b.`numero de dossier sans avenant` set dossier_non_valide = '1' where a.`numero de dossier sans avenant` = b.`numero de dossier sans avenant` and (length(`numero de dossier`) = 15 or (length(`numero de dossier`) > 15 and replace(`numero de dossier`,left(`numero de dossier`,15),'') != `dernier avenant` )) ;
 +
</pre>

Version du 15 novembre 2010 à 17:04

Les données spécifiques aux dispositifs fournies par l'ASP concernent l'ensemble des dossiers engagés à une date donnée. La clefs des tables transmises est donc le numéro de dossier administratif. Celui-ci sert à l'appariement avec les données du tronc commun afin d'attribuer par ligne de dossier, le numéro identifiant du bénéficiaire, la commune du dossier, l'année d'engagement.


Cet article ne concerne pas les données surfaciques (MAE) ou la clef des tables reçues est le numéro d'individu.


codage des avenants

Certaines lignes de dossiers transmises sont liées à des avenants suite à une modification d'un premier dossier. Ces dossiers avec avenant sont repérables dans les données par la forme du code dossier administratif. Deux cas sont possibles :


Lors de la première année d'application du RDR2, suite à un problème technique dans Osiris, le numéro de dossier administratif est suivi du code 01 lors de la mise en place d'un avenant. Ce 01 est répété lors d'un second d'avenant, voir d'un troisième. Ainsi le code administratif étant un numéro à 15 digits par défaut peut prendre des tailles beaucoup plus importantes comme dans l'exemple ci-dessous :


numéro du dossier administratif : 11207D055002007
premier avenant : 11207D05500200701 (01 est ajouté)
deuxième avenant : 11207D0550020070101 (01 est ajouté à la suite du code premier avenant)
troisième avenant : 11207D055002007010101 (01 est ajouté à la suite des codes premier et second avenant etc.)


Pour les années suivantes d'application du RDR2, le codage des avenants dans les numéros de dossiers administratifs a été modifié en limitant la taille du code à 15 digits pour le dossier + 2 digits pour le code avenant. Ce dernier est modifié et incrémenté au fur et à mesure des avenants :


numéro du dossier administratif : 11208D055003007
premier avenant : 11208D05500300701 (01 est ajouté)
deuxième avenant : 11208D05500300702 (02 remplace 01)
troisième avenant : 11208D05500300703 (03 remplace 02 etc.)


Dans tous les cas, les 15 premiers digits donnent le numéro de dossier d'origine.


Répercussion dans les données spécifiques

Dans les données spécifiques, tous les dossiers sont présents, y compris les dossiers précédant un ou des avenants.


Selon les traitements opérés un même dossier peut donc être comptabilisé plusieurs fois et entraîner des doublons. Il faut donc tenir compte de l'existence des avenants et si nécessaire exclure tous les dossiers précédant un dernier avenant. La non prise en compte de ce problème peut amener à des montants inexacts (lors par exemple d'engagement ou paiement appareillés avec les données spécifiques).


travaux dans l'ODR

Afin de repérer et, si nécessaire, exclure les dossiers précédant des avenants dans les données spécifiques, une variable "dossier_non_valide" "flague" ces dossiers en leur attribuant le code "1". Il suffit alors dans une requête sql d'exclure tous les dossiers codés 1.

le numéro de dossier suivant 11208D030002004 sera codé "1" car il est suivi d'un avenant 11208D03000200401.

Cette même opération est valable pour les dossiers avec avenant précédant un dernier avenant.


La requête SQL ci-dessous permet de générer la variable "dossier_non_valide"  :


/* création d'un table temporaire avec les numéros de dossiers sans avenant ainsi que le code du dernier avenant 01 ou 02 etc. */

create temporary table t1 (index(`numero de dossier sans avenant`)) select  max(replace(`numero de dossier`,left(`numero de dossier`,15),'')) as `dernier avenant`, left(`numero de dossier`,15) as `numero de dossier sans avenant`  from `nom de la table` where length(`numero de dossier`) > 15 group by `numero de dossier sans avenant` ;

/* création du champ dossier_non_valide dans la table */
ALTER TABLE  `nom de la table` ADD  `dossier_non_valide` VARCHAR( 1 ) NOT NULL ;

/* insertion d'une valeur '1' pour les dossiers précédents le dernier avenant. Un dossier peut avoir plusieurs avenants */
update `nom de la table` a left outer join t1 b on a.`numero de dossier sans avenant`= b.`numero de dossier sans avenant` set dossier_non_valide = '1' where a.`numero de dossier sans avenant` = b.`numero de dossier sans avenant` and (length(`numero de dossier`) = 15 or (length(`numero de dossier`) > 15 and replace(`numero de dossier`,left(`numero de dossier`,15),'') != `dernier avenant` )) ;