Loading doc/Connecteurs Import/Octopus/MV_INTERVENANT.sql +29 −33 Changes for doc/Connecteurs Import/Octopus/MV_INTERVENANT.sql: 29 added lines, 33 removed lines. Original line number Diff line number Diff line Loading @@ -57,6 +57,24 @@ MATERIALIZED VIEW MV_INTERVENANT AS JOIN octo.individu_unique@octoprod uni ON uni.c_individu_chaine = aff.individu_id WHERE aff.t_principale = 'O' AND aff.date_fin + 1 >= (SYSDATE - (365 * 2)) ), --CNU arrangé cnua AS ( SELECT gra.individu_id individu_id, nvl(carr.c_cnu,darr.c_cnu) code_cnu_arrange, nvl(carr.lib_long,darr.lib_long) libelle_cnu_arrange, nvl(carr.groupe,darr.groupe) groupe_cnu_arrange FROM octo.individu_grade@octoprod gra LEFT JOIN octo.cnu_spec_cnu_adapte@octoprod ccarr ON (gra.cnu_id=ccarr.cnu_id AND (gra.cnu_specialite_id is null OR gra.cnu_specialite_id=ccarr.cnu_specialite_id)) LEFT JOIN octo.cnu_adapte@octoprod carr ON (ccarr.cnu_adapte_id=carr.id) LEFT JOIN octo.discipline_cnu_adapte@octoprod dcarr ON (gra.discipline_sec_id=dcarr.discipline_sec_id) LEFT JOIN octo.cnu_adapte@octoprod darr ON (dcarr.cnu_adapte_id=darr.id) WHERE sysdate BETWEEN gra.d_debut AND nvl(gra.d_fin, sysdate) AND (gra.cnu_id is not null OR gra.discipline_sec_id is not null) ), /*Individu unique pour avoir qu'un seul individu unique dans l'ordre c_source SIHAM, HARP, APO Car individu unique peut avoir plusieurs entrée (Harpége et Apogé par exemple) dans la table individu_unique, Loading Loading @@ -97,20 +115,15 @@ SELECT DISTINCT END z_structure_id_n2,*/ i.z_statut_id z_statut_id, grade.c_grade z_grade_id, /* Données nécessaires pour calculer la discipline */ d.source_code z_discipline_id, -- cnu.c_cnu z_discipline_id_cnu, -- CAST(NULL AS varchar2(255)) z_discipline_id_sous_cnu, -- cnus.c_cnu_specialite z_discipline_id_spe_cnu, --dissec.c_discipline z_discipline_id_dis2deg, cnua.code_cnu_arrange z_discipline_idbis, /* Données identifiantes de base */ CASE ind.sexe WHEN 'M' THEN 'M.' ELSE 'Mme' END z_civilite_id, initcap(ind.nom_usage) nom_usuel, COALESCE(initcap(ind.nom_usage), initcap(ind.nom_famille)) nom_usuel, initcap(ind.prenom) prenom, ind.d_naissance date_naissance, COALESCE(ind.d_naissance, to_date('01/01/1900', 'dd/mm/YYYY')) date_naissance, /* Données identifiantes complémentaires */ initcap(ind.nom_famille) nom_patronymique, ind.ville_de_naissance commune_naissance, Loading @@ -123,11 +136,13 @@ SELECT DISTINCT ind.email_perso email_perso, /* Adresse */ trim(adr.adresse1 || CASE WHEN adr.adresse1 IS NOT NULL CASE WHEN adr.adresse1 IS NOT NULL AND adr.adresse2 IS NOT NULL THEN CHR(13) ELSE '' END || adr.adresse2 || CASE WHEN adr.adresse2 IS NOT NULL CASE WHEN adr.adresse2 IS NOT NULL AND adr.adresse3 IS NOT NULL THEN CHR(13) ELSE '' END || adr.adresse3) adresse_precisions, Loading Loading @@ -191,31 +206,12 @@ FROM i --On récupére le code de la structure d'affectation principal de l'individu LEFT JOIN v_structure@octoprod str ON str.id = spi.z_structure_id LEFT JOIN v_structure@octoprod str2 ON str.niv2_id = str2.id LEFT JOIN discipline d ON d.histo_destruction IS NULL AND 1 = CASE WHEN -- si rien n'a été défini COALESCE( cnu.c_cnu, cnus.c_cnu_specialite, dissec.c_discipline ) IS NULL AND d.source_code = '00' THEN 1 WHEN -- si une CNU ou une spécialité a été définie... COALESCE( cnu.c_cnu, cnus.c_cnu_specialite ) IS NOT NULL THEN CASE WHEN -- alors on teste par les sections CNU et spécialités --On récupére la discipline adaptée directement dans Octopus LEFT JOIN cnua cnua ON cnua.individu_id = induni.c_individu_chaine ( ',' || d.CODES_CORRESP_2 || ',' LIKE '%,' || cnu.c_cnu || ',%' OR ',' || d.CODES_CORRESP_2 || ',' LIKE '%,' || cnu.c_cnu || '00,%' ) AND ',' || NVL(d.CODES_CORRESP_3,'000') || ',' LIKE '%,' || NVL(CASE WHEN d.CODES_CORRESP_3 IS NOT NULL THEN cnus.c_cnu_specialite ELSE NULL END,'000') || ',%' THEN 1 ELSE 0 END ELSE CASE WHEN -- sinon on teste par les disciplines du 2nd degré dissec.c_discipline IS NOT NULL AND ',' || NVL(d.CODES_CORRESP_4,'') || ',' LIKE '%,' || dissec.c_discipline || ',%' THEN 1 ELSE 0 END END -- fin du test WHERE i.validite_fin >= (SYSDATE - (365 * 2)) --AND indc.id IS NOT NULL --Filtre à activer si on ne veut pas remonter les comptes octopus non activés --AND induni.c_individu_chaine = 4251-- Filtre avec code octopus --AND ind.nom_famille = 'DURANDY' --AND induni.c_src_individu = 45053-- Filtre avec code harpege Loading Loading
doc/Connecteurs Import/Octopus/MV_INTERVENANT.sql +29 −33 Changes for doc/Connecteurs Import/Octopus/MV_INTERVENANT.sql: 29 added lines, 33 removed lines. Original line number Diff line number Diff line Loading @@ -57,6 +57,24 @@ MATERIALIZED VIEW MV_INTERVENANT AS JOIN octo.individu_unique@octoprod uni ON uni.c_individu_chaine = aff.individu_id WHERE aff.t_principale = 'O' AND aff.date_fin + 1 >= (SYSDATE - (365 * 2)) ), --CNU arrangé cnua AS ( SELECT gra.individu_id individu_id, nvl(carr.c_cnu,darr.c_cnu) code_cnu_arrange, nvl(carr.lib_long,darr.lib_long) libelle_cnu_arrange, nvl(carr.groupe,darr.groupe) groupe_cnu_arrange FROM octo.individu_grade@octoprod gra LEFT JOIN octo.cnu_spec_cnu_adapte@octoprod ccarr ON (gra.cnu_id=ccarr.cnu_id AND (gra.cnu_specialite_id is null OR gra.cnu_specialite_id=ccarr.cnu_specialite_id)) LEFT JOIN octo.cnu_adapte@octoprod carr ON (ccarr.cnu_adapte_id=carr.id) LEFT JOIN octo.discipline_cnu_adapte@octoprod dcarr ON (gra.discipline_sec_id=dcarr.discipline_sec_id) LEFT JOIN octo.cnu_adapte@octoprod darr ON (dcarr.cnu_adapte_id=darr.id) WHERE sysdate BETWEEN gra.d_debut AND nvl(gra.d_fin, sysdate) AND (gra.cnu_id is not null OR gra.discipline_sec_id is not null) ), /*Individu unique pour avoir qu'un seul individu unique dans l'ordre c_source SIHAM, HARP, APO Car individu unique peut avoir plusieurs entrée (Harpége et Apogé par exemple) dans la table individu_unique, Loading Loading @@ -97,20 +115,15 @@ SELECT DISTINCT END z_structure_id_n2,*/ i.z_statut_id z_statut_id, grade.c_grade z_grade_id, /* Données nécessaires pour calculer la discipline */ d.source_code z_discipline_id, -- cnu.c_cnu z_discipline_id_cnu, -- CAST(NULL AS varchar2(255)) z_discipline_id_sous_cnu, -- cnus.c_cnu_specialite z_discipline_id_spe_cnu, --dissec.c_discipline z_discipline_id_dis2deg, cnua.code_cnu_arrange z_discipline_idbis, /* Données identifiantes de base */ CASE ind.sexe WHEN 'M' THEN 'M.' ELSE 'Mme' END z_civilite_id, initcap(ind.nom_usage) nom_usuel, COALESCE(initcap(ind.nom_usage), initcap(ind.nom_famille)) nom_usuel, initcap(ind.prenom) prenom, ind.d_naissance date_naissance, COALESCE(ind.d_naissance, to_date('01/01/1900', 'dd/mm/YYYY')) date_naissance, /* Données identifiantes complémentaires */ initcap(ind.nom_famille) nom_patronymique, ind.ville_de_naissance commune_naissance, Loading @@ -123,11 +136,13 @@ SELECT DISTINCT ind.email_perso email_perso, /* Adresse */ trim(adr.adresse1 || CASE WHEN adr.adresse1 IS NOT NULL CASE WHEN adr.adresse1 IS NOT NULL AND adr.adresse2 IS NOT NULL THEN CHR(13) ELSE '' END || adr.adresse2 || CASE WHEN adr.adresse2 IS NOT NULL CASE WHEN adr.adresse2 IS NOT NULL AND adr.adresse3 IS NOT NULL THEN CHR(13) ELSE '' END || adr.adresse3) adresse_precisions, Loading Loading @@ -191,31 +206,12 @@ FROM i --On récupére le code de la structure d'affectation principal de l'individu LEFT JOIN v_structure@octoprod str ON str.id = spi.z_structure_id LEFT JOIN v_structure@octoprod str2 ON str.niv2_id = str2.id LEFT JOIN discipline d ON d.histo_destruction IS NULL AND 1 = CASE WHEN -- si rien n'a été défini COALESCE( cnu.c_cnu, cnus.c_cnu_specialite, dissec.c_discipline ) IS NULL AND d.source_code = '00' THEN 1 WHEN -- si une CNU ou une spécialité a été définie... COALESCE( cnu.c_cnu, cnus.c_cnu_specialite ) IS NOT NULL THEN CASE WHEN -- alors on teste par les sections CNU et spécialités --On récupére la discipline adaptée directement dans Octopus LEFT JOIN cnua cnua ON cnua.individu_id = induni.c_individu_chaine ( ',' || d.CODES_CORRESP_2 || ',' LIKE '%,' || cnu.c_cnu || ',%' OR ',' || d.CODES_CORRESP_2 || ',' LIKE '%,' || cnu.c_cnu || '00,%' ) AND ',' || NVL(d.CODES_CORRESP_3,'000') || ',' LIKE '%,' || NVL(CASE WHEN d.CODES_CORRESP_3 IS NOT NULL THEN cnus.c_cnu_specialite ELSE NULL END,'000') || ',%' THEN 1 ELSE 0 END ELSE CASE WHEN -- sinon on teste par les disciplines du 2nd degré dissec.c_discipline IS NOT NULL AND ',' || NVL(d.CODES_CORRESP_4,'') || ',' LIKE '%,' || dissec.c_discipline || ',%' THEN 1 ELSE 0 END END -- fin du test WHERE i.validite_fin >= (SYSDATE - (365 * 2)) --AND indc.id IS NOT NULL --Filtre à activer si on ne veut pas remonter les comptes octopus non activés --AND induni.c_individu_chaine = 4251-- Filtre avec code octopus --AND ind.nom_famille = 'DURANDY' --AND induni.c_src_individu = 45053-- Filtre avec code harpege Loading