﻿DROP PROCEDURE IF EXISTS dbo.sp_GetOsszesFelhasznaloBelepesData
GO

CREATE PROCEDURE dbo.sp_GetOsszesFelhasznaloBelepesData
	 @pIntezmenyId						INT
	,@pTanevId							INT

AS
BEGIN

	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	--ALKALMAZOTTAK
	SELECT 
		 T_FELHASZNALO_OSSZES.ID								FelhasznaloId
		,T_FELHASZNALO_OSSZES.C_NYOMTATASINEV					Nev
		,T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO				OktatasiAzonosito
		,T_FELHASZNALO_OSSZES.C_SZULETESIDATUM					SzuletesiDatum
		,T_FELHASZNALOBELEPES_OSSZES.C_BEJELENTKEZESINEV		Felhasznalonev
		,NULL													GondviseloId
		,NULL													GondviseloNev
	FROM 
		T_ALKALMAZOTT_OSSZES 
	INNER JOIN
		T_FELHASZNALO_OSSZES ON 
				T_FELHASZNALO_OSSZES.ID = T_ALKALMAZOTT_OSSZES.ID
			AND T_FELHASZNALO_OSSZES.C_INTEZMENYID = @pIntezmenyId
			AND T_FELHASZNALO_OSSZES.C_TANEVID = @pTanevId
			AND T_FELHASZNALO_OSSZES.TOROLT = 'F'
	LEFT JOIN
		T_FELHASZNALOBELEPES_OSSZES ON 
				T_FELHASZNALOBELEPES_OSSZES.C_FELHASZNALOID = T_FELHASZNALO_OSSZES.ID		
			AND	T_FELHASZNALOBELEPES_OSSZES.C_GONDVISELOID IS NULL	
			AND T_FELHASZNALOBELEPES_OSSZES.C_INTEZMENYID = @pIntezmenyId
			AND T_FELHASZNALOBELEPES_OSSZES.C_TANEVID = @pTanevId
			AND T_FELHASZNALOBELEPES_OSSZES.TOROLT = 'F'
	WHERE 
			T_ALKALMAZOTT_OSSZES.C_ALINTEZMENYID = @pIntezmenyId
		AND T_ALKALMAZOTT_OSSZES.C_ALTANEVID = @pTanevId
		AND T_ALKALMAZOTT_OSSZES.TOROLT = 'F'

	UNION

	--TANNULÓK
	SELECT 
		 T_FELHASZNALO_OSSZES.ID								FelhasznaloId
		,T_FELHASZNALO_OSSZES.C_NYOMTATASINEV					Nev
		,T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO				OktatasiAzonosito
		,T_FELHASZNALO_OSSZES.C_SZULETESIDATUM					SzuletesiDatum
		,T_FELHASZNALOBELEPES_OSSZES.C_BEJELENTKEZESINEV		Felhasznalonev
		,NULL													GondviseloId
		,NULL													GondviseloNev
	FROM 
		T_TANULO_OSSZES 
	LEFT JOIN
		T_FELHASZNALO_OSSZES ON 
				T_FELHASZNALO_OSSZES.ID = T_TANULO_OSSZES.ID
			AND T_FELHASZNALO_OSSZES.C_INTEZMENYID = @pIntezmenyId
			AND T_FELHASZNALO_OSSZES.C_TANEVID = @pTanevId
			AND T_FELHASZNALO_OSSZES.TOROLT = 'F'
	LEFT JOIN
		T_FELHASZNALOBELEPES_OSSZES ON 
				T_FELHASZNALOBELEPES_OSSZES.C_FELHASZNALOID = T_FELHASZNALO_OSSZES.ID		
			AND	T_FELHASZNALOBELEPES_OSSZES.C_GONDVISELOID IS NULL
			AND T_FELHASZNALOBELEPES_OSSZES.C_INTEZMENYID = @pIntezmenyId
			AND T_FELHASZNALOBELEPES_OSSZES.C_TANEVID = @pTanevId
			AND T_FELHASZNALOBELEPES_OSSZES.TOROLT = 'F'
	WHERE 
			T_TANULO_OSSZES.C_ALINTEZMENYID = @pIntezmenyId
		AND T_TANULO_OSSZES.C_ALTANEVID = @pTanevId
		AND T_TANULO_OSSZES.TOROLT = 'F'

	UNION

	--GONDVISELŐK
	SELECT 
		 T_FELHASZNALO_OSSZES.ID								FelhasznaloId
		,T_FELHASZNALO_OSSZES.C_NYOMTATASINEV					Nev
		,T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO				OktatasiAzonosito
		,T_FELHASZNALO_OSSZES.C_SZULETESIDATUM					SzuletesiDatum
		,T_FELHASZNALOBELEPES_OSSZES.C_BEJELENTKEZESINEV		Felhasznalonev
		,T_GONDVISELO_OSSZES.ID									GondviseloId
		,T_GONDVISELO_OSSZES.C_NEV								GondviseloNev
	FROM 
		T_GONDVISELO_OSSZES 
	LEFT JOIN
		T_FELHASZNALO_OSSZES ON 
				T_FELHASZNALO_OSSZES.ID = T_GONDVISELO_OSSZES.C_TANULOID
			AND T_FELHASZNALO_OSSZES.C_INTEZMENYID = @pIntezmenyId
			AND T_FELHASZNALO_OSSZES.C_TANEVID = @pTanevId
			AND T_FELHASZNALO_OSSZES.TOROLT = 'F'
	LEFT JOIN
		T_FELHASZNALOBELEPES_OSSZES ON 
				T_FELHASZNALOBELEPES_OSSZES.C_GONDVISELOID = T_GONDVISELO_OSSZES.ID						
			AND T_FELHASZNALOBELEPES_OSSZES.C_INTEZMENYID = @pIntezmenyId
			AND T_FELHASZNALOBELEPES_OSSZES.C_TANEVID = @pTanevId
			AND T_FELHASZNALOBELEPES_OSSZES.TOROLT = 'F'
	WHERE 
			T_GONDVISELO_OSSZES.C_INTEZMENYID = @pIntezmenyId
		AND T_GONDVISELO_OSSZES.C_TANEVID = @pTanevId
		AND T_GONDVISELO_OSSZES.TOROLT = 'F'

	UNION
	

	--EGYÉB(fenntartó, admin, stb...)
	SELECT 
		 T_FELHASZNALO_OSSZES.ID								FelhasznaloId
		,T_FELHASZNALO_OSSZES.C_NYOMTATASINEV					Nev
		,T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO				OktatasiAzonosito
		,T_FELHASZNALO_OSSZES.C_SZULETESIDATUM					SzuletesiDatum
		,T_FELHASZNALOBELEPES_OSSZES.C_BEJELENTKEZESINEV		Felhasznalonev
		,NULL													GondviseloId
		,NULL													GondviseloNev
	FROM 
		T_FELHASZNALO_OSSZES
	LEFT JOIN
		T_FELHASZNALOBELEPES_OSSZES ON 
				T_FELHASZNALOBELEPES_OSSZES.C_FELHASZNALOID = T_FELHASZNALO_OSSZES.ID		
			AND	T_FELHASZNALOBELEPES_OSSZES.C_GONDVISELOID IS NULL	
			AND T_FELHASZNALOBELEPES_OSSZES.C_INTEZMENYID = @pIntezmenyId
			AND T_FELHASZNALOBELEPES_OSSZES.C_TANEVID = @pTanevId
			AND T_FELHASZNALOBELEPES_OSSZES.TOROLT = 'F'
	WHERE 
		NOT EXISTS (
			SELECT
				ID
			FROM
				T_TANULO_OSSZES 
			WHERE
					T_TANULO_OSSZES.C_ALINTEZMENYID = @pIntezmenyId
				AND T_TANULO_OSSZES.C_ALTANEVID = @pTanevId
				AND T_TANULO_OSSZES.TOROLT = 'F'
				AND T_TANULO_OSSZES.ID = T_FELHASZNALO_OSSZES.ID
		)
		AND NOT EXISTS (
			SELECT 
				ID 
			FROM
				T_ALKALMAZOTT_OSSZES 
			WHERE
					T_ALKALMAZOTT_OSSZES.C_ALINTEZMENYID = @pIntezmenyId
				AND T_ALKALMAZOTT_OSSZES.C_ALTANEVID = @pTanevId
				AND T_ALKALMAZOTT_OSSZES.TOROLT = 'F'
				AND T_ALKALMAZOTT_OSSZES.ID = T_FELHASZNALO_OSSZES.ID
		)
		AND T_FELHASZNALO_OSSZES.C_INTEZMENYID = @pIntezmenyId
		AND T_FELHASZNALO_OSSZES.C_TANEVID = @pTanevId
		AND T_FELHASZNALO_OSSZES.TOROLT = 'F'

END

GO

