/****************************************************************************
--Liste des employes actifs avec une adresse courriel valide 
*****************************************************************************/
select 
t.Numero
, t.Nom
, t.Prenom
, t.Titre
, replace(t.Courriel, substring(t.Courriel,CHARINDEX('@', t.Courriel),len(t.Courriel)),'') NomUtilisateur
, t.Courriel
--distinct  substring(t.Courriel,CHARINDEX('@', t.Courriel),len(t.Courriel))
from 
	(select distinct
	Employes.Employe.Numero
	, Employes.Employe.Nom
	, Employes.Employe.Prenom
	--, Employes.Employe.NumeroEtudiant
	--, Employes.Fonction.*
	--, Reference.ClasseEmploi.Numero + ' ' + Reference.ClasseEmploi.Titre  as titre
	,STUFF((SELECT  
		--STUFF((SELECT distinct  CHAR(10) + ltrim(str(ROW_NUMBER() OVER(PARTITION BY Employes.Fonction.IDEmploye  ORDER BY Employes.Fonction.IDEmploye ASC)))  +  ' - ' +  /* Reference.ClasseEmploi.Numero + ' ' +*/ Reference.ClasseEmploi.Titre AS titre
		STUFF((SELECT distinct  CHAR(10) + ', '+  /*str(Employes.Fonction.Sequence)*/ Reference.ClasseEmploi.Numero  + ' - ' + Reference.ClasseEmploi.Titre     AS titre
		FROM Employes.Fonction 
		INNER JOIN Reference.ClasseEmploi ON  Employes.Fonction.IDClasseEmploi = Reference.ClasseEmploi.IDClasseEmploi
		WHERE  (Employes.Fonction.IDEmploye = Employes.Employe.IDEmploye)
		--where (Employes.Employe.IndicateurActifCalculPaie =1)
		and (Employes.Fonction.DateFin is null or Employes.Fonction.DateFin > getDate())
		FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)') ,1,1,'')  
		),1,1, '') AS Titre
	, (select  Courriel 
		from  Employes.EmployeCourriel
		where Employes.EmployeCourriel.DateDesactivation is null and Employes.EmployeCourriel.TypeCourriel= 'STD'
		and Employes.EmployeCourriel.IDEmploye = Employes.Employe.IDEmploye
	) as Courriel
	from Employes.Employe
	inner join Employes.Fonction on Employes.Employe.IDEmploye = Employes.Fonction.IDEmploye
	inner join Employes.Profil on Employes.Fonction.IDFonction = Employes.Profil.IDFonction
	--inner join Reference.ClasseEmploi ON Employes.Fonction.IDClasseEmploi = Reference.ClasseEmploi.IDClasseEmploi
	where (Employes.Employe.IndicateurActifCalculPaie =1)
	and (Employes.Fonction.DateFin is null or Employes.Fonction.DateFin > getDate())
	--and Employes.Employe.Numero= '09302'
	--order by Employes.Employe.Nom, Employes.Employe.Prenom
) as t
-- cette condition pour sortir la liste des employes avec des bonnes adresses courriel
where (Courriel  like '%@crosemont.qc.ca%' or Courriel  like '%@cegepadistance.ca%' and Courriel is not null)
-- cette condition pour sortir la liste des employes avec des adresses courriel non valide
--where (t.Courriel not like '%@crosemont.qc.ca%' and t.Courriel not like '%@cegepadistance.ca%' or t.Courriel is null)



/****************************************************************************
--Liste des employes actifs
****************************************************************************
select distinct
Employes.Employe.Numero
, Employes.Employe.Nom
, Employes.Employe.Prenom
--, Employes.Employe.NumeroEtudiant
--, Employes.Fonction.*
--, Reference.ClasseEmploi.Numero + ' ' + Reference.ClasseEmploi.Titre  as titre
,STUFF((SELECT  
	--STUFF((SELECT distinct  CHAR(10) + ltrim(str(ROW_NUMBER() OVER(PARTITION BY Employes.Fonction.IDEmploye  ORDER BY Employes.Fonction.IDEmploye ASC)))  +  ' - ' +  /* Reference.ClasseEmploi.Numero + ' ' +*/ Reference.ClasseEmploi.Titre AS titre
	STUFF((SELECT distinct  CHAR(10) + ', '+  /*str(Employes.Fonction.Sequence)*/ Reference.ClasseEmploi.Numero  + ' - ' + Reference.ClasseEmploi.Titre     AS titre
	FROM Employes.Fonction 
	INNER JOIN Reference.ClasseEmploi ON  Employes.Fonction.IDClasseEmploi = Reference.ClasseEmploi.IDClasseEmploi
	WHERE  (Employes.Fonction.IDEmploye = Employes.Employe.IDEmploye)
	--where (Employes.Employe.IndicateurActifCalculPaie =1)
	and (Employes.Fonction.DateFin is null or Employes.Fonction.DateFin > getDate())
	FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)') ,1,1,'')  
	),1,1, '') AS Titre
, (select  Courriel 
	from  Employes.EmployeCourriel
	where Employes.EmployeCourriel.DateDesactivation is null and Employes.EmployeCourriel.TypeCourriel= 'STD'
	and Employes.EmployeCourriel.IDEmploye = Employes.Employe.IDEmploye
) as Courriel
from Employes.Employe
inner join Employes.Fonction on Employes.Employe.IDEmploye = Employes.Fonction.IDEmploye
inner join Employes.Profil on Employes.Fonction.IDFonction = Employes.Profil.IDFonction
--inner join Reference.ClasseEmploi ON Employes.Fonction.IDClasseEmploi = Reference.ClasseEmploi.IDClasseEmploi
where (Employes.Employe.IndicateurActifCalculPaie =1)
and (Employes.Fonction.DateFin is null or Employes.Fonction.DateFin > getDate())
--and Employes.Employe.Numero= '09302'
order by Employes.Employe.Nom, Employes.Employe.Prenom

*/




















