﻿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

AS
BEGIN
	SET NOCOUNT ON;
	
--Osztályhoz tartozó tanulók
	DECLARE @Tanulok TABLE (TanuloId int)
	INSERT INTO @Tanulok
	SELECT TanuloId FROM fnGetDokumentumOsztalyokTanuloi(@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	
	SELECT 
			ERTEKELES.C_TANULOID	TANULOID
			, 'MAGATARTAS'			TARGY
			, ISNULL(ERT.C_NAME, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, JEGY.C_NAME)) Ertekeles
			, NULL					Jegyzet
			, ISNULL(ERT.C_NAME, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, JEGY.C_NAME)) ErtekelesJegyzettel
			, ISNULL(ERT.C_NAME, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, JEGY.C_NAME)) SzovegesErtekeles
			, NULL					Oraszam
			, 1						RENDEZ
	FROM T_TANULOERTEKELES_OSSZES ERTEKELES
			INNER JOIN fnGetDokumentumOsztalyokTanuloi(@tanevId, @osztalyId, 'T') TANCSOPORT
			ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID 
			LEFT 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
	WHERE 
		ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
		AND ERTEKELES.C_TANEVID = @tanevId
		AND ERTEKELES.TOROLT='F'
		AND OSZTALYZAT.TOROLT = 'F'

	UNION

	SELECT 
			ERTEKELES.C_TANULOID	TANULOID
			, 'SZORGALOM'			TARGY
			, ISNULL(ERT.C_NAME, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, JEGY.C_NAME)) Ertekeles
			, NULL					Jegyzet
			, ISNULL(ERT.C_NAME, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, JEGY.C_NAME)) ErtekelesJegyzettel
			, ISNULL(ERT.C_NAME, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, JEGY.C_NAME)) SzovegesErtekeles
			, NULL					Oraszam
			, 2						RENDEZ
	FROM T_TANULOERTEKELES_OSSZES ERTEKELES
			INNER JOIN fnGetDokumentumOsztalyokTanuloi(@tanevId, @osztalyId, 'T') TANCSOPORT
			ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID 
			LEFT 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
	WHERE 
		 ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
		AND ERTEKELES.C_TANEVID = @TanevId
		AND ERTEKELES.TOROLT='F'
		AND OSZTALYZAT.TOROLT = 'F'

	UNION 

	SELECT 
		   ERTEKELES.C_TANULOID									TANULOID
		   , ISNULL(TARGY.C_NEVNYOMTATVANYBAN, TARGY.TARGYNEV)	TARGY
		   , ISNULL(ERT.C_NAME, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, CONVERT(NVARCHAR(MAX),ertekelesMegjegyzes.C_SZAZALEK)+' % '))	Ertekeles	   
		   , ertekelesMegjegyzes.C_TEMA							Jegyzet
		   , ISNULL(ERT.C_NAME, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, CONVERT(NVARCHAR(MAX),ertekelesMegjegyzes.C_SZAZALEK)+' % ')) + IIF(ertekelesMegjegyzes.C_TEMA IS NULL, '', +' * '+ertekelesMegjegyzes.C_TEMA) ErtekelesJegyzettel
		   , ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, ERT.C_NAME)	SzovegesErtekeles
		   , Oraszam											Oraszam
		   , TARGY.KAT											RENDEZ
	FROM T_TANULOERTEKELES_OSSZES ERTEKELES
			INNER JOIN fnGetDokumentumOsztalyokTanuloi(@tanevId, @osztalyId, 'T') TANCSOPORT
			ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID 
			INNER JOIN ( SELECT ID,C_NEV TARGYNEV,C_TARGYKATEGORIA KAT, C_ALTANTARGYKENTNYOMTATVANYBAN, C_FOTARGYE, C_NEVNYOMTATVANYBAN FROM T_TANTARGY_OSSZES where TOROLT = 'F') TARGY 
			ON TARGY.ID = ERTEKELES.C_TANTARGYID
			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
	WHERE 	
		ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus 
		AND ERTEKELES.C_TANEVID = @tanevId
		AND ERTEKELES.TOROLT='F'
		AND (TARGY.C_FOTARGYE = 'T' OR TARGY.C_ALTANTARGYKENTNYOMTATVANYBAN='T')
	ORDER BY TANULOID, RENDEZ
	
END

GO