SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF OBJECT_ID('[sp_GetErtekelesReszletek]') IS NOT NULL 
BEGIN
  DROP PROCEDURE [sp_GetErtekelesReszletek]
END
GO	

-- =============================================
-- Description:	<Előszedjük a tanuló értékeléseit részletesen tantárgy szerint>
-- =============================================
CREATE PROCEDURE [sp_GetErtekelesReszletek]
	@pIntezmenyId INT,
	@pTanevId INT,
	@pTanuloId INT,
	@pTantargyId INT,
	@pToroltElemek CHAR = 'F',
	@pTanarId INT
AS
BEGIN

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

	SELECT
		TanuloErtekeles.ID 
		,TanuloErtekeles.C_ERTEKELESDATUM AS		ErtekelesDatuma 
		,TanuloErtekeles.C_ERTEKELESTIPUSA AS		ErtekelesTipusa
		,TanuloErtekeles.C_ERTEKELESSZOVEG AS		ErtekelesSzovege
		,TanuloErtekeles.C_OSZTALYZAT AS			Osztalyzat
		,TanuloErtekeles.C_TANORAID					TanoraID
		,OsztalyzatErtekeles.C_ERTEKELESMODJA AS	ErtekelesModja
		,OsztalyzatErtekeles.C_SZAZALEK AS			Szazalek
		,OsztalyzatErtekeles.C_TEMA AS				Tema
		,TanariAtlagSuly.C_SULY AS					Suly
		,TanuloErtekeles.TOROLT AS					Torolt
		,TanuloCsoport.C_TANULOID AS				TanuloId
		,Felhasznalo.C_NYOMTATASINEV AS				Ertekelo
		,CASE
			WHEN TanuloErtekeles.C_ERTEKELOID = @pTanarId
				THEN 'T' 
				ELSE 'F' 
		END											Modosithato
				
	FROM(
		SELECT DISTINCT
			[C_TANULOID]
		FROM 
			[T_TANULOCSOPORT] 
		WHERE 
			[TOROLT] = 'F' 
			AND [C_TANULOID] = @pTanuloId
			AND [C_INTEZMENYID] = @pIntezmenyId
			AND [C_TANEVID] = @pTanevId
	) AS TanuloCsoport
		INNER JOIN (
			SELECT
				[ID]
				,[C_ERTEKELESDATUM]
				,[C_ERTEKELESTIPUSA]
				,[C_ERTEKELESSZOVEG]
				,[C_OSZTALYZAT]
				,[C_TANULOID]
				,[C_ERTEKELOID]
				,[C_TANORAID]
				,[TOROLT]
				,[CREATOR]
			FROM 
				[T_TANULOERTEKELES_OSSZES] 
			WHERE 
				[C_TANTARGYID] = @pTantargyId
				--Ha a törölt flag True, a törölt elemeket is visszaadjuk
				AND [TOROLT] = IIF(@pToroltElemek = 'T', [TOROLT], 'F')
				AND [C_INTEZMENYID] = @pIntezmenyId
				AND [C_TANEVID] = @pTanevId
		) AS TanuloErtekeles
			ON TanuloCsoport.C_TANULOID = TanuloErtekeles.C_TANULOID 
		INNER JOIN (
			SELECT
				[ID]
				,[C_ERTEKELESMODJA]
				,[C_SZAZALEK]
				,[C_TEMA]
				,[TOROLT]
			FROM 
				[T_OSZTALYZATERTEKELES_OSSZES] 
			WHERE
				--Ha a törölt flag True, a törölt elemeket is visszaadjuk
				[TOROLT] = IIF(@pToroltElemek = 'T', [TOROLT], 'F')
				AND [C_ALINTEZMENYID] = @pIntezmenyId
				AND [C_ALTANEVID] = @pTanevId
		) AS OsztalyzatErtekeles 
			ON OsztalyzatErtekeles.ID = TanuloErtekeles.ID
		INNER JOIN (
			SELECT
				[ID]
				,[C_NYOMTATASINEV]
			FROM 
				[T_FELHASZNALO] 
			WHERE 
				[TOROLT] = 'F'
				AND [C_INTEZMENYID] = @pIntezmenyId
				AND [C_TANEVID] = @pTanevId
		) AS Felhasznalo
			ON Felhasznalo.ID = TanuloErtekeles.C_ERTEKELOID
		LEFT JOIN (
			SELECT 
				[C_SULY]
				,[C_ERTEKELESMODJA]
			FROM
				[T_TANARIATLAGSULY_OSSZES]
			WHERE 
				[TOROLT] = 'F'
				AND [C_INTEZMENYID] = @pIntezmenyId
				AND [C_TANEVID] = @pTanevId
		) AS TanariAtlagSuly
			ON TanariAtlagSuly.C_ERTEKELESMODJA = OsztalyzatErtekeles.C_ERTEKELESMODJA
			
END