﻿SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF OBJECT_ID('[dbo].[sp_GetTanuloErtekelesDetailDataSet]') IS NOT NULL
BEGIN
	DROP PROCEDURE [dbo].[sp_GetTanuloErtekelesDetailDataSet]
END
GO

-- =============================================
-- Description:	<Előszedjük a tanuló értékeléseket részletesen>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetTanuloErtekelesDetailDataSet]
	 @pIntezmenyId											INT
	,@pTanevId												INT
	,@pTanuloId												INT
	,@pTantargyId											INT = NULL
	,@pShowToroltElemek										BIT
	,@pIsFotargyAltargyLekerdezes							BIT
	,@pTanarId												INT
	,@pErtekelesMegjelenesFajtaEnumTantargyId				INT
	,@pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId	INT
	,@pErtekelesMegjelenesFajtaEnumTanuloId					INT
	,@pErtekelesMegjelenesFajtaId							INT
AS
BEGIN

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

	SELECT
		 TanuloErtekeles.ID								ID
		,TanuloErtekeles.C_DATUM						Datum
		,TanuloErtekeles.C_TIPUSID						TipusId
		,TanuloErtekeles.C_TANORAID						TanoraId
		,TanuloErtekeles.C_ERTEKELESOSZTALYZATID		ErtekelesOsztalyzatId
		,TanuloErtekeles.C_ERTEKELESSZOVEG				ErtekelesSzoveg
		,TanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV		ErtekelesSzovegRovidNev
		,TanuloErtekeles.C_ERTEKELESSZAZALEK			ErtekelesSzazalek
		,TanuloErtekeles.C_ERTEKELESMODID				ErtekelesModId
		,TanuloErtekeles.C_ERTEKELESTEMA				ErtekelesTema
		,TanuloErtekeles.C_MAGATARTASOSZTALYZATID		MagatartasOsztalyzatId
		,TanuloErtekeles.C_MAGATARTASSZOVEG				MagatartasSzoveg
		,TanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV		MagatartasSzovegRovidNev
        ,TanuloErtekeles.C_MAGATARTASERTEKID			MagatartasErtekId
		,TanuloErtekeles.C_SZORGALOMOSZTALYZATID		SzorgalomOsztalyzatId
		,TanuloErtekeles.C_SZORGALOMSZOVEG				SzorgalomSzoveg
		,TanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV		SzorgalomSzovegRovidNev
        ,TanuloErtekeles.C_SZORGALOMERTEKID				SzorgalomErtekId
		,TanuloErtekeles.C_ISMAGATARTASSZORGALOM		IsMagatartasSzorgalom
		,TanuloErtekeles.TOROLT							Torolt
		,TanuloCsoport.C_TANULOID						TanuloId
		,TanariAtlagSuly.C_SULY							Suly
		,Felhasznalo.C_NYOMTATASINEV					ErtekeloNyomtatasiNev
		,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
				 TanuloErtekeles.ID
				,TanuloErtekeles.C_DATUM
				,TanuloErtekeles.C_TIPUSID
				,TanuloErtekeles.C_ERTEKELESOSZTALYZATID
				,TanuloErtekeles.C_ERTEKELESSZOVEG
				,TanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV
				,TanuloErtekeles.C_ERTEKELESSZAZALEK
				,TanuloErtekeles.C_ERTEKELESMODID
				,TanuloErtekeles.C_ERTEKELESTEMA
				,TanuloErtekeles.C_MAGATARTASOSZTALYZATID
				,TanuloErtekeles.C_MAGATARTASSZOVEG
				,TanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV
				,TanuloErtekeles.C_MAGATARTASERTEKID
				,TanuloErtekeles.C_SZORGALOMOSZTALYZATID
				,TanuloErtekeles.C_SZORGALOMSZOVEG
				,TanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV
				,TanuloErtekeles.C_SZORGALOMERTEKID
				,TanuloErtekeles.C_ISMAGATARTASSZORGALOM
				,TanuloErtekeles.C_OSZTALYCSOPORTID
				,TanuloErtekeles.C_TANULOID
				,TanuloErtekeles.C_ERTEKELOID
				,TanuloErtekeles.C_TANORAID
				,TanuloErtekeles.TOROLT
				,TanuloErtekeles.CREATOR
			FROM
				T_TANULOERTEKELES_OSSZES TanuloErtekeles
			INNER JOIN T_OSZTALYCSOPORT Osztaly ON
					Osztaly.ID					= TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
				AND	Osztaly.TOROLT				= 'F'
				AND Osztaly.C_EVFOLYAMTIPUSA	= (SELECT EvfolyamTipusId FROM dbo.fnGetTanuloOsztaly(TanuloErtekeles.C_TANULOID, DEFAULT))
			WHERE
					(
					 (@pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumTantargyId AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F' AND TanuloErtekeles.C_TANTARGYID = @pTantargyId) OR
					 (@pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'T' AND TanuloErtekeles.C_TANTARGYID IS NULL) OR
					 (@pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumTanuloId AND (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F' AND @pTantargyId IS NOT NULL AND TanuloErtekeles.C_TANTARGYID = @pTantargyId) OR (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'T' AND TanuloErtekeles.C_TANTARGYID IS NULL AND @pTantargyId IS NULL))
					)
				--Ha a @pShowToroltElemek változó True, akkor a törölt elemeket is visszaadjuk!
				AND TanuloErtekeles.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, 'F')
				AND TanuloErtekeles.C_INTEZMENYID = @pIntezmenyId
				AND TanuloErtekeles.C_TANEVID = @pTanevId
		) AS TanuloErtekeles 
			ON TanuloErtekeles.C_TANULOID = TanuloCsoport.C_TANULOID
		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_ERTEKELESMODID
			FROM
				T_TANARIATLAGSULY_OSSZES
			WHERE
					TOROLT = 'F'
				AND C_INTEZMENYID = @pIntezmenyId
				AND C_TANEVID = @pTanevId
		) AS TanariAtlagSuly ON
				TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F'
			AND	TanariAtlagSuly.C_ERTEKELESMODID = TanuloErtekeles.C_ERTEKELESMODID


END


GO

