﻿SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

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

CREATE PROCEDURE [dbo].[sp_GetDokumentumErtekelesek]
	@osztalyId			INT,
	@tanevId			INT,
	@ertekelesTipus		INT,
	@isBizonyitvany		INT = 0,
	@isNemet			BIT = 0

AS
BEGIN
	SET NOCOUNT ON;

--Osztályhoz tartozó tanulók
	DECLARE @Tanulok TABLE (TanuloId INT PRIMARY KEY, KilepesDatum DATE)
	INSERT INTO @Tanulok
	SELECT TanuloId, KilepesDatum FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') 

--Osztályhoz tartozó értékelések
	SELECT 
		Datum
		,TipusId
		,ErtekelesSzoveg
		,ErtekelesOsztalyzatId
		,ErtekelesOsztalyzatValue
		,ErtekelesOsztalyzatNev
		,ErtekelesSzazalek
		,MagatartasOsztalyzatId
		,MagatartasOsztalyzatNev
		,MagatartasSzoveg
		,MagatartasErtekId
		,MagatartasErtek
		,SzorgalomOsztalyzatId
		,SzorgalomOsztalyzatNev
		,SzorgalomSzoveg
		,SzorgalomErtekId
		,SzorgalomErtek
		,TanuloId
		,OsztalyCsoportId
		,TantargyId
		,TantargyNevZarojellel
		,TantargyNev
		,TantargyNevNyomtatvanyban
		,TargyKategoriaId
		,FotargyE
		,FotargyId
		,Altantargy
		,ErtekelesTema
		,Jeloles
		,JelolesAndErtekelesTema 
		,isMagatartasSzorgalom
	INTO #ErtekelesekTemp
	FROM fnGetDokumentumErtekelesekOsztalyonkent (@tanevId, @osztalyId, DEFAULT, DEFAULT, DEFAULT, DEFAULT)

--Tanulóhoz kapcsolódó óraszámok
	DECLARE @Oraszamok TABLE (TanuloId int, Tantargy INT, Oraszam INT)

	INSERT INTO @Oraszamok
	SELECT * FROM fnGetDokumentumTanulokEvesOraszamaiOsztalynkonet(@tanevId, @osztalyId)

--Értékelések	
	CREATE TABLE #temp
	(
		 TANULOID				INT
		,TARGY					NVARCHAR(MAX)
		,Jegyzet				NVARCHAR(MAX)
		,Ertekeles				NVARCHAR(MAX)
		,ErtekelesJegyzettel	NVARCHAR(MAX)
		,Oraszam				INT
		,RENDEZ1				INT
		,RENDEZ2				NVARCHAR(MAX)
		,RENDEZ3				INT
		,RENDEZ4				INT
		,RENDEZ5				NVARCHAR(MAX)
	)

	INSERT INTO #temp
	SELECT 
		 ErtekelesTemp.TanuloId									TANULOID
		,IIF(@isNemet = 0, 'MAGATARTAS', 'Betragen')			TARGY
		,NULL
		,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, MagatartasErtek, dbo.fnGetDokumentumNemet(MagatartasOsztalyzatId))), ISNULL(MagatartasSzoveg, IIF(@isNemet = 0, MagatartasOsztalyzatNev, dbo.fnGetDokumentumNemet(MagatartasOsztalyzatId))))
		,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, MagatartasErtek, dbo.fnGetDokumentumNemet(MagatartasOsztalyzatId))), ISNULL(MagatartasSzoveg, IIF(@isNemet = 0, MagatartasOsztalyzatNev, dbo.fnGetDokumentumNemet(MagatartasOsztalyzatId)))) ErtekelesJegyzettel
		,NULL					Oraszam
		,-2						RENDEZ1
		,NULL					RENDEZ2
		,NULL					RENDEZ3
		,NULL					RENDEZ4
		,NULL					RENDEZ5	
	FROM #ErtekelesekTemp ErtekelesTemp
		INNER JOIN @Tanulok TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId
	WHERE
		(KilepesDatum IS NULL OR KilepesDatum >= ErtekelesTemp.Datum)
		AND (MagatartasErtek IS NOT NULL OR MagatartasSzoveg IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL)
		AND TipusId = @ertekelesTipus --????

	
	INSERT INTO #TEMP
	SELECT 
		 ErtekelesTemp.TanuloId								TANULOID
		,IIF(@isNemet = 0, 'SZORGALOM', 'Fleiss')			TARGY
		,NULL															
		,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, SzorgalomErtek, dbo.fnGetDokumentumNemet(SzorgalomOsztalyzatId))), ISNULL(SzorgalomSzoveg, IIF(@isNemet = 0, SzorgalomOsztalyzatNev, dbo.fnGetDokumentumNemet(SzorgalomOsztalyzatId))))
		,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, SzorgalomErtek, dbo.fnGetDokumentumNemet(SzorgalomOsztalyzatId))), ISNULL(SzorgalomSzoveg, IIF(@isNemet = 0, SzorgalomOsztalyzatNev, dbo.fnGetDokumentumNemet(SzorgalomOsztalyzatId)))) ErtekelesJegyzettel
		,NULL					Oraszam
		,-2						RENDEZ1
		,NULL					RENDEZ2
		,NULL					RENDEZ3
		,NULL					RENDEZ4
		,NULL					RENDEZ5	
	FROM #ErtekelesekTemp ErtekelesTemp
		INNER JOIN @Tanulok TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId
	WHERE
		(KilepesDatum IS NULL OR KilepesDatum >= ErtekelesTemp.Datum)
		AND (SzorgalomErtek IS NOT NULL OR SzorgalomSzoveg IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL)
		AND TipusId = @ertekelesTipus --????

		/*
	INSERT INTO #TEMP
	SELECT 
		ERTEKELES.C_TANULOID	TANULOID
		, IIF(@isNemet = 0, 'MAGATARTAS', 'Betragen')			TARGY
		, SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1)		Ertekeles
		, NULL					Jegyzet
		, SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) ErtekelesJegyzettel
		, SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) SzovegesErtekeles
		, NULL					Oraszam
		, -2					RENDEZ1
		, NULL					RENDEZ2
		, NULL					RENDEZ3
		, NULL					RENDEZ4
		, NULL					RENDEZ5
	FROM T_TANULOERTEKELES_OSSZES ERTEKELES
		INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID 
		INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID 
	WHERE 
		 ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
		AND ERTEKELES.C_TANEVID = @TanevId
		AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
		AND ERTEKELES.TOROLT='F'
		AND OSZTALYZAT.TOROLT = 'F'
		AND C_ERTEKELESSZOVEG IS NOT NULL
		AND SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) IN ('rossz', 'változó', 'jó', 'példás', 'Vorbildlich', 'Gut', 'Wechselnd', 'Schlecht')
		AND SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) IN ('hanyag', 'változó', 'jó', 'példás', 'Vorbildlich', 'Gut', 'Wechselnd', 'Schlecht')

	INSERT INTO #TEMP
	SELECT 
		ERTEKELES.C_TANULOID	TANULOID
		, IIF(@isNemet = 0, 'SZORGALOM', 'Fleiss')	TARGY
		, SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG))		Ertekeles
		, NULL					Jegyzet
		, SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) ErtekelesJegyzettel
		, SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) SzovegesErtekeles
		, NULL					Oraszam
		, -1					RENDEZ1
		, NULL					RENDEZ2
		, NULL					RENDEZ3
		, NULL					RENDEZ4
		, NULL					RENDEZ5
	FROM T_TANULOERTEKELES_OSSZES ERTEKELES
		INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID 
		INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID 
	WHERE 
		 ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
		AND ERTEKELES.C_TANEVID = @TanevId
		AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
		AND ERTEKELES.TOROLT='F'
		AND OSZTALYZAT.TOROLT = 'F'
		AND C_ERTEKELESSZOVEG IS NOT NULL
		AND SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) IN ('rossz', 'változó', 'jó', 'példás', 'Vorbildlich', 'Gut', 'Wechselnd', 'Schlecht')
		AND SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) IN ('hanyag', 'változó', 'jó', 'példás', 'Vorbildlich', 'Gut', 'Wechselnd', 'Schlecht')
		

	INSERT INTO #TEMP 
	SELECT 
		ERTEKELES.C_TANULOID				TANULOID
		, IIF(@isNemet = 0, 'Magatartás / Szorgalom', 'Betragen / Fleiss')	TARGY
		, ERTEKELES.C_ERTEKELESSZOVEG Ertekeles
		, NULL					Jegyzet
		, ERTEKELES.C_ERTEKELESSZOVEG ErtekelesJegyzettel
		, ERTEKELES.C_ERTEKELESSZOVEG SzovegesErtekeles
		, NULL					Oraszam
		, -3					RENDEZ1
		, NULL					RENDEZ2
		, NULL					RENDEZ3
		, NULL					RENDEZ4
		, NULL					RENDEZ5
	FROM T_TANULOERTEKELES_OSSZES ERTEKELES
		INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID 
		INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID 
	WHERE 
		 ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
		AND ERTEKELES.C_TANEVID = @TanevId
		AND ERTEKELES.TOROLT='F'
		AND OSZTALYZAT.TOROLT = 'F'
		AND C_ERTEKELESSZOVEG IS NOT NULL
		AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
		AND SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) NOT IN ('rossz', 'változó', 'jó', 'példás')
		AND SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) NOT IN ('hanyag', 'változó', 'jó', 'példás')

		*/

	INSERT INTO #TEMP	
	SELECT 
		 ErtekelesTemp.TanuloId															TANULOID
		,ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev)		TARGY   
		,ErtekelesTemp.ErtekelesTema
		,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ErtekelesTemp.ErtekelesOsztalyzatNev, dbo.fnGetDokumentumNemet(ErtekelesTemp.ErtekelesOsztalyzatId))), ISNULL(ErtekelesTemp.ErtekelesSzoveg, CONVERT(NVARCHAR(MAX),ErtekelesTemp.ErtekelesSzazalek)+' % '))
		,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ErtekelesTemp.ErtekelesOsztalyzatNev, dbo.fnGetDokumentumNemet(ErtekelesTemp.ErtekelesOsztalyzatId))), ISNULL(ErtekelesTemp.ErtekelesSzoveg, CONVERT(NVARCHAR(MAX),ErtekelesTemp.ErtekelesSzazalek)+' % ')) + IIF(ErtekelesTemp.ErtekelesTema IS NULL, '', +' * ' + ErtekelesTemp.ErtekelesTema) ErtekelesJegyzettel
		,Oraszam											Oraszam
		,CASE WHEN ErtekelesTemp.FotargyId IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END 
		,ISNULL(ISNULL(FotargyTable.C_NEVNYOMTATVANYBAN, FotargyTable.C_NEV), ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev))
		,ISNULL(ErtekelesTemp.FotargyId, ErtekelesTemp.TantargyId)
		,ErtekelesTemp.FotargyId
		,ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev)
	FROM #ErtekelesekTemp ErtekelesTemp
		INNER JOIN @Tanulok TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId
		LEFT JOIN @Oraszamok OraszamTable ON OraszamTable.Tantargy = ErtekelesTemp.TantargyId AND OraszamTable.TanuloId = ErtekelesTemp.TanuloId
		LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = ErtekelesTemp.TargyKategoriaId AND TargyKategoriaDictionary.TOROLT = 'F' AND TargyKategoriaDictionary.C_TANEVID = @tanevId
		LEFT JOIN T_TANTARGY_OSSZES FotargyTable ON Ertekelestemp.FotargyId = FotargyTable.ID
		LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = FotargyTable.C_TARGYKATEGORIA AND FotargyKategoriaDictionary.C_TANEVID = FotargyTable.C_TANEVID
	WHERE 	
		ErtekelesTemp.TipusId = @ertekelesTipus 
		AND (ErtekelesTemp.FotargyE = 'T' OR ErtekelesTemp.Altantargy = 'T')
		AND (KilepesDatum IS NULL OR KilepesDatum >= ErtekelesTemp.Datum)
		AND ErtekelesTemp.TargyKategoriaId <> 1248
		AND ErtekelesTemp.isMagatartasSzorgalom = 'F'

	SELECT 
		TANULOID 
		,TARGY 
		,Jegyzet
		,Ertekeles
		,ErtekelesJegyzettel 
		,Oraszam 
		,RENDEZ1 
	FROM #temp
	ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
END

GO