SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF OBJECT_ID('fnGetDokumentumErtekelesekOsztalyonkent') IS NOT NULL
BEGIN
	DROP FUNCTION fnGetDokumentumErtekelesekOsztalyonkent
END
GO

CREATE FUNCTION fnGetDokumentumErtekelesekOsztalyonkent (@tanevId INT, @osztalyId INT)
RETURNS TABLE
RETURN (
	SELECT 
		 tanuloErtekeles.C_DATUM																				Datum
		,tanuloErtekeles.C_TIPUSID																				TipusId
		,tanuloErtekeles.C_ERTEKELESSZOVEG																		ErtekelesSzoveg
		,tanuloErtekeles.C_ERTEKELESOSZTALYZATID																ErtekelesOsztalyzatId
		,ertekelesOsztalyzat.C_VALUE																			ErtekelesOsztalyzatValue
		,ertekelesOsztalyzat.C_NAME																			    ErtekelesOsztalyzatNev
		,IIF(tanuloErtekeles.C_ERTEKELESSZAZALEK IS NOT NULL													--
			,CONVERT(NVARCHAR(3), tanuloErtekeles.C_ERTEKELESSZAZALEK) + '%'									--
			,NULL)																								ErtekelesSzazalek
		,tanuloErtekeles.C_MAGATARTASOSZTALYZATID																MagatartasOsztalyzatId
		,magatartasOsztalyzat.C_VALUE																			MagatartasOsztalyzatValue
		,magatartasOsztalyzat.C_NAME																			MagatartasOsztalyzatNev
		,tanuloErtekeles.C_MAGATARTASSZOVEG																		MagatartasSzoveg
		,tanuloErtekeles.C_MAGATARTASERTEKID																	MagatartasErtekId
		,magatartasErtek.C_NAME																					MagatartasErtek
		,tanuloErtekeles.C_SZORGALOMOSZTALYZATID																SzorgalomOsztalyzatId
		,szorgalomOsztalyzat.C_VALUE																			SzorgalomOsztalyzatValue
		,szorgalomOsztalyzat.C_NAME																				SzorgalomOsztalyzatNev
		,tanuloErtekeles.C_SZORGALOMSZOVEG																		SzorgalomSzoveg
		,tanuloErtekeles.C_SZORGALOMERTEKID																		SzorgalomErtekId
		,szorgalomErtek.C_NAME																					SzorgalomErtek
		,tanuloErtekeles.C_TANULOID																				TanuloId
		,tanuloErtekeles.C_OSZTALYCSOPORTID																		OsztalyCsoportId
		,tanuloErtekeles.C_TANTARGYID																			TantargyId
		,IIF(tantargy.C_NEV <> tantargy.C_NEVNYOMTATVANYBAN AND tantargy.C_NEVNYOMTATVANYBAN IS NOT NULL		--
			,C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')'													--
			,tantargy.C_NEV)																					TantargyNevZarojellel
		,tantargy.C_NEV																							TantargyNev
		,tantargy.C_NEVNYOMTATVANYBAN																			TantargyNevNyomtatvanyban
		,tantargy.C_TARGYKATEGORIA																				TargyKategoriaId
		,tantargy.C_FOTARGYE																					FotargyE
		,tantargy.C_FOTARGYID																					FotargyId
		,tantargy.C_ALTANTARGYKENTNYOMTATVANYBAN																Altantargy
		,tanuloErtekeles.C_ERTEKELESTEMA																		ErtekelesTema
		,IIF(																									--
			tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN (1519, 1520), '<i>(' + CAST(CHAR(ROW_NUMBER() OVER (PARTITION BY tanuloErtekeles.C_TANULOID, tanuloErtekeles.C_TIPUSID, IIF(tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL, 1, 0) ORDER BY tanuloErtekeles.C_DATUM) + 96) AS NVARCHAR(10)) + ')</i>', ''
		 )																										Jeloles
		,IIF(																									--
			tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN (1519, 1520), '<i>(' + CAST(CHAR(ROW_NUMBER() OVER (PARTITION BY tanuloErtekeles.C_TANULOID, tanuloErtekeles.C_TIPUSID, IIF(tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL, 1, 0) ORDER BY tanuloErtekeles.C_DATUM) + 96) AS NVARCHAR(10)) + ')</i>: ' + tanuloErtekeles.C_ERTEKELESTEMA, ''
		 )																										JelolesAndErtekelesTema 
		 ,tanuloErtekeles.C_ISMAGATARTASSZORGALOM																isMagatartasSzorgalom
	FROM T_TANULOERTEKELES_OSSZES tanuloErtekeles
		INNER JOIN 
			fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') tanulo ON 
				tanulo.TanuloId = tanuloErtekeles.C_TANULOID
		LEFT JOIN 
			T_TANTARGY_OSSZES tantargy ON 
					tantargy.Id = tanuloErtekeles.C_TANTARGYID
				AND (tantargy.C_TARGYKATEGORIA <> 1248 OR tantargy.C_TARGYKATEGORIA IS NULL)
		LEFT JOIN 
			T_DICTIONARYITEMBASE_OSSZES ertekelesOsztalyzat ON 
					ertekelesOsztalyzat.ID = tanuloErtekeles.C_ERTEKELESOSZTALYZATID 
				AND ertekelesOsztalyzat.C_TANEVID = @tanevId
				AND ertekelesOsztalyzat.C_TYPE LIKE 'OsztalyzatTipus'
		LEFT JOIN 
			T_DICTIONARYITEMBASE_OSSZES magatartasOsztalyzat ON 
					magatartasOsztalyzat.ID = tanuloErtekeles.C_MAGATARTASOSZTALYZATID 
				AND magatartasOsztalyzat.C_TANEVID = @tanevId
				AND magatartasOsztalyzat.C_TYPE LIKE 'OsztalyzatTipus'
		LEFT JOIN 
			T_DICTIONARYITEMBASE_OSSZES szorgalomOsztalyzat ON 
					szorgalomOsztalyzat.ID = tanuloErtekeles.C_SZORGALOMOSZTALYZATID 
				AND szorgalomOsztalyzat.C_TANEVID = @tanevId
				AND szorgalomOsztalyzat.C_TYPE LIKE 'OsztalyzatTipus'
		LEFT JOIN 
			T_DICTIONARYITEMBASE_OSSZES magatartasErtek ON
					magatartasErtek.ID = tanuloErtekeles.C_MAGATARTASERTEKID 
				AND magatartasErtek.C_TANEVID = @tanevId	
				AND magatartasErtek.C_TYPE LIKE 'MagatartasErtekelesTipus'	
		LEFT JOIN 
			T_DICTIONARYITEMBASE_OSSZES szorgalomErtek ON
					szorgalomErtek.ID = tanuloErtekeles.C_SZORGALOMERTEKID 
				AND szorgalomErtek.C_TANEVID = @tanevId
				AND szorgalomErtek.C_TYPE LIKE 'SzorgalomErtekelesTipus'
		LEFT JOIN 
			T_CSOPORT_OSSZES csoport ON 
					csoport.ID = tanuloErtekeles.C_OSZTALYCSOPORTID
				AND (csoport.ID IS NULL OR csoport.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
	WHERE
			tanuloErtekeles.Torolt = 'F'
		AND tanuloErtekeles.C_DATUM >= BelepesDatum 
		AND (tanuloErtekeles.C_DATUM <= KilepesDatum OR KilepesDatum IS NULL)		
)


GO


