﻿SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

DROP PROCEDURE IF EXISTS [dbo].[sp_GetKozossegiSzolgalatokReszletek]
GO

-- =============================================
-- Description:	<Előszedjük a tanuló közösségi szolgálatait részletesen>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetKozossegiSzolgalatokReszletek]
	 @pIntezmenyId						INT
	,@pTanevId							INT
	,@pTanuloId							INT
	,@pTanarId							INT
	,@pToroltElemek						CHAR = 'F'
AS
BEGIN

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

	SELECT
		 KozossegiSzolgalat.ID								ID
		,KozossegiSzolgalat.C_INTERVALLUMKEZDETE			IntervallumKezdete
		,KozossegiSzolgalat.C_INTERVALLUMVEGE			    IntervallumVege
		,KozossegiSzolgalat.C_TELJESITESIHELYE				TeljesitesiHelye 
		,KozossegiSzolgalat.C_ORASZAM						Oraszam
		,KozossegiSzolgalat.C_KOZOSSEGISZOLGALATTIPUSA		KozossegiSzolgalatTipusa
		,KozossegiSzolgalat.C_MEGJEGYZES					Megjegyzes
		,KozossegiSzolgalat.TOROLT							Torolt
		,CurrentTanulo.Id									TanuloId
		,CurrentTanulo.NyomtatasiNev						TanuloNev
		,CASE
			WHEN KozossegiSzolgalat.C_FELJEGYZOID = @pTanarId AND @pToroltElemek = 'T'
				THEN 'T' 
				ELSE 'F' 
		END												Modosithato	
	FROM 
		T_FELHASZNALO_OSSZES Tanulo
	LEFT JOIN (
		SELECT
			  Tanulo.C_OKTATASIAZONOSITO			OktatasiAzonosito
			 ,Tanulo.ID								Id
			 ,Tanulo.C_NYOMTATASINEV				NyomtatasiNev
		FROM 
			T_FELHASZNALO_OSSZES Tanulo
		WHERE 
			    Tanulo.ID = @pTanuloId
			AND	Tanulo.TOROLT = 'F'
		) CurrentTanulo ON 
			CurrentTanulo.OktatasiAzonosito IS NOT NULL
	LEFT JOIN 
		T_TANULOKOZOSSEGISZOLGALAT_OSSZES KozossegiSzolgalat ON
				KozossegiSzolgalat.C_TANULOID = Tanulo.ID
			AND KozossegiSzolgalat.C_INTEZMENYID = @pIntezmenyId
      AND KozossegiSzolgalat.C_TANEVID = @pTanevId
	WHERE 	
		    Tanulo.C_OKTATASIAZONOSITO = CurrentTanulo.OktatasiAzonosito
		AND	Tanulo.C_INTEZMENYID = @pIntezmenyId
    AND Tanulo.C_TANEVID = @pTanevId
		AND Tanulo.TOROLT = 'F'
		--Ha a törölt flag True, a törölt elemeket is visszaadjuk
		AND	KozossegiSzolgalat.TOROLT = IIF(@pToroltElemek = 'T', KozossegiSzolgalat.TOROLT, 'F')
	ORDER BY 
		KozossegiSzolgalat.C_INTERVALLUMKEZDETE DESC
END
GO