From c22b6b325df7416f7ba518be2d28bb5c18689450 Mon Sep 17 00:00:00 2001
From: pwer21c <pwer21c@gmail.com>
Date: Tue, 23 Mar 2021 14:02:14 +0100
Subject: [PATCH] =?UTF-8?q?mise=20=C3=A0=20jour=20par=20UP8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../Mangue/MV_INTERVENANT.sql                 | 589 +++++++++++-------
 1 file changed, 373 insertions(+), 216 deletions(-)

diff --git a/doc/Connecteurs-Import/Mangue/MV_INTERVENANT.sql b/doc/Connecteurs-Import/Mangue/MV_INTERVENANT.sql
index f8fda63989..72fe28c374 100644
--- a/doc/Connecteurs-Import/Mangue/MV_INTERVENANT.sql
+++ b/doc/Connecteurs-Import/Mangue/MV_INTERVENANT.sql
@@ -1,270 +1,427 @@
-  CREATE MATERIALIZED VIEW MV_INTERVENANT AS
-  WITH
-i AS (
 
-SELECT DISTINCT
+CREATE MATERIALIZED VIEW MV_INTERVENANT AS
+WITH
+i AS (
+  SELECT -- permet de fusionner les données pour ne conserver qu'une des tuples (code,statut) sans doublons
     code,
-    z_statut_id,
-    FIRST_VALUE(z_discipline_id_cnu) OVER (partition by code, z_statut_id order by validite_fin desc)      z_discipline_id_cnu,
-    FIRST_VALUE(z_discipline_id_sous_cnu) OVER (partition by code, z_statut_id order by validite_fin desc) z_discipline_id_sous_cnu,
-    FIRST_VALUE(z_discipline_id_spe_cnu) OVER (partition by code, z_statut_id order by validite_fin desc)  z_discipline_id_spe_cnu,
-    FIRST_VALUE(z_discipline_id_dis2deg) OVER (partition by code, z_statut_id order by validite_fin desc)  z_discipline_id_dis2deg,
-    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
+    statut,
+    MAX(z_discipline_id_cnu)      z_discipline_id_cnu,
+    MAX(z_discipline_id_sous_cnu) z_discipline_id_sous_cnu,
+    MAX(z_discipline_id_spe_cnu)  z_discipline_id_spe_cnu,
+    MAX(z_discipline_id_dis2deg)  z_discipline_id_dis2deg,
+    MAX(date_fin) date_fin
   FROM
-(    -- les CONTRACTUELS 
+  (
+    SELECT
+      i.*, -- permet de ne sélectionner que les données (contrats, etc) se terminant le plus tard possible ou bien sans date de fin
+      CASE WHEN COUNT(*) OVER (PARTITION BY code,statut) > 1 THEN
+        CASE WHEN COALESCE(date_fin,SYSDATE) = MAX(COALESCE(date_fin,SYSDATE)) OVER (PARTITION BY code,statut) THEN 1 ELSE 0 END
+      ELSE 1 END ok2,
+      COUNT(*) OVER (PARTITION BY code,statut,date_fin) dc
+    FROM
+    (
       SELECT
+        i.*,
+        CASE -- permet de supprimer les données obsolètes ou futures s'il y en a des actuelles (contrat en cours, etc)
+          WHEN
+            COUNT(*) OVER (PARTITION BY i.code) > 1
+            AND MAX(i.actuel) OVER (PARTITION BY i.code) = 1
+            AND i.actuel = 0
+          THEN 0 ELSE 1 END ok
+      FROM
+      (
+-- les CONTRACTUELS  
+       SELECT
           ct.no_dossier_pers                                 code,
           CASE -- lien entre le contrat de travail Mangue et le statut d'intervenant OSE
             WHEN ct.c_type_contrat_trav IN ('MC','MA')                          THEN 'ASS_MI_TPS'
             WHEN ct.c_type_contrat_trav IN ('C3030','C3031','C3032','C3033','C3034','C3035','C3036')    THEN 'ATER'
             WHEN ct.c_type_contrat_trav IN ('C3037','C3038','C3039','C3040','C3041','C3042','C3043')    THEN 'ATER_MI_TPS'
-			WHEN (ct.c_type_contrat_trav IN ('CN322') and cav.c_grade = '6904')  THEN 'DOCTOR'
-			WHEN (ct.c_type_contrat_trav IN ('CN322','COMDOC') and cav.c_grade = '6902')  THEN 'NON_AUTORISE'
-            WHEN ct.c_type_contrat_trav IN ('DO','C0322','CN109','COMDOC')       THEN 'DOCTOR'
-            WHEN (ct.c_type_contrat_trav IN ('C3094','CDI02') and cav.num_quot_recrutement=100) THEN 'ENS_CONTRACT'
-            WHEN (ct.c_type_contrat_trav IN ('C3094','CDI02') and cav.num_quot_recrutement<100) THEN 'ENS_CONTRACT_50'
+            WHEN ct.c_type_contrat_trav IN ('DO','CN322','C0322','CN109','COMDOC')       THEN 'DOCTOR'
+            WHEN ct.c_type_contrat_trav IN ('CDI02')                    THEN 'ENS_CONTRACT'
+            -- P8 
+            WHEN (ct.c_type_contrat_trav IN ('C3094','PN') and cav.num_quot_recrutement=100)                 THEN 'ENS_CONTRACT'
+            WHEN (ct.c_type_contrat_trav IN ('C3094','PN') and cav.num_quot_recrutement<100)                 THEN 'ENS_CONTRACT_50'
             WHEN ct.c_type_contrat_trav IN ('LT','LB','C2046')                   THEN 'LECTEUR'
             WHEN ct.c_type_contrat_trav IN ('MB','MP','C2043')                   THEN 'MAITRE_LANG'
-            WHEN ct.c_type_contrat_trav IN ('CDI01','C3066','C3097','C6')        THEN 'BIATSS'
-    	    WHEN (ct.c_type_contrat_trav like 'COMU%' or ct.c_type_contrat_trav IN ('CA','COMCDI','C0701')) THEN 'NON_AUTORISE'   
-			ELSE 'BIATSS' 
-		    END                                         				  						z_statut_id, 	 		   
-		  cnu.c_section_cnu																		z_discipline_id_cnu, -- cnu = grhum.CNU@dbl_grhum
+            WHEN ct.c_type_contrat_trav IN ('CDI01','C3066','C3097','C6')       THEN 'BIATSS'
+           -- WHEN (ct.c_type_contrat_trav like 'COMU%' or ct.c_type_contrat_trav IN ('COMCDI','C0701')) THEN 'NON_AUTORISE'
+           -- à faire confirmer par Véronique pour le C0104 en BIATSS ou NON AUTORISE
+		   WHEN (ct.c_type_contrat_trav like 'COMU%' or ct.c_type_contrat_trav IN ('CA','COMCDI','C0701')) THEN 'NON_AUTORISE'   
+		   --ELSE 'AUTRES' (vu avec IL le 31/10/2018)
+			ELSE 'BIATSS'
+          END                                                statut,
+          cnu.c_section_cnu                                  z_discipline_id_cnu,
           case when cnu.c_sous_section_cnu like '00' then null else cnu.c_sous_section_cnu end  z_discipline_id_sous_cnu, 
-          null as                               												z_discipline_id_spe_cnu,
-          CAV.c_disc_second_degre                        										z_discipline_id_dis2deg,
-		  ct.no_dossier_pers || '-c-' || CAV.no_SEQ_CONTRAT                                     source_code,  
-		    COALESCE(CAV.d_deb_contrat_av,to_date('01/01/1900', 'dd/mm/YYYY'))                  validite_debut, 
-		    COALESCE(CAV.d_fin_contrat_av,to_date('01/01/9999', 'dd/mm/YYYY'))                  validite_fin 
-		  FROM
-          mangue.contrat_avenant@dbl_grhum   CAV
-          JOIN mangue.contrat@dbl_grhum   ct ON ct.NO_SEQ_CONTRAT = CAV.NO_SEQ_CONTRAT
-		  JOIN mangue.ULHN_V_DERNIER_CONTRAT@dbl_grhum   vd  -- Vu ULHN pour n'avoir que le dernier contrat
-		  ON vd.no_seq_contrat = cav.no_seq_contrat AND vd.no_individu = ct.no_dossier_pers
-		  LEFT JOIN grhum.CNU@dbl_grhum    				cnu ON CAV.no_cnu = cnu.no_cnu
-			WHERE CAV.d_deb_contrat_av-184 <= SYSDATE    
-            AND   CAV.TEM_ANNULATION <> 'O'
-UNION ALL
--- les TITULAIRES   
-    SELECT
-          a.no_dossier_pers                                  				code,   
+          --cnu.c_sous_section_cnu                             z_discipline_id_sous_cnu,
+          null as                                z_discipline_id_spe_cnu,
+          CAV.c_disc_second_degre                            z_discipline_id_dis2deg,
+          CAV.d_fin_contrat_av                               date_fin,
+          CASE WHEN
+            SYSDATE BETWEEN CAV.d_deb_contrat_av-1 AND COALESCE(CAV.d_fin_contrat_av,SYSDATE)+1
+          THEN 1 ELSE 0 END                                  actuel
+        FROM
+          mangue.contrat_avenant@COCKTAIL CAV
+          JOIN mangue.contrat@COCKTAIL ct ON ct.NO_SEQ_CONTRAT = CAV.NO_SEQ_CONTRAT
+          --
+          JOIN mangue.affectation@COCKTAIL a ON a.no_dossier_pers = ct.no_dossier_pers
+          --ct.no_dossier_pers = CAV.no_dossier_pers AND ct.no_contrat_travail = CAV.no_contrat_travail
+          LEFT JOIN grhum.CNU@COCKTAIL    cnu                ON CAV.no_cnu = cnu.no_cnu
+        WHERE -- on sélectionne les données même 6 mois avant et 6 mois après
+         -- SYSDATE BETWEEN CAV.d_deb_contrat_av-184 AND COALESCE(CAV.d_fin_contrat_av,SYSDATE)+184
+         SYSDATE BETWEEN CAV.d_deb_contrat_av-184 AND COALESCE(CAV.d_fin_contrat_av+184,SYSDATE)
+              -- !!!! seulement si on ne veut que les avenants en cours (contradictoire avec ci-dessus)
+                          AND CAV.D_DEB_CONTRAT_AV <= SYSDATE
+                          AND (   CAV.D_FIN_CONTRAT_AV IS NULL
+                            --Benouah le 11/07/2019 
+                            -- on ajoute 6 mois apres la fin du contrat
+                            --OR CAV.D_FIN_CONTRAT_AV + 1 >= SYSDATE)
+                               OR CAV.D_FIN_CONTRAT_AV + 545 >= SYSDATE)
+              -- !!!!                
+          AND CAV.TEM_ANNULATION <> 'O'    
+-- on ne tient compte que de l'affectation PRINCIPALE en cours
+    AND ((((A.d_fin_affectation is null) AND (A.d_deb_affectation<=to_date(to_char(sysdate,'dd/mm/yyyy'),'dd/mm/yyyy'))
+                                           AND (A.tem_valide='O'))
+            OR
+            ((A.d_deb_affectation<=to_date(to_char(sysdate,'dd/mm/yyyy'),'dd/mm/yyyy'))
+                                           --Benouah le 11/07/2019 
+                                          -- on ajoute 6 mois apres la fin du contrat
+                                          --AND (A.d_fin_affectation>=to_date(to_char(sysdate,'dd/mm/yyyy'),'dd/mm/yyyy'))
+                                          AND (A.d_fin_affectation+545>=to_date(to_char(sysdate,'dd/mm/yyyy'),'dd/mm/yyyy'))
+                                          AND (A.tem_valide='O'))
+           )
+            AND A.tem_principale = 'O'                            
+         )
+UNION
+-- les TITULAIRES    = OK pas de doublons à ce niveau OK
+        SELECT
+          a.no_dossier_pers                                  code,
           CASE -- lien entre le type de population MANGUE et le statut d'intervenant OSE
             WHEN CA.c_type_population IN ('DA','OA','DC')              THEN 'ENS_2ND_DEG'
             WHEN CA.c_type_population IN ('SA')                        THEN 'ENS_CH'
-            WHEN CA.c_type_population IN ('AE','BA','IA','MA')         THEN 'BIATSS'
-          --ELSE 'AUTRES' -- Choix RH ULHN 
-		  	ELSE 'BIATSS'
-			END 																				z_statut_id,  
-		  cnu.c_section_cnu  		                            								z_discipline_id_cnu,
-          case when cnu.c_sous_section_cnu like '00' then null else cnu.c_sous_section_cnu end  z_discipline_id_sous_cnu, 
-          null as                                  			  									z_discipline_id_spe_cnu,
-          psc.c_disc_sd_degre                                 									z_discipline_id_dis2deg,
-          a.no_dossier_pers || '-a-' || a.no_seq_affectation          						    source_code,
-		  COALESCE(a.d_deb_affectation,to_date('01/01/1900', 'dd/mm/YYYY'))  					validite_debut,
-          COALESCE(a.d_fin_affectation,to_date('01/01/9999', 'dd/mm/YYYY')) 					validite_fin
-		FROM
-          mangue.affectation@dbl_grhum  a
-		  JOIN grhum.individu_ulr@dbl_grhum individu ON individu.no_individu=a.no_dossier_pers 
-          LEFT JOIN  mangue.carriere@dbl_grhum  CA   ON CA.no_dossier_pers = a.no_dossier_pers 
-          LEFT JOIN  mangue.carriere_specialisations@dbl_grhum  psc  ON psc.no_dossier_pers = a.no_dossier_pers
+            WHEN CA.c_type_population IN ('AE','BA','IA','MA')           THEN 'BIATSS'
+            --ELSE 'AUTRES' (vu avec IL le 31/10/2018)
+			ELSE 'BIATSS'
+          END                                                      statut,
+          cnu.c_section_cnu                                  z_discipline_id_cnu,
+          case when cnu.c_sous_section_cnu like '00' then null else cnu.c_sous_section_cnu end                             z_discipline_id_sous_cnu, 
+          --cnu.c_sous_section_cnu                             z_discipline_id_sous_cnu,
+          null as                                  z_discipline_id_spe_cnu,
+          psc.c_disc_sd_degre                                 z_discipline_id_dis2deg,
+          a.d_fin_affectation                                date_fin,
+          CASE WHEN
+            SYSDATE BETWEEN a.d_deb_affectation-1 AND COALESCE(a.d_fin_affectation,SYSDATE)+1
+          THEN 1 ELSE 0 END                                  actuel
+        FROM
+          MANGUE.affectation@COCKTAIL a
+          LEFT
+          JOIN  MANGUE.carriere@COCKTAIL CA ON CA.no_dossier_pers = a.no_dossier_pers --AND CA.no_seq_carriere = a.no_seq_carriere (190 individus dont le CA.no_seq_carriere est différent du a.no_seq_carriere !!!)
+          LEFT JOIN  MANGUE.carriere_specialisations@COCKTAIL psc  ON psc.no_dossier_pers = a.no_dossier_pers
+          --AND psc.no_seq_carriere = a.no_seq_carriere
           AND COALESCE(a.d_fin_affectation,SYSDATE) BETWEEN COALESCE(psc.spec_debut,SYSDATE) AND COALESCE(psc.spec_fin,SYSDATE)
-		  LEFT JOIN grhum.CNU@dbl_grhum     cnu      ON psc.no_cnu = cnu.no_cnu
-      -- //////////////// tout ça pke no_seq_carriere pas (ou mal) renseigné dans affectation : 
-		  INNER JOIN mangue.element_CARRIERE@dbl_grhum  EC           ON     EC.NO_DOSSIER_PERS = a.no_dossier_pers
-          INNER JOIN
+--
+        LEFT JOIN grhum.CNU@COCKTAIL    cnu                ON psc.no_cnu = cnu.no_cnu
+      -- //////////////// tout ça pke no_seq_carriere pas (ou mal) renseigné dans affectation
+      INNER JOIN mangue.element_CARRIERE@COCKTAIL EC
+                       ON     EC.NO_DOSSIER_PERS = a.no_dossier_pers
+                       inner join
      (
-     select no_dossier_pers, max(d_effet_element) as maxeffet from mangue.element_CARRIERE@dbl_grhum 
+     select no_dossier_pers, max(d_effet_element) as maxeffet from MANGUE.element_CARRIERE@COCKTAIL
      WHERE  ((d_fin_element IS NULL) OR (d_fin_element >= TO_DATE(TO_CHAR(sysdate,'DD/MM/YYYY'),'DD/MM/YYYY')))
      AND   d_effet_element <= TO_DATE(TO_CHAR(sysdate,'DD/MM/YYYY'),'DD/MM/YYYY')
      AND    tem_valide = 'O'
      group by NO_DOSSIER_PERS
      ) ec2 on ec.no_dossier_pers = ec2.no_dossier_pers and ec.d_effet_element=ec2.maxeffet
-                       AND EC.TEM_PROVISOIRE='N'
-                       AND EC.TEM_VALIDE='O'
+                        AND EC.TEM_PROVISOIRE='N'
+                        AND EC.TEM_VALIDE='O'
                        AND CA.NO_SEQ_CARRIERE = EC.NO_SEQ_CARRIERE
-                       AND CA.D_DEB_CARRIERE <= SYSDATE
-                       AND (   CA.D_FIN_CARRIERE IS NULL
-                            OR CA.D_FIN_CARRIERE + 1 >= SYSDATE)
-                       AND ca.tem_valide = 'O'
+                        AND CA.D_DEB_CARRIERE <= SYSDATE
+                          AND (   CA.D_FIN_CARRIERE IS NULL
+                               OR CA.D_FIN_CARRIERE + 1 >= SYSDATE)
+                          AND ca.tem_valide = 'O'
         -- on ne tient compte que de l'affectation PRINCIPALE en cours
     AND ((((A.d_fin_affectation is null) AND (A.d_deb_affectation<=to_date(to_char(sysdate,'dd/mm/yyyy'),'dd/mm/yyyy'))
-                                         AND (A.tem_valide='O'))
+                                           AND (A.tem_valide='O'))
             OR
             ((A.d_deb_affectation<=to_date(to_char(sysdate,'dd/mm/yyyy'),'dd/mm/yyyy'))
-                                         AND (A.d_fin_affectation>=to_date(to_char(sysdate,'dd/mm/yyyy'),'dd/mm/yyyy'))
-                                         AND (A.tem_valide='O'))
+                                          AND (A.d_fin_affectation>=to_date(to_char(sysdate,'dd/mm/yyyy'),'dd/mm/yyyy'))
+                                          AND (A.tem_valide='O'))
            )
             AND A.tem_principale = 'O'                            
          )
         -- \\\\\\\\\\\\\\\\\\\\\
-        WHERE a.d_deb_affectation-184 <= SYSDATE 
-    UNION ALL
+        WHERE -- on sélectionne les données même 6 mois avant et 6 mois après
+          SYSDATE BETWEEN a.d_deb_affectation-184 AND COALESCE(a.d_fin_affectation,SYSDATE)+184
+
+    UNION
  -- ==========================
  -- les HEBERGES en MAD entrante
  SELECT distinct cth.no_dossier_pers code,
-		'conv_mad' as 						z_statut_id,  				
-		'00'                                z_discipline_id_cnu,
-        null as 							z_discipline_id_sous_cnu,
-        null as         	                z_discipline_id_spe_cnu,
-        null as             	            z_discipline_id_dis2deg,
-		  --ch.no_individu || '-h-' || ch.no_seq_chercheur                       source_code, Caen-Harpege
-		  cth.no_dossier_pers || '-h-' || cth.no_SEQ_AFFECTATION                 source_code,  --=> no_seq est null dans mangue !!!
-		  COALESCE(CTH.D_DEB_CONTRAT_INV,to_date('01/01/1900', 'dd/mm/YYYY'))    validite_debut,
-		  COALESCE(CTH.D_FIN_CONTRAT_INV,to_date('01/01/9999', 'dd/mm/YYYY'))    validite_fin
- 	FROM mangue.CONTRAT_HEBERGES@dbl_grhum  CTH
-	WHERE CTH.c_type_contrat_trav like 'CN112' -- contrat MAD entrante
-                  AND cth.tem_valide = 'O'
-                  AND CTH.D_DEB_CONTRAT_INV-184 <= SYSDATE
-	UNION ALL
+		'conv_mad' as statut,
+		'00'                                  z_discipline_id_cnu,
+          null as 							z_discipline_id_sous_cnu,
+          null as                                  z_discipline_id_spe_cnu,
+          null as                                  z_discipline_id_dis2deg,
+          CTH.D_FIN_CONTRAT_INV                                date_fin,
+          CASE WHEN
+            SYSDATE BETWEEN CTH.D_DEB_CONTRAT_INV-1 AND COALESCE(CTH.D_FIN_CONTRAT_INV,SYSDATE)+160
+          THEN 1 ELSE 0 END                                  actuel
+ 	FROM mangue.CONTRAT_HEBERGES@COCKTAIL CTH
+			where  cth.tem_valide = 'O'
+                          --AND (to_date(CTH.D_FIN_CONTRAT_INV)+1 > SYSDATE OR cth.d_fin_contrat_inv IS NULL)
+	UNION
 -- ===================
--- les VACATAIRES 
+ -- les VACATAIRES -==================
   SELECT
-  vac.NO_DOSSIER_PERS 															code,
-		  CASE -- lien entre la "profession" du vacataire et le statut d'intervenant OSE
-            WHEN prof.pro_libelle IN ('TITU DE LA FCTION PUBL')            	THEN 'SALAR_PUBLIC'
-            WHEN prof.pro_libelle IN ('AGT NON TITU DE LA FCTION PUBL')    	THEN 'SALAR_PUBLIC_CONT'
-            WHEN prof.pro_libelle IN ('ACTIVITE SECT PRIVE')              	THEN 'SALAR_PRIVE'
-			WHEN prof.pro_libelle IN ('ENSEIG DS ETABL PRIVE')           	THEN 'SALAR_PUBLIC_PRIV'
-            WHEN prof.pro_libelle IN ('ACTIV NON SALARIE')    		    	THEN 'AUTO_LIBER_INDEP'
-            WHEN prof.pro_libelle IN ('ETUDIANT 3EME CYCLE')   				THEN 'SS_ETUD'
-            WHEN prof.pro_libelle IN ('RETRAITE')                    		THEN 'RETRAITE'
-            WHEN prof.pro_libelle IN ('BENEVOLE')                    		THEN 'BENEVOLE'
-            --WHEN prof.pro_libelle IN ('INTERMITTENT DU SPECTACLE')   then 'INTERMITTENT_SPECT' correction ULHN 18022021
-            WHEN prof.pro_libelle IN ('PROFESSIONNELS DU SPECTACLE') 		THEN 'PROF_SPECT'
-			WHEN prof.pro_libelle IN ('AUTEURS, INTERPRETES')        		THEN 'AUT_INTER'			 -- ULHN
-			WHEN prof.pro_libelle IN ('CONFERENCIERS')               		THEN 'CONFERENCIER'		     -- ULHN
-            WHEN prof.pro_libelle IN ('DIRECTION D''ENTREPRISE')     		THEN 'DIRIGEANT_ENT'
-			WHEN prof.pro_libelle IN ('RESIDENT ETRANGER')           		THEN 'SALAR_ETRANGER'
+  vac.NO_DOSSIER_PERS code,
+  --'AUTRES'            statut, -- pas de statut de défini ici
+  CASE -- lien entre la "profession" du vacataire et le statut d'intervenant OSE
+            WHEN prof.pro_libelle IN ('TITU DE LA FCTION PUBL')            THEN 'SALAR_PUBLIC'
+            WHEN prof.pro_libelle IN ('AGT NON TITU DE LA FCTION PUBL')    THEN 'SALAR_PUBLIC_CONT'
+            WHEN prof.pro_libelle IN ('ACTIVITE SECT PRIVE')               THEN 'SALAR_PRIVE'
+			WHEN prof.pro_libelle IN ('ENSEIG DS ETABL PRIVE')             THEN 'SALAR_PUBLIC_PRIV'
+            WHEN prof.pro_libelle IN ('ACTIV NON SALARIE')           THEN 'AUTO_LIBER_INDEP'
+            WHEN prof.pro_libelle IN ('ETUDIANT 3EME CYCLE')         then 'SS_ETUD'
+            WHEN prof.pro_libelle IN ('RETRAITE')                    then 'RETRAITE'
+            WHEN prof.pro_libelle IN ('BENEVOLE')                    then 'BENEVOLE'
+            WHEN prof.pro_libelle IN ('INTERMITTENT DU SPECTACLE')   then 'INTERMITTENT_SPECT'
+            WHEN prof.pro_libelle IN ('DIRECTION D''ENTREPRISE')     then 'DIRIGEANT_ENT'
+			WHEN prof.pro_libelle IN ('RESIDENT ETRANGER')     then 'SALAR_ETRANGER'
+            WHEN prof.pro_libelle IN ('TRAVAILLEUR INDEPENDANT')     then 'TRAV_INDE'
             ELSE 'AUTRES' 
-          END 										        					z_statut_id,				--statut_id_contrat_trav,
-  -- ajout 20190129 : vacataires sans CNU
-   nvl(cnu.c_section_cnu,'00')         											z_discipline_id_cnu,
-   case when cnu.c_sous_section_cnu like '00' then null else cnu.c_sous_section_cnu end  z_discipline_id_sous_cnu, 
-   '00' as                                  									z_discipline_id_spe_cnu,
-   '000' as            															z_discipline_id_dis2deg,
-   vac.no_dossier_pers || '-v-' || vac.vac_id                       			source_code, 
-	COALESCE(vac.D_DEB_VACATION,to_date('01/01/1900', 'dd/mm/YYYY')) 			validite_debut,
-	COALESCE(vac.D_FIN_VACATION,to_date('01/01/9999', 'dd/mm/YYYY')) 			validite_fin
+          END 
+          statut,
+   cnu.c_section_cnu         z_discipline_id_cnu,
+   case when cnu.c_sous_section_cnu like '00' then null else cnu.c_sous_section_cnu end                             z_discipline_id_sous_cnu, 
+   '00' as                                  z_discipline_id_spe_cnu,
+   '000' as            z_discipline_id_dis2deg,
+   vac.D_FIN_VACATION date_fin,
+   CASE WHEN
+      --SYSDATE BETWEEN vac.D_DEB_VACATION AND vac.D_FIN_VACATION
+      --benouah le 15/07/2019
+       SYSDATE BETWEEN vac.D_DEB_VACATION AND vac.D_FIN_VACATION+545
+   THEN 1 ELSE 0 END  actuel
 FROM 
-    MANGUE.VACATAIRES@dbl_grhum  vac
+    MANGUE.VACATAIRES@COCKTAIL vac
 JOIN
-    GRHUM.INDIVIDU_ULR@dbl_grhum  ind
+    GRHUM.INDIVIDU_ULR@COCKTAIL ind
     ON (ind.NO_INDIVIDU=vac.NO_DOSSIER_PERS)
-    LEFT JOIN grhum.CNU@dbl_grhum     cnu                ON vac.no_cnu = cnu.no_cnu
-	LEFT JOIN grhum.PROFESSION@dbl_grhum     prof        ON vac.pro_code = prof.PRO_CODE
+    LEFT JOIN grhum.CNU@COCKTAIL    cnu                ON vac.no_cnu = cnu.no_cnu
+	LEFT JOIN grhum.PROFESSION@COCKTAIL    prof        ON vac.pro_code = prof.PRO_CODE
 WHERE
     ind.IND_ACTIVITE='VACATAIRE'
+	-- ************** on ne prend que les vacataires en cours
 		AND vac.tem_valide = 'O'
-        AND vac.D_DEB_VACATION-184 <= SYSDATE
--- fin vacataires
-)t
-), -- ICI fermeture de la parenthèse WITH i AS
--- ******************** POUR TOUS LES INTERVENANTS *******************
- --ATTENTION VU AVEC RH ULHN : on ne prend les infos IBAN QUE pour les vacataires
+    --benouah le 15/07/2019
+   AND SYSDATE BETWEEN vac.D_DEB_VACATION AND vac.D_FIN_VACATION+545
+    --    AND SYSDATE BETWEEN vac.D_DEB_VACATION AND vac.D_FIN_VACATION
+	-- **************
+      ) i
+    ) i WHERE ok = 1
+  )i WHERE ok2 = 1 GROUP BY code,statut
+),
 comptes (no_individu, rank_compte, nombre_comptes, IBAN, BIC) AS (
   SELECT no_dossier_pers,
     dense_rank() over(partition by no_dossier_pers order by d_creation) rank_compte,
     count(*) over(partition by no_dossier_pers)  nombre_comptes,
     decode(ind_activite, 'VACATAIRE', IBAN, null) IBAN,
     decode(ind_activite, 'VACATAIRE', BIC, null) BIC
-  FROM GRHUM.V_ULH_INDIVIDU_BANQUE@dbl_grhum            
+  FROM GRHUM.V_ULH_INDIVIDU_BANQUE@COCKTAIL           
 )
-  SELECT DISTINCT
-  /* Code de l'intervenant = numéro GRHUM */  
+	-- DEMANDE IL 15/10/2018 PAS INSEE NI ADRESSES POPULATION PERSONNELS ULH ////
+	-- tous les personnels hors vacataires et hébergés (puisque appel à table affectation)
+	-- NB. l'affectation des vacataires est indiquée dans la table VACATAIRES_AFFECTATION
+	-- NB. la structure d'affectation des hébergés est trouvée dans la table CONTRAT_HEBERGES
+  SELECT  
   ltrim(TO_CHAR(individu.no_individu,'99999999'))             code,
-  'Mangue'                                                    z_source_id,
-  i.source_code												  source_code,
-  ltrim(TO_CHAR(individu.no_individu,'99999999'))             utilisateur_code, -- supannEmpID 
-  /* Code affiché reprenant le numéro d'individu - Caen 2021 */
-  to_char(individu.no_individu)                                 code_rh,
-   /* Code structure Harpège (il sera plus tard transformé par la vue source en ID de strucutre OSE) Caen 2021 */
-	--sc.c_structure_n2                                       z_structure_id,
-			/* <=> */
-  /* Code structure ULHN */
-  uv_aff.struct_pere										  z_structure_id,
-  /* Code statut */	
-  i.z_statut_id                                  			  z_statut_id,
-  /* Récupération du grade actuel - fonction ULHN  */
-  grhum.ulh_ind_grade_en_cours@dbl_grhum (individu.no_individu) 		  z_grade_id,
-    /* Données nécessaires pour calculer la discipline - caen 2021 */
-  d.source_code                                                 z_discipline_id,
-  /* Données identifiantes de base */
-  CASE individu.c_civilite WHEN 'M.' THEN 'M.' ELSE 'Mme' END 	z_civilite_id,
-  initcap(individu.nom_usuel)                                 	nom_usuel,
-  initcap(individu.prenom)                                    	prenom,
-  individu.d_naissance                                        	date_naissance,
-  /* Données identifiantes complémentaires */
-  initcap(individu.nom_patronymique)                          	nom_patronymique,
-  individu.ville_de_naissance                                 	commune_naissance,
-  individu.c_pays_naissance                                   	z_pays_naissance_id,
-  individu.c_dept_naissance                                   	z_departement_naissance_id,
-  individu.c_pays_nationalite                                 	z_pays_nationalite_id,
-  /* Coordonnées : TEL pour etre sur d avoir un TEL_PRO  on prend un des trois - ULHN */
-  --tel_prf.no_telephone                                        		    tel_pro,
-  COALESCE (tel_prf.no_telephone,tel_prv.no_telephone,tel_mob.no_telephone) tel_pro,
-  tel_prv.no_telephone                                        	tel_perso,
-  uldap.mail 												   	email_pro,
-  CAST(NULL AS varchar2(255))                                 	email_perso,
-  /* Adresse   ---revision pour nouv connecteur*/
-	TRIM(UPPER(uv_ado.ADR_PRECISIONS))							adresse_precisions,
-	CAST(NULL AS varchar2(10))									adresse_numero,	
-    CAST(NULL AS varchar2(10))									z_adresse_numero_compl_id,
-    CAST(NULL AS varchar2(10))									z_adresse_voirie_id,
-    CAST(NULL AS varchar2(10)) 									adresse_voie, 
-    CAST(NULL AS varchar2(10))									adresse_lieu_dit,
-	uv_ado.CODE_POSTAL    				                        adresse_code_postal,
-    TRIM(uv_ado.ADRESSE_COMMUNE)                                adresse_commune,
-    uv_ado.PAYS                               				    z_adresse_pays_id,
-  /* INSEE */
-  TRIM(code_insee.no_insee) || TRIM(TO_CHAR(code_insee.cle_insee)) numero_insee,
-  CASE WHEN code_insee.no_insee IS NULL THEN NULL ELSE 0 END    numero_insee_provisoire,
-  /* Banque */  
-  comptes.iban                                                  iban,
-  comptes.bic                                                   bic,
-  0                                                             rib_hors_sepa,
-  /* 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,
-  /* Employeur */
-  CAST(NULL AS varchar2(255))                                   z_employeur_id,
-  /* DATES VALIDITE */
-  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
+  CASE individu.c_civilite WHEN 'M.' THEN 'M.' ELSE 'Mme' END z_civilite_id,
+  initcap(individu.nom_usuel)                                 nom_usuel,
+  initcap(individu.prenom)                                    prenom,
+  initcap(individu.nom_patronymique)                          nom_patronymique,
+  individu.d_naissance                                        date_naissance,
+  individu.c_pays_naissance                                   z_pays_naissance_id,
+  
+  individu.c_dept_naissance                                   z_dep_naissance_id,
+  'ZZZZ' as ville_naissance_code_insee,
+  individu.ville_de_naissance                                 ville_naissance_libelle,
+  individu.c_pays_nationalite                                 z_pays_nationalite_id,
+  tel_prf.no_telephone                                            tel_pro,
+  --tel_prv.no_telephone                                            tel_mobile,
+  '000' as                         tel_mobile,
+  
+  -- ////
+ /* null as                                   z_dep_naissance_id,
+  null as  ville_naissance_code_insee,
+  null as                               ville_naissance_libelle,
+  null as                                 z_pays_nationalite_id,
+  tel_prf.no_telephone                                            tel_pro,
+  null as                                            tel_mobile,
+  */
+  -- ////
+ -- ULH_UCBN_LDAP.hid2mail(individu.no_individu)  email,
+  mail.cem_email||'@'||cem_domaine email,
+  --
+    i.statut                                                    z_statut_id,
+  decode(grhum.Trouve_lc_structure_pere@COCKTAIL(s.c_structure),'UP8',S.LC_STRUCTURE,grhum.Trouve_lc_structure_pere@COCKTAIL(s.c_structure)) AS z_structure_id,  
+  --s.LC_structure AS z_structure_id,
+  ltrim(TO_CHAR(individu.no_individu,'99999999'))             source_code,
+  
+  code_insee.no_insee                                         numero_insee,
+  TO_CHAR(code_insee.cle_insee)                               numero_insee_cle,
+  CASE WHEN code_insee.no_insee IS NULL THEN NULL ELSE 0 END  numero_insee_provisoire,
+  comptes.iban                                                iban,
+  comptes.bic                                                 bic,
+  
+  -- ////
+  /*null as                                        numero_insee,
+  null as                               numero_insee_cle,
+  null as  numero_insee_provisoire,
+  null as                                              iban,
+  null as                                               bic,
+  */
+  -- ////
+  GRHUM.ULH_IND_GRADE_EN_COURS@COCKTAIL(individu.no_individu)     as               z_grade_id,
+  i.z_discipline_id_cnu                                       z_discipline_id_cnu,
+  i.z_discipline_id_sous_cnu                                  z_discipline_id_sous_cnu,
+  i.z_discipline_id_spe_cnu                                   z_discipline_id_spe_cnu,
+  i.z_discipline_id_dis2deg                                   z_discipline_id_dis2deg,
+ utl_raw.cast_to_varchar2((nlssort(to_char(individu.nom_usuel || ' ' || individu.nom_patronymique || ' ' || individu.prenom), 'nls_sort=binary_ai'))) critere_recherche,
+  i.date_fin
 FROM
   i
-  JOIN grhum.individu_ulr@dbl_grhum  			individu ON individu.no_individu        = i.code
-  JOIN grhum.ULH_V_STRUCT_AFF_TOUS@dbl_grhum  	uv_aff 	 ON uv_aff.no_individu			= i.code 
-  LEFT JOIN grhum.ulh_ldap@dbl_grhum			uldap 	 ON uldap.no_individu    		= i.code  -- TABLE ULH_LDAP ULHN
-  LEFT JOIN grhum.personne_telephone@dbl_grhum  tel_prf  ON tel_prf.pers_id = individu.pers_id  AND tel_prf.type_no='TEL' AND tel_prf.type_tel='PRF' AND tel_prf.tel_principal='O' 
-  LEFT JOIN grhum.personne_telephone@dbl_grhum  tel_prv  ON tel_prv.pers_id = individu.pers_id  AND tel_prv.type_no='TEL' AND tel_prv.type_tel='PRV' AND tel_prv.tel_principal='O'
-  LEFT JOIN grhum.personne_telephone@dbl_grhum  tel_mob  ON tel_mob.pers_id = individu.pers_id  AND tel_mob.type_no='MOB' AND tel_mob.type_tel='PRV' AND tel_mob.tel_principal='O'
-  LEFT JOIN grhum.code_insee@dbl_grhum       code_insee  ON code_insee.no_dossier_pers  = i.code
-  LEFT JOIN comptes                      				 ON comptes.no_individu        = i.code AND comptes.rank_compte = comptes.nombre_comptes
-   --**pour Adresses ***-
-  LEFT JOIN grhum.ULH_V_ADR_CONN_OSE@dbl_grhum 	uv_ado 	 ON uv_ado.intervenant_id = i.code
-  -- Caen 2021 Modifs pour Disciplines : 
-  LEFT JOIN discipline d ON
-    d.histo_destruction IS NULL
-    AND 1 = CASE WHEN -- si rien n'a été défini
-      COALESCE( i.z_discipline_id_cnu, i.z_discipline_id_sous_cnu, i.z_discipline_id_spe_cnu, i.z_discipline_id_dis2deg ) IS NULL
-      AND d.source_code = '00'
-    THEN 1 WHEN -- si une CNU ou une spécialité a été définie...
-      COALESCE( i.z_discipline_id_cnu, i.z_discipline_id_sous_cnu, i.z_discipline_id_spe_cnu ) IS NOT NULL
-    THEN CASE WHEN -- alors on teste par les sections CNU et spécialités
-      (
-           ',' || d.CODES_CORRESP_2 || ',' LIKE '%,' || i.z_discipline_id_cnu || NVL(i.z_discipline_id_sous_cnu,'') || ',%'
-        OR ',' || d.CODES_CORRESP_2 || ',' LIKE '%,' || i.z_discipline_id_cnu || NVL(i.z_discipline_id_sous_cnu,'00') || ',%'
-      )
-      AND ',' || NVL(d.CODES_CORRESP_3,'000') || ',' LIKE  '%,' || NVL(CASE WHEN d.CODES_CORRESP_3 IS NOT NULL THEN i.z_discipline_id_spe_cnu ELSE NULL END,'000') || ',%'
-    THEN 1 ELSE 0 END ELSE CASE WHEN -- sinon on teste par les disciplines du 2nd degré
-      i.z_discipline_id_dis2deg IS NOT NULL
-      AND ',' || NVL(d.CODES_CORRESP_4,'') || ',' LIKE  '%,' || i.z_discipline_id_dis2deg || ',%'
-    THEN 1 ELSE 0 END END -- fin du test
+  JOIN grhum.individu_ulr@COCKTAIL         individu           ON individu.no_individu           = i.code
+   LEFT JOIN grhum.personne_telephone@COCKTAIL tel_prf  ON tel_prf.pers_id = individu.pers_id  AND tel_prf.type_no='TEL' AND tel_prf.type_tel='PRF' AND tel_prf.tel_principal='O' 
+  LEFT JOIN grhum.personne_telephone@COCKTAIL tel_prv  ON tel_prv.pers_id = individu.pers_id  AND tel_prv.type_no='MOB' AND tel_prv.type_tel='PRV' AND tel_prv.tel_principal='O'
+  LEFT JOIN grhum.code_insee@COCKTAIL      code_insee         ON code_insee.no_dossier_pers     = i.code
+   LEFT JOIN grhum.compte@COCKTAIL compte ON  compte.pers_id = individu.pers_id 
+  LEFT JOIN grhum.compte_email@COCKTAIL mail ON mail.cpt_ordre = compte.cpt_ordre
+  LEFT JOIN                             comptes            ON comptes.no_individu            = i.code AND comptes.rank_compte = comptes.nombre_comptes
+  -- AJOUT !!!!!!
+  -- pour récup structure_pere
+  inner JOIN MANGUE.affectation@COCKTAIL A ON (i.code=A.no_dossier_pers)
+      inner JOIN grhum.structure_ulr@COCKTAIL S ON (A.c_structure=S.c_structure)
+    INNER join grhum.personnel_ulr@COCKTAIL P on (i.code=P.no_dossier_pers)
+     where
+         -- on ne tient compte que de l'affectation PRINCIPALE en cours
+    A.tem_principale = 'O'
+    and A.tem_valide='O'
+    and A.d_deb_affectation<=to_date(to_char(sysdate,'dd/mm/yyyy'),'dd/mm/yyyy')
+    --and (A.d_fin_affectation is null OR A.d_fin_affectation+184 >=to_date(to_char(sysdate,'dd/mm/yyyy'),'dd/mm/yyyy'))
+    --Benouahle 15/07/2019
+    --and (A.d_fin_affectation is null OR A.d_fin_affectation >=to_date(to_char(sysdate+184, 'dd/mm/yyyy'),'dd/mm/yyyy'))
+    and (A.d_fin_affectation is null OR A.d_fin_affectation +545>=to_date(to_char(sysdate, 'dd/mm/yyyy'),'dd/mm/yyyy'))
+UNION
+	        -- les HEBERGES en MAD entrante
+SELECT
+  ltrim(TO_CHAR(individu.no_individu,'99999999'))             code,
+  CASE individu.c_civilite WHEN 'M.' THEN 'M.' ELSE 'Mme' END z_civilite_id,
+  initcap(individu.nom_usuel)                                 nom_usuel,
+  initcap(individu.prenom)                                    prenom,
+  initcap(individu.nom_patronymique)                          nom_patronymique,
+  individu.d_naissance                                        date_naissance,
+  individu.c_pays_naissance                                   z_pays_naissance_id,
+  individu.c_dept_naissance                                   z_dep_naissance_id,
+  'ZZZZ' as ville_naissance_code_insee,
+  individu.ville_de_naissance                                 ville_naissance_libelle,
+  individu.c_pays_nationalite                                 z_pays_nationalite_id,
+  tel_prf.no_telephone                                            tel_pro,
+  '000' as tel_mobile,
+  --tel_prv.no_telephone                                            tel_mobile,
+  -- !!! attention !!! prendre la 1ère ligne ci-dessous lors du passage en PROD OSE
+  --ULH_UCBN_LDAP.hid2mail(individu.no_individu)  email,
+  mail.cem_email||'@'||cem_domaine email,
+  --mel.no_e_mail email,
+  --CASE individu.ind_activite WHEN 'VACATAIRE' THEN 'ingrid.laignel@univ-lehavre.fr' ELSE ULH_UCBN_LDAP.hid2mail(individu.no_individu) END  email,
   --
-WHERE
-  i.validite_fin+1 >= (SYSDATE - (365*2));
+    i.statut                                                    z_statut_id,
+  -- appel à une fonction renvoyant l'affectation principale du vacataire
+  decode(grhum.Trouve_lc_structure_pere@COCKTAIL(s.c_structure),'UP8',S.LC_STRUCTURE,grhum.Trouve_lc_structure_pere@COCKTAIL(s.c_structure)) AS z_structure_id,  
+  --S.LC_STRUCTURE AS z_structure_id, 
+  ltrim(TO_CHAR(individu.no_individu,'99999999'))             source_code,
+  individu.ind_no_insee                                         numero_insee,
+  TO_CHAR(individu.ind_cle_insee)                               numero_insee_cle,
+  CASE WHEN individu.ind_no_insee IS NULL THEN NULL ELSE 0 END  numero_insee_provisoire,
+  comptes.iban                                                iban,
+  comptes.bic                                                 bic,
+  null     as               z_grade_id,
+  i.z_discipline_id_cnu                                       z_discipline_id_cnu,
+  i.z_discipline_id_sous_cnu                                  z_discipline_id_sous_cnu,
+  i.z_discipline_id_spe_cnu                                   z_discipline_id_spe_cnu,
+  i.z_discipline_id_dis2deg                                   z_discipline_id_dis2deg,
+ utl_raw.cast_to_varchar2((nlssort(to_char(individu.nom_usuel || ' ' || individu.nom_patronymique || ' ' || individu.prenom), 'nls_sort=binary_ai'))) critere_recherche,
+  i.date_fin
+FROM
+  i
+  JOIN grhum.individu_ulr@COCKTAIL         individu           ON individu.no_individu           = i.code
+  --LEFT JOIN grhum.individu_e_mail@COCKTAIL individu_e_mail    ON individu_e_mail.no_individu    = i.code
+  -- pour les vacataires : règle de saisie donnée aux RH (par IL) : TEL + PRV
+  JOIN mangue.CONTRAT_HEBERGES@COCKTAIL CTH ON CTH.no_dossier_pers = i.code
+  inner JOIN grhum.structure_ulr@COCKTAIL S ON (CTH.c_structure=S.c_structure)
+  LEFT JOIN grhum.personne_telephone@COCKTAIL tel_prf  ON tel_prf.pers_id = individu.pers_id  AND tel_prf.type_no='TEL' AND tel_prf.type_tel='PRF' AND tel_prf.tel_principal='O' 
+  LEFT JOIN grhum.personne_telephone@COCKTAIL tel_prv  ON tel_prv.pers_id = individu.pers_id  AND tel_prv.type_no='MOB' AND tel_prv.type_tel='PRV' AND tel_prv.tel_principal='O'
+  --LEFT JOIN grhum.ulh_v_individu_e_mail@COCKTAIL  mel  ON mel.no_individu = i.code AND tadr_code='PERSO' AND rpa_valide='O' AND RPA_PRINCIPAL='O'
+  --LEFT JOIN grhum.code_insee@COCKTAIL      code_insee         ON code_insee.no_dossier_pers     = i.code
+   LEFT JOIN grhum.compte@COCKTAIL compte ON  compte.pers_id = individu.pers_id 
+  LEFT JOIN grhum.compte_email@COCKTAIL mail ON mail.cpt_ordre = compte.cpt_ordre
+  LEFT JOIN comptes ON comptes.no_individu = i.code AND comptes.rank_compte = comptes.nombre_comptes
+    --where CTH.c_type_contrat_trav like 'CN112'     -- on ne prend QUE les contrats de MAD entrante
+--
+  UNION
+        -- les VACATAIRES
+SELECT
+  ltrim(TO_CHAR(individu.no_individu,'99999999'))             code,
+  CASE individu.c_civilite WHEN 'M.' THEN 'M.' ELSE 'Mme' END z_civilite_id,
+  initcap(individu.nom_usuel)                                 nom_usuel,
+  initcap(individu.prenom)                                    prenom,
+  initcap(individu.nom_patronymique)                          nom_patronymique,
+  individu.d_naissance                                        date_naissance,
+  individu.c_pays_naissance                                   z_pays_naissance_id,
+  individu.c_dept_naissance                                   z_dep_naissance_id,
+  -- !!!! à mettre en char
+  -- en fait il y a une erreur dans la fonction ++++ on s'en moque de cette donnée !!
+  -- CAST (nvl(grhum.ULH_INSEE_COMMUNE@COCKTAIL(ville_de_naissance), '00000') AS VARCHAR2 (10))         ville_naissance_code_insee,
+  'ZZZZ' as ville_naissance_code_insee,
+  individu.ville_de_naissance                                 ville_naissance_libelle,
+  individu.c_pays_nationalite                                 z_pays_nationalite_id,
+  tel_prf.no_telephone                                            tel_pro,
+ -- tel_prv.no_telephone                                            tel_mobile,
+  '000' as                         tel_mobile,
+  -- !!! attention !!! prendre la 1ère ligne ci-dessous lors du passage en PROD OSE
+  -- ULH_UCBN_LDAP.hid2mail(individu.no_individu)  email,
+  mail.cem_email||'@'||cem_domaine email,
+      i.statut                                                    z_statut_id,
+  -- appel à une fonction renvoyant l'affectation principale du vacataire
+  nvl(ULH_AFF_PRINCIPALE_VACATAIRE@COCKTAIL(vac.vac_id),'UNIVERSITE PARIS 8')   z_structure_id,
+  ltrim(TO_CHAR(individu.no_individu,'99999999'))             source_code,
+  code_insee.no_insee                                         numero_insee,
+  TO_CHAR(code_insee.cle_insee)                               numero_insee_cle,
+  CASE WHEN code_insee.no_insee IS NULL THEN NULL ELSE 0 END  numero_insee_provisoire,
+  comptes.iban                                                iban,
+  comptes.bic                                                 bic,
+  null     as               z_grade_id,
+  i.z_discipline_id_cnu                                       z_discipline_id_cnu,
+  i.z_discipline_id_sous_cnu                                  z_discipline_id_sous_cnu,
+  i.z_discipline_id_spe_cnu                                   z_discipline_id_spe_cnu,
+  i.z_discipline_id_dis2deg                                   z_discipline_id_dis2deg,
+ utl_raw.cast_to_varchar2((nlssort(to_char(individu.nom_usuel || ' ' || individu.nom_patronymique || ' ' || individu.prenom), 'nls_sort=binary_ai'))) critere_recherche,
+  i.date_fin
+FROM
+  i
+  JOIN grhum.individu_ulr@COCKTAIL         individu           ON individu.no_individu           = i.code
+    -- pour les vacataires : règle de saisie donnée aux RH (par IL) : TEL + PRV
+	-- 22/10/2018 ! on met dans Tél privé !!!
+  LEFT JOIN grhum.personne_telephone@COCKTAIL tel_prf  ON tel_prf.pers_id = individu.pers_id  AND tel_prf.type_no='TEL' AND tel_prf.type_tel='PRF' AND tel_prf.tel_principal='O' 
+  LEFT JOIN grhum.personne_telephone@COCKTAIL tel_prv  ON tel_prv.pers_id = individu.pers_id  AND tel_prv.type_no='TEL' AND tel_prv.type_tel='PRV' AND tel_prv.tel_principal='O'
+  --LEFT JOIN grhum.ulh_v_individu_e_mail@COCKTAIL  mel  ON mel.no_individu = i.code AND tadr_code='PERSO' AND rpa_valide='O' AND RPA_PRINCIPAL='O'
+  LEFT JOIN grhum.compte@COCKTAIL compte ON  compte.pers_id = individu.pers_id 
+  LEFT JOIN grhum.compte_email@COCKTAIL mail ON mail.cpt_ordre = compte.cpt_ordre
+  LEFT JOIN grhum.code_insee@COCKTAIL      code_insee         ON code_insee.no_dossier_pers     = i.code
+  LEFT JOIN comptes ON comptes.no_individu = i.code AND comptes.rank_compte = comptes.nombre_comptes
+  LEFT JOIN mangue.vacataires@COCKTAIL VAC ON VAC.no_dossier_pers = i.code
+     -- on ne prend QUE les VACATAIRES
+  where   individu.ind_activite like 'VACATAIRE'
+  --****************
+  AND vac.tem_valide = 'O'
+        --Benouah le 15/07/2019
+        --AND SYSDATE BETWEEN vac.D_DEB_VACATION AND vac.D_FIN_VACATION
+        AND SYSDATE BETWEEN vac.D_DEB_VACATION AND vac.D_FIN_VACATION+545
-- 
GitLab