﻿GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

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

CREATE PROCEDURE 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') 

--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)
		,Ertekeles				NVARCHAR(MAX)
		,Jegyzet				NVARCHAR(MAX)
		,ErtekelesJegyzettel	NVARCHAR(MAX)
		,SzovegesErtekeles		NVARCHAR(MAX)
		,Oraszam				INT
		,RENDEZ1				INT
		,RENDEZ2				NVARCHAR(MAX)
		,RENDEZ3				INT
		,RENDEZ4				INT
		,RENDEZ5				NVARCHAR(MAX)
	)

	INSERT INTO #temp
	SELECT 
		ERTEKELES.C_TANULOID	TANULOID
		, IIF(@isNemet = 0, 'MAGATARTAS', 'Betragen')			TARGY
		, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_MAGATARTAS))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) Ertekeles
		, NULL					Jegyzet
		, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_MAGATARTAS))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) ErtekelesJegyzettel
		, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_MAGATARTAS))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) SzovegesErtekeles
		, NULL					Oraszam
		, -2					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 
		LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=OSZTALYZAT.C_MAGATARTAS AND ERT.C_TANEVID = @tanevId
		LEFT JOIN T_DICTIONARYITEMBASE_OSSZES JEGY ON JEGY.ID=ERTEKELES.C_OSZTALYZAT AND JEGY.C_TANEVID = @tanevId
		LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = ERTEKELES.C_OSZTALYCSOPORTID
	WHERE 
		ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
		AND ERTEKELES.C_TANEVID = @tanevId
		AND ERTEKELES.TOROLT='F'
		AND OSZTALYZAT.TOROLT = 'F'
		AND C_ERTEKELESSZOVEG IS NULL
		AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
		AND (cs.Id IS NULL OR cs.C_TIPUSA = 1034)

	
	INSERT INTO #TEMP
	SELECT 
		ERTEKELES.C_TANULOID	TANULOID
		, IIF(@isNemet = 0, 'SZORGALOM', 'Fleiss')			TARGY
		, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_SZORGALOM))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) Ertekeles
		, NULL					Jegyzet
		, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_SZORGALOM))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) ErtekelesJegyzettel
		, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_SZORGALOM))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) SzovegesErtekeles
		, NULL					Oraszam
		, -1					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 
		LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=OSZTALYZAT.C_SZORGALOM AND ERT.C_TANEVID = @tanevId
		LEFT JOIN T_DICTIONARYITEMBASE_OSSZES JEGY ON JEGY.ID=ERTEKELES.C_OSZTALYZAT AND JEGY.C_TANEVID = @tanevId
		LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = ERTEKELES.C_OSZTALYCSOPORTID
	WHERE 
		 ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
		AND ERTEKELES.C_TANEVID = @TanevId
		AND ERTEKELES.TOROLT='F'
		AND OSZTALYZAT.TOROLT = 'F'
		AND C_ERTEKELESSZOVEG IS NULL
		AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
		AND (cs.Id IS NULL OR cs.C_TIPUSA = 1034)

	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 
		 ERTEKELES.C_TANULOID								TANULOID
		, ISNULL(TARGY.C_NEVNYOMTATVANYBAN, TARGY.C_NEV)	TARGY
		, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, CONVERT(NVARCHAR(MAX),ertekelesMegjegyzes.C_SZAZALEK)+' % '))	Ertekeles	   
		, ertekelesMegjegyzes.C_TEMA						Jegyzet
		, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, CONVERT(NVARCHAR(MAX),ertekelesMegjegyzes.C_SZAZALEK)+' % ')) + IIF(ertekelesMegjegyzes.C_TEMA IS NULL, '', +' * '+ertekelesMegjegyzes.C_TEMA) ErtekelesJegyzettel
		, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))	SzovegesErtekeles
		, Oraszam											Oraszam
		, CASE WHEN TARGY.C_FOTARGYID IS NULL THEN TargyKategoriaDictionary.C_ORDER ELSE FotargyKategoriaDictionary.C_ORDER END 
		, ISNULL(fotargy.C_NEV, TARGY.C_NEV)
		, ISNULL(TARGY.C_FOTARGYID, Targy.ID)
		, TARGY.C_FOTARGYID
		, TARGY.C_NEV
	FROM T_TANULOERTEKELES_OSSZES ERTEKELES
		INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID 
		INNER JOIN T_TANTARGY_OSSZES  TARGY ON TARGY.ID = ERTEKELES.C_TANTARGYID
		LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary on TARGY.C_TARGYKATEGORIA = TargyKategoriaDictionary.Id and TargyKategoriaDictionary.C_TANEVID = @tanevId
		LEFT JOIN T_TANTARGY_OSSZES fotargy ON TARGY.C_FOTARGYID = fotargy.ID
		LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = fotargy.C_TARGYKATEGORIA AND FotargyKategoriaDictionary.C_INTEZMENYID = fotargy.C_INTEZMENYID AND FotargyKategoriaDictionary.C_TANEVID = fotargy.C_TANEVID
		LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=ERTEKELES.C_OSZTALYZAT AND ERT.C_TANEVID = @tanevId
		LEFT JOIN T_OSZTALYZATERTEKELES_OSSZES ertekelesMegjegyzes on ertekelesMegjegyzes.ID=ertekeles.Id
		LEFT JOIN @Oraszamok oraszam ON oraszam.Tantargy = ERTEKELES.C_TANTARGYID AND oraszam.TanuloId = ERTEKELES.C_TANULOID
		LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = ERTEKELES.C_OSZTALYCSOPORTID
	WHERE 	
		ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus 
		AND ERTEKELES.C_TANEVID = @tanevId
		AND ERTEKELES.TOROLT='F'
		AND (TARGY.C_FOTARGYE = 'T' OR TARGY.C_ALTANTARGYKENTNYOMTATVANYBAN='T')
		AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
		AND (cs.Id IS NULL OR cs.C_TIPUSA = 1034)
		AND TARGY.C_TARGYKATEGORIA <> 1248

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

GO