Commit 25b15a26 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Ajustement MV_OCTO_INTERVENANT.sql

parent 4b37d766
Loading
Loading
Loading
Loading
+35 −34
Changes for doc/Connecteurs Import/Octopus/MV_OCTO_INTERVENANT.sql: 35 added lines, 34 removed lines.
Original line number Diff line number Diff line
@@ -9,7 +9,8 @@ WITH i AS (
                    MIN(validite_debut)         OVER (partition by code, z_statut_id)                                                                     validite_debut,
                    MAX(validite_fin)           OVER (partition by code, z_statut_id)                                                                     validite_fin
    FROM (SELECT aff.id                                                                   id_affectation,
                 uni.c_src_individu                                                       code,
    			 --Le code de l'intervenant est maintenant le id unique octopus
                 uni.c_individu_chaine                                                    code,
                 s.code                                                                   structure_code,
                 CASE WHEN icto.code_ose IS NOT NULL THEN icto.code_ose ELSE 'AUTRES' END z_statut_id,
                 COALESCE(aff.date_debut, to_date('01/01/1900', 'dd/mm/YYYY'))            validite_debut,
@@ -17,13 +18,13 @@ WITH i AS (
                 --Le source code n'est plus utilisé par SRC_INTERVENANT on met donc la même valeur que code
                 uni.c_individu_chaine || '-a'                                            source_code,
                 aff.t_principale                                                         affectation_principale
          FROM octo.individu_affectation@octodev aff
                   JOIN octo.individu_affectation_type@octodev aft ON (aff.type_id = aft.id)
                   JOIN octo.individu_unique@octodev uni
                        ON (aff.individu_id = uni.c_individu_chaine AND uni.c_source = 'HARP')
                   LEFT JOIN octo.v_individu_contrat_type_ose@octodev icto
          FROM octo.individu_affectation@octoprod aff
                   JOIN octo.individu_affectation_type@octoprod aft ON (aff.type_id = aft.id)
                   JOIN octo.individu_unique@octoprod uni
                        ON (aff.individu_id = uni.c_individu_chaine AND uni.c_source IN ('HARP'))
                   LEFT JOIN octo.v_individu_contrat_type_ose@octoprod icto
                             ON icto.individu_id = uni.c_individu_chaine AND COALESCE(icto.d_fin, SYSDATE) >= SYSDATE
                   LEFT JOIN octo.STRUCTURE@octodev s ON s.id = aff.structure_id
                   LEFT JOIN octo.STRUCTURE@octoprod s ON s.id = aff.structure_id
          WHERE aff.date_debut - 184 <= SYSDATE
            AND aft.nom = 'AFFECTATION'
            --Uniquement si on veut que les affectations principales
@@ -32,7 +33,7 @@ WITH i AS (
          UNION ALL
          --AFFECTATION ENSEIGNEMENT
          SELECT aff.id                                                                   id_affectation,
                 uni.c_src_individu                                                       code,
                 uni.c_individu_chaine                                                    code,
                 s.code                                                                   structure_code,
                 CASE WHEN icto.code_ose IS NOT NULL THEN icto.code_ose ELSE 'AUTRES' END z_statut_id,
                 COALESCE(aff.date_debut, to_date('01/01/1900', 'dd/mm/YYYY'))            validite_debut,
@@ -40,13 +41,13 @@ WITH i AS (
                 --Le source code n'est plus utilisé par SRC_INTERVENANT on met donc la même valeur que code
                 uni.c_individu_chaine || '-c'                                            source_code,
                 aff.t_principale                                                         affectation_principale
          FROM octo.individu_affectation@octodev aff
                   JOIN octo.individu_affectation_type@octodev aft ON (aff.type_id = aft.id)
                   JOIN octo.individu_unique@octodev uni
                        ON (aff.individu_id = uni.c_individu_chaine AND uni.c_source = 'HARP')
                   LEFT JOIN octo.v_individu_contrat_type_ose@octodev icto
          FROM octo.individu_affectation@octoprod aff
                   JOIN octo.individu_affectation_type@octoprod aft ON (aff.type_id = aft.id)
                   JOIN octo.individu_unique@octoprod uni
                        ON (aff.individu_id = uni.c_individu_chaine AND uni.c_source IN ('HARP'))
                   LEFT JOIN octo.v_individu_contrat_type_ose@octoprod icto
                             ON icto.individu_id = uni.c_individu_chaine AND COALESCE(icto.d_fin, SYSDATE) >= SYSDATE
                   LEFT JOIN octo.STRUCTURE@octodev s ON s.id = aff.structure_id
                   LEFT JOIN octo.STRUCTURE@octoprod s ON s.id = aff.structure_id
          WHERE aff.date_debut - 184 <= SYSDATE
            AND aft.nom = 'ENSEIGNEMENT'
            --Uniquement si on veut que les affectations principales
@@ -55,7 +56,7 @@ WITH i AS (
          UNION ALL
          --AFFECTATION RECHERCHE
          SELECT aff.id                                                                   id_affectation,
                 uni.c_src_individu                                                       code,
                 uni.c_individu_chaine                                                    code,
                 s.code                                                                   structure_code,
                 CASE WHEN icto.code_ose IS NOT NULL THEN icto.code_ose ELSE 'AUTRES' END z_statut_id,
                 COALESCE(aff.date_debut, to_date('01/01/1900', 'dd/mm/YYYY'))            validite_debut,
@@ -63,13 +64,13 @@ WITH i AS (
                 --Le source code n'est plus utilisé par SRC_INTERVENANT on met donc la même valeur que code
                 uni.c_individu_chaine || '-r'                                            source_code,
                 aff.t_principale                                                         affectation_principale
          FROM octo.individu_affectation@octodev aff
                   JOIN octo.individu_affectation_type@octodev aft ON (aff.type_id = aft.id)
                   JOIN octo.individu_unique@octodev uni
                        ON (aff.individu_id = uni.c_individu_chaine AND uni.c_source = 'HARP')
                   LEFT JOIN octo.v_individu_contrat_type_ose@octodev icto
          FROM octo.individu_affectation@octoprod aff
                   JOIN octo.individu_affectation_type@octoprod aft ON (aff.type_id = aft.id)
                   JOIN octo.individu_unique@octoprod uni
                        ON (aff.individu_id = uni.c_individu_chaine AND uni.c_source IN ('HARP'))
                   LEFT JOIN octo.v_individu_contrat_type_ose@octoprod icto
                             ON icto.individu_id = uni.c_individu_chaine AND COALESCE(icto.d_fin, SYSDATE) >= SYSDATE
                   LEFT JOIN octo.STRUCTURE@octodev s ON s.id = aff.structure_id
                   LEFT JOIN octo.STRUCTURE@octoprod s ON s.id = aff.structure_id
          WHERE aff.date_debut - 184 <= SYSDATE
            AND aft.nom = 'RECHERCHE'
             --Uniquement si on veut que les affectations principales
@@ -79,12 +80,12 @@ WITH i AS (
     telephone_pro_principal AS (
         SELECT indtel.individu_id individu_id,
                tel.numero         numero
         FROM octo.individu_telephone@octodev indtel
                  JOIN octo.telephone@octodev tel ON (tel.id = indtel.telephone_id AND tel.t_principal = 'O')
         FROM octo.individu_telephone@octoprod indtel
                  JOIN octo.telephone@octoprod tel ON (tel.id = indtel.telephone_id AND tel.t_principal = 'O')
     )
SELECT
    /*Octopus id, id unique pour un individu immuable dans le temps, remplace le code harpege*/
    induni.c_individu_chaine                                                                             code,
    i.code                                                                                               code,
    /* Code RH */
    ltrim(TO_CHAR(induni.c_src_individu, '99999999'))                                                    code_rh,
    i.source_code                                                                                        source_code,
@@ -94,8 +95,6 @@ SELECT
    str2.code                                                                                            z_structure_code_n2,
    i.structure_code                                                                                     z_structure_code,
    i.z_statut_id                                                                                        z_statut_id,
    /* Récupération du grade actuel */
    --pbs_divers__cicg.c_grade@harpprod(individu.no_individu, COALESCE(i.validite_fin,SYSDATE) ) z_grade_id,
    indg.grade_id                                                                                        z_grade_id,
    /* Données nécessaires pour calculer la discipline */
    indg.cnu_id                                                                                          z_discipline_id_cnu,
@@ -111,7 +110,6 @@ SELECT

    /* Données identifiantes complémentaires */
    initcap(ind.nom_famille)                                                                             nom_patronymique,
    --Pour le moment les communes ne sont pas dans OCTOPUS commune.libelle_commune
    ind.ville_de_naissance                                                                               commune_naissance,
    ind.c_pays_naissance                                                                                 z_pays_naissance_id,
    ind.c_dept_naissance                                                                                 z_departement_naissance_id,
@@ -153,20 +151,23 @@ SELECT
    CASE WHEN i.validite_fin = to_date('01/01/9999', 'dd/mm/YYYY') THEN NULL ELSE i.validite_fin END     validite_fin

FROM i
         JOIN octo.individu_unique@octodev induni ON (i.code = induni.c_src_individu AND induni.c_source = 'HARP')
         LEFT JOIN octo.individu@octodev ind ON ind.c_individu_chaine = induni.c_individu_chaine
         LEFT JOIN octo.individu_grade@octodev indg ON induni.c_individu_chaine = indg.individu_id
         LEFT JOIN octo.v_individu_adresse_perso@octodev adr
         JOIN octo.individu_unique@octoprod induni ON (i.code = induni.c_individu_chaine AND induni.c_source IN ('HARP'))
         LEFT JOIN octo.individu@octoprod ind ON ind.c_individu_chaine = induni.c_individu_chaine
         LEFT JOIN octo.individu_grade@octoprod indg ON induni.c_individu_chaine = indg.individu_id
         LEFT JOIN octo.v_individu_adresse_perso@octoprod adr
                   ON adr.individu_id = induni.c_individu_chaine AND t_principale = 'O'
         LEFT JOIN telephone_pro_principal telpro ON telpro.individu_id = induni.c_individu_chaine
    -- On ne prend que les comptes qui ne sont pas étudiants
         LEFT JOIN octo.individu_compte@octodev indc
         LEFT JOIN octo.individu_compte@octoprod indc
                   ON indc.individu_id = induni.c_individu_chaine AND not regexp_like(ldap_uid, 'e[0-9]{8}')
         LEFT JOIN v_structure@octodev str ON str.code = i.structure_code
         LEFT JOIN v_structure@octodev str2 ON str.niv2_id = str2.id
         LEFT JOIN v_structure@octoprod str ON str.code = i.structure_code
         LEFT JOIN v_structure@octoprod str2 ON str.niv2_id = str2.id
WHERE i.validite_fin + 1 >= (SYSDATE - (365 * 2))
--AND ind.nom_usage LIKE 'HEARD%'
--AND i.structure_code = '13A'
--AND induni.c_individu_chaine = 1239
--Filtre octopus id
--AND induni.c_src_individu = 52958 --Filtre code rh (harpége)