243 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			243 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
-- =============================================
 | 
						|
-- Description:	<Előszedjük a tanuló értékeléseket részletesen>
 | 
						|
-- =============================================
 | 
						|
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
DROP PROCEDURE IF EXISTS [dbo].[uspGetTanuloErtekelesDetailDataSet]
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE [dbo].[uspGetTanuloErtekelesDetailDataSet]
 | 
						|
	 @pIntezmenyId											INT
 | 
						|
	,@pTanevId												INT
 | 
						|
	,@pTanuloId												INT
 | 
						|
	,@pTantargyId											INT = NULL
 | 
						|
	,@pShowToroltElemek										BIT
 | 
						|
	,@pTanarId												INT
 | 
						|
	,@pErtekelesMegjelenesFajtaEnumTantargyId				INT
 | 
						|
	,@pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId	INT
 | 
						|
	,@pErtekelesMegjelenesFajtaId							INT
 | 
						|
	,@pDatum												DATE = NULL
 | 
						|
	,@pFeladatKategoriaId									INT
 | 
						|
	,@pAmiKategoriaId										INT
 | 
						|
	,@pAlapKategoriaId										INT
 | 
						|
	,@pKiiratkozottNeJelenjenMeg BIT = 1
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
 | 
						|
	-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
 | 
						|
	SET NOCOUNT ON;
 | 
						|
 | 
						|
	IF @pDatum IS NULL
 | 
						|
		SET @pDatum = CONVERT(DATE, GETDATE())
 | 
						|
 | 
						|
	DECLARE @evfolyamTipusId INT = (SELECT TOP 1 EvfolyamTipusId FROM dbo.fnGetTanuloOsztaly(@pTanuloId, @pDatum, @pAlapKategoriaId, @pKiiratkozottNeJelenjenMeg) ORDER BY BelepesDatuma DESC) 
 | 
						|
 | 
						|
	DECLARE @sql NVARCHAR(MAX) = ''
 | 
						|
 | 
						|
	IF @pFeladatKategoriaId = @pAlapKategoriaId OR @pFeladatKategoriaId IS NULL
 | 
						|
	BEGIN
 | 
						|
		SET @sql += N'
 | 
						|
			SELECT
 | 
						|
				 TanuloErtekeles.ID								ID
 | 
						|
				,TanuloErtekeles.C_DATUM						Datum
 | 
						|
				,TanuloErtekeles.C_ROGZITESDATUM				RogzitesDatum
 | 
						|
				,TanuloErtekeles.C_TIPUSID						TipusId
 | 
						|
				,TanuloErtekeles.C_ISERTESITESELKULDVE			IsErtesitesElkuldve
 | 
						|
				,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.CREATED						Created
 | 
						|
				,TanuloErtekeles.TOROLT							Torolt
 | 
						|
				,TanuloErtekeles.C_TANULOID						TanuloId
 | 
						|
				,TanariAtlagSuly.C_SULY							Suly
 | 
						|
				,Felhasznalo.C_NYOMTATASINEV					ErtekeloNyomtatasiNev
 | 
						|
				,Tantargy.C_TARGYKATEGORIA						TantargyKategoriaId
 | 
						|
				,CASE
 | 
						|
					WHEN TanuloErtekeles.C_ERTEKELOID = @pTanarId
 | 
						|
						THEN ''T''
 | 
						|
						ELSE ''F''
 | 
						|
				END												Modosithato
 | 
						|
			FROM
 | 
						|
				T_TANULOERTEKELES_OSSZES AS TanuloErtekeles
 | 
						|
 | 
						|
			INNER JOIN
 | 
						|
				T_OSZTALYCSOPORT Osztaly ON
 | 
						|
					   Osztaly.ID								= TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
 | 
						|
					AND	Osztaly.TOROLT							= ''F''
 | 
						|
					AND Osztaly.C_INTEZMENYID					= @pIntezmenyId
 | 
						|
					AND Osztaly.C_TANEVID						= @pTanevId
 | 
						|
	  				AND Osztaly.C_EVFOLYAMTIPUSA				= @evfolyamTipusId
 | 
						|
			LEFT JOIN	
 | 
						|
				T_TANTARGY Tantargy ON
 | 
						|
						Tantargy.ID								= TanuloErtekeles.C_TANTARGYID
 | 
						|
		'
 | 
						|
 | 
						|
    IF @pKiiratkozottNeJelenjenMeg = 1
 | 
						|
	  BEGIN
 | 
						|
	  	SET @sql += N'
 | 
						|
			INNER JOIN
 | 
						|
				T_TANULOCSOPORT TanuloCsoport ON TanuloCsoport.C_OSZTALYCSOPORTID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
 | 
						|
					AND TanuloCsoport.C_TANULOID				= @pTanuloId
 | 
						|
					AND	TanuloCsoport.C_BELEPESDATUM <= GETDATE()
 | 
						|
					AND (TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM >= GETDATE())
 | 
						|
					AND TanuloCsoport.TOROLT = ''F'' '
 | 
						|
	  END
 | 
						|
 | 
						|
    SET @sql += N'
 | 
						|
	  		INNER JOIN
 | 
						|
				T_FELHASZNALO_OSSZES AS Felhasznalo ON
 | 
						|
						Felhasznalo.TOROLT						= ''F''
 | 
						|
					AND Felhasznalo.C_INTEZMENYID				= @pIntezmenyId
 | 
						|
					AND Felhasznalo.C_TANEVID					= @pTanevId
 | 
						|
					AND Felhasznalo.ID							= TanuloErtekeles.C_ERTEKELOID
 | 
						|
			LEFT JOIN
 | 
						|
				T_TANARIATLAGSULY_OSSZES AS TanariAtlagSuly ON
 | 
						|
						TanariAtlagSuly.TOROLT					= ''F''
 | 
						|
					AND TanariAtlagSuly.C_INTEZMENYID			= @pIntezmenyId
 | 
						|
					AND TanariAtlagSuly.C_TANEVID				= @pTanevId
 | 
						|
					AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''F''
 | 
						|
					AND	TanariAtlagSuly.C_ERTEKELESMODID		= TanuloErtekeles.C_ERTEKELESMODID
 | 
						|
			WHERE
 | 
						|
						--Ha a @pShowToroltElemek változó True, akkor a törölt elemeket is visszaadjuk!
 | 
						|
						TanuloErtekeles.TOROLT					= IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'')
 | 
						|
					AND TanuloErtekeles.C_INTEZMENYID			= @pIntezmenyId
 | 
						|
					AND TanuloErtekeles.C_TANEVID				= @pTanevId
 | 
						|
					AND TanuloErtekeles.C_TANULOID				= @pTanuloId
 | 
						|
					AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL
 | 
						|
		'
 | 
						|
 | 
						|
		SET @sql +=
 | 
						|
		CASE
 | 
						|
			WHEN @pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumTantargyId
 | 
						|
			THEN N' AND (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''F'' AND TanuloErtekeles.C_TANTARGYID = @pTantargyId)'
 | 
						|
			WHEN @pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId
 | 
						|
			THEN N' AND (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''T'' AND TanuloErtekeles.C_TANTARGYID IS NULL)'
 | 
						|
			ELSE N' AND ((TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''F''AND TanuloErtekeles.C_TANTARGYID = @pTantargyId AND @pTantargyId IS NOT NULL) OR
 | 
						|
						(TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''T'' AND TanuloErtekeles.C_TANTARGYID IS NULL AND @pTantargyId IS NULL)) '
 | 
						|
		END
 | 
						|
	END
 | 
						|
 | 
						|
	IF @pFeladatKategoriaId IS NULL
 | 
						|
	BEGIN
 | 
						|
		SET @sql += N'
 | 
						|
		UNION ALL '
 | 
						|
	END
 | 
						|
 | 
						|
	IF @pFeladatKategoriaId = @pAmiKategoriaId OR @pFeladatKategoriaId IS NULL
 | 
						|
	BEGIN
 | 
						|
	-- NOTE: Ami-s értékelésnél a C_ROGZITESKORITANULOOSZTALYID null, ezeket mindig meg kell jeleníteni
 | 
						|
		SET @sql += N'
 | 
						|
		SELECT
 | 
						|
			 TanuloErtekeles.ID								ID
 | 
						|
			,TanuloErtekeles.C_DATUM						Datum
 | 
						|
			,TanuloErtekeles.C_ROGZITESDATUM				RogzitesDatum
 | 
						|
			,TanuloErtekeles.C_TIPUSID						TipusId
 | 
						|
			,TanuloErtekeles.C_ISERTESITESELKULDVE			IsErtesitesElkuldve
 | 
						|
			,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.CREATED						Created
 | 
						|
			,TanuloErtekeles.TOROLT							Torolt
 | 
						|
			,TanuloErtekeles.C_TANULOID						TanuloId
 | 
						|
			,TanariAtlagSuly.C_SULY							Suly
 | 
						|
			,Felhasznalo.C_NYOMTATASINEV					ErtekeloNyomtatasiNev
 | 
						|
			,Tantargy.C_TARGYKATEGORIA						TantargyKategoriaId
 | 
						|
			,CASE
 | 
						|
				WHEN TanuloErtekeles.C_ERTEKELOID = @pTanarId
 | 
						|
					THEN ''T''
 | 
						|
					ELSE ''F''
 | 
						|
			END												Modosithato
 | 
						|
		FROM
 | 
						|
			T_TANULOERTEKELES_OSSZES AS TanuloErtekeles
 | 
						|
 | 
						|
		INNER JOIN
 | 
						|
			T_FELHASZNALO_OSSZES AS Felhasznalo ON
 | 
						|
					Felhasznalo.TOROLT						= ''F''
 | 
						|
				AND Felhasznalo.C_INTEZMENYID				= @pIntezmenyId
 | 
						|
				AND Felhasznalo.C_TANEVID					= @pTanevId
 | 
						|
				AND Felhasznalo.ID							= TanuloErtekeles.C_ERTEKELOID
 | 
						|
		LEFT JOIN	
 | 
						|
			T_TANTARGY Tantargy ON
 | 
						|
					Tantargy.ID								= TanuloErtekeles.C_TANTARGYID
 | 
						|
		LEFT JOIN
 | 
						|
			T_TANARIATLAGSULY_OSSZES AS TanariAtlagSuly ON
 | 
						|
					TanariAtlagSuly.TOROLT					= ''F''
 | 
						|
				AND TanariAtlagSuly.C_INTEZMENYID			= @pIntezmenyId
 | 
						|
				AND TanariAtlagSuly.C_TANEVID				= @pTanevId
 | 
						|
				AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''F''
 | 
						|
				AND	TanariAtlagSuly.C_ERTEKELESMODID		= TanuloErtekeles.C_ERTEKELESMODID
 | 
						|
		WHERE
 | 
						|
					--Ha a @pShowToroltElemek változó True, akkor a törölt elemeket is visszaadjuk!
 | 
						|
					TanuloErtekeles.TOROLT					= IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'')
 | 
						|
				AND TanuloErtekeles.C_INTEZMENYID			= @pIntezmenyId
 | 
						|
				AND TanuloErtekeles.C_TANEVID				= @pTanevId
 | 
						|
				AND TanuloErtekeles.C_TANULOID				= @pTanuloId
 | 
						|
				AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL
 | 
						|
		'
 | 
						|
		SET @sql +=
 | 
						|
		CASE
 | 
						|
			WHEN @pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumTantargyId
 | 
						|
			THEN N' AND (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''F'' AND TanuloErtekeles.C_TANTARGYID = @pTantargyId)'
 | 
						|
			WHEN @pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId
 | 
						|
			THEN N' AND (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''T'' AND TanuloErtekeles.C_TANTARGYID IS NULL)'
 | 
						|
			ELSE N' AND ((TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''F''AND TanuloErtekeles.C_TANTARGYID = @pTantargyId AND @pTantargyId IS NOT NULL) OR
 | 
						|
						(TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''T'' AND TanuloErtekeles.C_TANTARGYID IS NULL AND @pTantargyId IS NULL))'
 | 
						|
		END
 | 
						|
	END
 | 
						|
 | 
						|
	SET @sql += ' ORDER BY
 | 
						|
			 Datum DESC
 | 
						|
			,RogzitesDatum DESC'
 | 
						|
 | 
						|
 | 
						|
	EXEC sp_executesql @sql, N'
 | 
						|
		 @pIntezmenyId		INT
 | 
						|
		,@pTanevId			INT
 | 
						|
		,@pTanuloId			INT
 | 
						|
		,@pTantargyId		INT = NULL
 | 
						|
		,@pShowToroltElemek	BIT
 | 
						|
		,@pTanarId			INT
 | 
						|
		,@evfolyamTipusId	INT'
 | 
						|
		,@pIntezmenyId		= @pIntezmenyId
 | 
						|
		,@pTanevId			= @pTanevId
 | 
						|
		,@pTanuloId			= @pTanuloId
 | 
						|
		,@pTantargyId		= @pTantargyId
 | 
						|
		,@pShowToroltElemek = @pShowToroltElemek
 | 
						|
		,@pTanarId			= @pTanarId
 | 
						|
		,@evfolyamTipusId	= @evfolyamTipusId
 | 
						|
 | 
						|
END
 | 
						|
 | 
						|
 | 
						|
GO
 | 
						|
 |