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

Ajustement MV_OCTO_INTERVENANT.sql

parent 4b37d766
......@@ -4,12 +4,13 @@ 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_code) OVER (PARTITION BY code, z_statut_id ORDER BY affectation_principale DESC, id_affectation ASC) structure_code,
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,
--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)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment