Gestion des avenants : Différence entre versions
(13 révisions intermédiaires par un autre utilisateur non affichées) | |||
Ligne 12 : | Ligne 12 : | ||
− | Lors de la première année d'application du RDR2 le numéro de dossier administratif est suivi du code 01 lors de la mise en place d'un premier avenant. Mais, suite à un problème technique dans Osiris, le code 01 est répété lors d'un second d'avenant, voir d'un troisième. Ainsi le code administratif étant un numéro par défaut à 15 digits peut prendre des tailles beaucoup plus importantes comme dans l'exemple ci-dessous : | + | Lors de la première année d'application du RDR2 (2007) le numéro de dossier administratif est suivi du code 01 lors de la mise en place d'un premier avenant. Mais, suite à un problème technique dans Osiris, le code 01 est répété lors d'un second d'avenant, voir d'un troisième. Ainsi le code administratif étant un numéro par défaut à 15 digits peut prendre des tailles beaucoup plus importantes comme dans l'exemple ci-dessous : |
Ligne 31 : | Ligne 31 : | ||
Dans tous les cas, les 15 premiers digits donnent le numéro de dossier d'origine. | Dans tous les cas, les 15 premiers digits donnent le numéro de dossier d'origine. | ||
+ | |||
+ | === Etat du dossier === | ||
+ | |||
+ | |||
+ | Une autre solution existe pour repérer les dossiers invalides. Pour une bénéficiaire possédant plusieurs dossiers identiques, le code Etat du dossier lorsque celui-ci est indiqué "réalisé" signifie que le dossier est invalide. seul le dossier en cours est à prendre en compte. | ||
+ | |||
+ | |||
+ | |||
+ | == Répercussion sur les données tronc commun (données d'ensemble RDR2) == | ||
+ | |||
+ | |||
+ | Pour les données d'ensemble la présence des avenants ne gêne pas le traitement de ces données. Pour les montants engagés et paiements tous les dossiers (y compris avenants) sont à sommer ensemble. En effet, par la présence d'avenant les montants engagés peuvent faire l'objet de rectification à déduire ou ajouter au montant du dossier initial. Les paiements payés à une date fixe ne sont pas sensibles à la présence d'avenants. | ||
+ | |||
+ | |||
+ | La présence d'avenants nécessite cependant de faire un décompte distinct des individus par dispositif afin de ne pas comptabiliser plusieurs fois un même bénéficiaire. Selon le cas, lors d'un décompte de dossiers les avenants peuvent être exclus du comptage. ( note : Dans les comptes rendus de l'ASP tous les dossiers sont comptés y compris les avenants). | ||
Ligne 40 : | Ligne 55 : | ||
− | 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 | + | 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 ou surfaces inexacts. |
+ | |||
+ | |||
+ | |||
+ | == travaux dans l'ODR à partir de 2011 == | ||
+ | |||
+ | |||
+ | Afin d'identifier les dossiers valides un champ dont le libellé est "dernier_dos" est créé dans toutes les tables mises à jour en 2011. Ce champ prend la valeur "1" lorsque le dossier est en cours, soit sans avenant, soit correspondant au dernier avenant. | ||
+ | |||
+ | |||
+ | Exemple de code de création du champ dernier dossier (le champ no_dossier correspond au numéro de dossier administratif) : | ||
+ | |||
+ | <pre> | ||
+ | /* ajoute un tag pour dernier avenant */ | ||
+ | |||
+ | #ALTER TABLE `112_conformite` ADD `dernier_dos` VARCHAR( 1 ) NOT NULL COMMENT '05/04/11 cedric' ; | ||
+ | |||
+ | #CREATE index `no_dossier` on 112_conformite (`no_dossier`) ; | ||
+ | |||
+ | #CREATE temporary table a (index(`no_dossier`)) | ||
+ | SELECT concat( left(`no_dossier`,15) , max(right(`no_dossier`,2)) ) `no_dossier`, count(distinct(`no_dossier`)) n | ||
+ | FROM 112_conformite | ||
+ | WHERE `no_dossier` <> '' and length(`no_dossier`) > 15 group by left(`no_dossier`,15) | ||
+ | union | ||
+ | SELECT left(`no_dossier`,15) `no_dossier`, count(distinct(`no_dossier`)) n | ||
+ | FROM 112_conformite | ||
+ | GROUP BY left(`no_dossier`,15) having n = 1 ; | ||
+ | |||
+ | #UPDATE a left outer join 112_conformite b ON a.`no_dossier` = b.`no_dossier` SET dernier_dos = '1' where a.`no_dossier` = b.`no_dossier` ; | ||
+ | </pre> | ||
+ | |||
+ | attention de ne pas oublier la clause Where dans l'update. | ||
− | == travaux dans l'ODR == | + | |
+ | == travaux dans l'ODR avant 2011 == | ||
− | + | Pour exclure les dossiers précédant des avenants dans les données spécifiques, une variable "dossier_non_valide" leur attribue la valeur "1". | |
Il suffit alors dans une requête sql d'exclure tous les dossiers codés 1. | Il suffit alors dans une requête sql d'exclure tous les dossiers codés 1. | ||
Ligne 85 : | Ligne 132 : | ||
and replace(`numero de dossier`,left(`numero de dossier`,15),'') != `dernier avenant` )) ; | and replace(`numero de dossier`,left(`numero de dossier`,15),'') != `dernier avenant` )) ; | ||
</pre> | </pre> | ||
+ | |||
+ | |||
+ | [[Category:Création des tables]] |
Version actuelle datée du 7 septembre 2017 à 13:39
Les données spécifiques aux dispositifs du RDR2 fournies par l'ASP concernent l'ensemble des dossiers engagés à une date donnée. La clef 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 et différents montants.
Cet article ne concerne pas les données surfaciques (MAE) ou la clef des tables reçues est le numéro d'individu.
Sommaire
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 par la forme du code dossier administratif. Deux cas sont possibles :
Lors de la première année d'application du RDR2 (2007) le numéro de dossier administratif est suivi du code 01 lors de la mise en place d'un premier avenant. Mais, suite à un problème technique dans Osiris, le code 01 est répété lors d'un second d'avenant, voir d'un troisième. Ainsi le code administratif étant un numéro par défaut à 15 digits 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 à 15 digits : 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.
Etat du dossier
Une autre solution existe pour repérer les dossiers invalides. Pour une bénéficiaire possédant plusieurs dossiers identiques, le code Etat du dossier lorsque celui-ci est indiqué "réalisé" signifie que le dossier est invalide. seul le dossier en cours est à prendre en compte.
Répercussion sur les données tronc commun (données d'ensemble RDR2)
Pour les données d'ensemble la présence des avenants ne gêne pas le traitement de ces données. Pour les montants engagés et paiements tous les dossiers (y compris avenants) sont à sommer ensemble. En effet, par la présence d'avenant les montants engagés peuvent faire l'objet de rectification à déduire ou ajouter au montant du dossier initial. Les paiements payés à une date fixe ne sont pas sensibles à la présence d'avenants.
La présence d'avenants nécessite cependant de faire un décompte distinct des individus par dispositif afin de ne pas comptabiliser plusieurs fois un même bénéficiaire. Selon le cas, lors d'un décompte de dossiers les avenants peuvent être exclus du comptage. ( note : Dans les comptes rendus de l'ASP tous les dossiers sont comptés y compris les avenants).
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 ou surfaces inexacts.
travaux dans l'ODR à partir de 2011
Afin d'identifier les dossiers valides un champ dont le libellé est "dernier_dos" est créé dans toutes les tables mises à jour en 2011. Ce champ prend la valeur "1" lorsque le dossier est en cours, soit sans avenant, soit correspondant au dernier avenant.
Exemple de code de création du champ dernier dossier (le champ no_dossier correspond au numéro de dossier administratif) :
/* ajoute un tag pour dernier avenant */ #ALTER TABLE `112_conformite` ADD `dernier_dos` VARCHAR( 1 ) NOT NULL COMMENT '05/04/11 cedric' ; #CREATE index `no_dossier` on 112_conformite (`no_dossier`) ; #CREATE temporary table a (index(`no_dossier`)) SELECT concat( left(`no_dossier`,15) , max(right(`no_dossier`,2)) ) `no_dossier`, count(distinct(`no_dossier`)) n FROM 112_conformite WHERE `no_dossier` <> '' and length(`no_dossier`) > 15 group by left(`no_dossier`,15) union SELECT left(`no_dossier`,15) `no_dossier`, count(distinct(`no_dossier`)) n FROM 112_conformite GROUP BY left(`no_dossier`,15) having n = 1 ; #UPDATE a left outer join 112_conformite b ON a.`no_dossier` = b.`no_dossier` SET dernier_dos = '1' where a.`no_dossier` = b.`no_dossier` ;
attention de ne pas oublier la clause Where dans l'update.
travaux dans l'ODR avant 2011
Pour exclure les dossiers précédant des avenants dans les données spécifiques, une variable "dossier_non_valide" leur attribue la valeur "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 des avenants */ /* avec en variables les numéros de dossiers sans le code 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 à traiter */ ALTER TABLE `nom de la table` ADD `dossier_non_valide` VARCHAR( 1 ) NOT NULL ; /* insertion d'une valeur '1' pour les dossiers précédant 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` )) ;