Commit 82c76b55 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Travail sur les structures de rattachement.

parent 2d5b56c3
Loading
Loading
Loading
Loading
+38 −30
Changes for doc/Connecteurs Import/Octopus/MV_OCTO_INTERVENANT.sql: 38 added lines, 30 removed lines.
Original line number Diff line number Diff line
CREATE
MATERIALIZED VIEW MV_INTERVENANT_OCTO AS
--CREATE
--MATERIALIZED VIEW MV_INTERVENANT_OCTO AS
WITH i AS (
    SELECT DISTINCT code,
                    z_statut_id,
                    --On prend la structure d'affectation principale sinon la première structure saisie
                    FIRST_VALUE(structure_id) OVER (PARTITION BY code, z_statut_id ORDER BY affectation_principale DESC, id_affectation ASC)      structure_id,
                    FIRST_VALUE(structure_code) OVER (PARTITION BY code, z_statut_id ORDER BY affectation_principale DESC, id_affectation ASC)    structure_code,
                    MIN(source_code)            OVER (partition by code, z_statut_id)                                                                     source_code,
                    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,
                 aff.structure_id                                                         structure_id,
                 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,
                 COALESCE(aff.date_fin, to_date('01/01/1900', 'dd/mm/YYYY'))              validite_fin,
                 --Le source code n'est plus utilisé par SRC_INTERVENANT on met donc la même valeur que code + type affectation
                 --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
@@ -23,6 +23,7 @@ WITH i AS (
                        ON (aff.individu_id = uni.c_individu_chaine AND uni.c_source = 'HARP')
                   LEFT JOIN octo.v_individu_contrat_type_ose@octodev 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
          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 (
          --AFFECTATION ENSEIGNEMENT
          SELECT aff.id                                                                   id_affectation,
                 uni.c_src_individu                                                       code,
                 aff.structure_id                                                         structure_id,
                 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,
                 COALESCE(aff.date_fin, to_date('01/01/1900', 'dd/mm/YYYY'))              validite_fin,
@@ -45,6 +46,7 @@ WITH i AS (
                        ON (aff.individu_id = uni.c_individu_chaine AND uni.c_source = 'HARP')
                   LEFT JOIN octo.v_individu_contrat_type_ose@octodev 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
          WHERE aff.date_debut - 184 <= SYSDATE
            AND aft.nom = 'ENSEIGNEMENT'
            --Uniquement si on veut que les affectations principales
@@ -54,7 +56,7 @@ WITH i AS (
          --AFFECTATION RECHERCHE
          SELECT aff.id                                                                   id_affectation,
                 uni.c_src_individu                                                       code,
                 aff.structure_id                                                         structure_id,
                 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,
                 COALESCE(aff.date_fin, to_date('01/01/1900', 'dd/mm/YYYY'))              validite_fin,
@@ -67,6 +69,7 @@ WITH i AS (
                        ON (aff.individu_id = uni.c_individu_chaine AND uni.c_source = 'HARP')
                   LEFT JOIN octo.v_individu_contrat_type_ose@octodev 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
          WHERE aff.date_debut - 184 <= SYSDATE
            AND aft.nom = 'RECHERCHE'
             --Uniquement si on veut que les affectations principales
@@ -80,41 +83,45 @@ WITH i AS (
                  JOIN octo.telephone@octodev 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
    /*Octopus id, id unique pour un individu immuable dans le temps, remplace le code harpege*/
    induni.c_individu_chaine                                                                             code,
    --Code RH de l'intervenant dans le SI harpége pour le moment SIHAM par la suite
    /* Code RH */
    ltrim(TO_CHAR(induni.c_src_individu, '99999999'))                                                    code_rh,
    i.source_code                                                                                        source_code,
    --UID du LDAP Unicaen
    /* = supannempid du LDAP Unicaen */
    indc.ldap_uid                                                                                        utilisateur_code,
    --Structure d'affectation principale de l'intervenant
    i.structure_id                                                                                       z_structure_id,

    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
    /* 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
    /* Données nécessaires pour calculer la discipline */
    indg.cnu_id                                                                                          z_discipline_id_cnu,
    NULL                                                                                                 z_discipline_id_sous_cnu,
    indg.cnu_specialite_id                                                                               z_discipline_id_spe_cnu,
    indg.discipline_sec_id                                                                               z_discipline_id_dis2deg,
    --Données identifiantes de base
    /* Données identifiantes de base */
    CASE ind.sexe WHEN 'M' THEN 'M.' ELSE 'Mme' END                                                      z_civilite_id,
    INITCAP(ind.nom_usage)                                                                               nom_usuel,
    INITCAP(ind.prenom)                                                                                  prenom,
    initcap(ind.nom_usage)                                                                               nom_usuel,
    initcap(ind.prenom)                                                                                  prenom,
    ind.d_naissance                                                                                      date_naissance,
    INITCAP(ind.nom_famille)                                                                             nom_patronymique,


    /* 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,
    ind.c_pays_nationalite                                                                               z_pays_nationalite_id,

    --Données de contact pro et perso
    telpro.numero                                                                                        tel_pro,
    ind.tel_perso                                                                                        tel_perso,
    indc.email                                                                                           email_pro,
    ind.email_perso                                                                                      email_perso,

    --Adresse
    /* Adresse */
    '**Adr précision**'                                                                                  adresse_precisions,
    '**Adr N° voie**'                                                                                    adresse_numero,
    '**Adr complement**'                                                                                 z_adresse_numero_compl_id,
@@ -124,24 +131,23 @@ SELECT
    '**Adr code postal**'                                                                                adresse_code_postal,
    '**Adr ville**'                                                                                      adresse_commune,
    '**Adr pays**'                                                                                       z_adresse_pays_id,

    --Données INSEE
    /* INSEE */
    '**INSEE**'                                                                                          numero_insee,
    '**INSEE provisoire**'                                                                               numero_insee_provisoire,

    --Données bancaires
    /* Banque */
    '**iban**'                                                                                           iban,
    '**bic**'                                                                                            bic,
    '**RIB hors sepa**'                                                                                  rib_hors_sepa,

    --Données complémentaires
    /* Données complémentaires */
    CAST(NULL AS varchar2(255))                                                                          autre_1,
    CAST(NULL AS varchar2(255))                                                                          autre_2,
    CAST(NULL AS varchar2(255))                                                                          autre_3,
    CAST(NULL AS varchar2(255))                                                                          autre_4,
    CAST(NULL AS varchar2(255))                                                                          autre_5,

    --Données Employeur
    /* Employeur */
    CAST(NULL AS varchar2(255))                                                                          z_employeur_id,
    CASE WHEN i.validite_debut = to_date('01/01/1900', 'dd/mm/YYYY') THEN NULL ELSE i.validite_debut END validite_debut,
    CASE WHEN i.validite_fin = to_date('01/01/9999', 'dd/mm/YYYY') THEN NULL ELSE i.validite_fin END     validite_fin
@@ -151,11 +157,13 @@ FROM i
         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 telephone_pro_principal telpro ON telpro.individu_id = induni.c_individu_chaine
    -- On ne prend que les comptes qui ne sont pas étudiants dans le cas d'intervenant qui sont également étudiant
    -- On ne prend que les comptes qui ne sont pas étudiants
         LEFT JOIN octo.individu_compte@octodev 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
WHERE i.validite_fin + 1 >= (SYSDATE - (365 * 2))
--AND i.structure_code = '13A'
--AND induni.c_individu_chaine = 1239
--Filtre octopus id
  AND induni.c_individu_chaine = 247695
--Filtre code rh (harpége)
--AND induni.c_src_individu = 52958
--AND induni.c_src_individu = 52958 --Filtre code rh (harpége)
+1 −1
Changes for doc/Connecteurs Import/Octopus/SRC_OCTO_CORPS.sql: 1 added line, 1 removed line.
Original line number Diff line number Diff line
CREATE
OR REPLACE FORCE VIEW SRC_CORPS_OCTO AS
OR REPLACE FORCE VIEW SRC_OCTO_CORPS AS
SELECT c.lib_long  libelle_long,
       c.lib_court libelle_court,
       s.id        source_id,
+1 −1
Changes for doc/Connecteurs Import/Octopus/SRC_OCTO_DEPARTEMENT.sql: 1 added line, 1 removed line.
Original line number Diff line number Diff line
CREATE
OR REPLACE FORCE VIEW SRC_DEPARTEMENT_OCTO AS
OR REPLACE FORCE VIEW SRC_OCTO_DEPARTEMENT AS
SELECT d.code      code,
       d.lib_court libelle,
       s.id        source_id,
+1 −1
Changes for doc/Connecteurs Import/Octopus/SRC_OCTO_GRADE.sql: 1 added line, 1 removed line.
Original line number Diff line number Diff line
CREATE
OR REPLACE FORCE VIEW SRC_GRADE_OCTO AS
OR REPLACE FORCE VIEW SRC_OCTO_GRADE AS
SELECT g.lib_court libelle_court,
       g.lib_long  libelle_long,
       s.id        source_id,
+1 −1
Changes for doc/Connecteurs Import/Octopus/SRC_OCTO_PAYS.sql: 1 added line, 1 removed line.
Original line number Diff line number Diff line
CREATE
OR REPLACE FORCE VIEW SRC_PAYS_OCTO AS
OR REPLACE FORCE VIEW SRC_OCTO_PAYS AS
SELECT code_pays                                                     code,
       libelle_court                                                 libelle,
       coalesce(date_ouverture, TO_DATE('1900/01/01', 'YYYY/MM/DD')) validite_debut,
Loading