SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

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

CREATE PROCEDURE [dbo].[sp_GetTanulokJegyeiReszletezes]
	@OsztalyId		INT,
	@TanevId		INT,
	@isNemet		BIT = 0

AS
BEGIN
	SET NOCOUNT ON;

SELECT DISTINCT 
	@osztalyId					OsztalyId
	,ocs.C_NEV					OsztalyNev
	,o.C_OSZTALYNAPLOLEIRASA	OsztalyMegjegyzes
	,o.C_OSZTALYFONOKID			PartnerID
	,ofo.C_NYOMTATASINEV		Osztalyfonok
	,i.C_IGAZGATONEVE			IntezmenyVezeto
	,i.C_NEV					IntezmenyNeve
	,i.C_IRANYITOSZAM			IntezmenyIranyitoszam
	,i.C_VAROS					IntezmenyVaros
	,dbo.fnGetDokumentumIntezmenyCime(@tanevId)	IntezmenyCime
	,i.C_OMKOD					IntezmenyOMKod
  FROM T_OSZTALYCSOPORT_OSSZES ocs 
  	INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.torolt='F'
  	LEFT  JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = o.C_OSZTALYFONOKID 
  	INNER JOIN T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID=ocs.C_INTEZMENYID AND i.C_TANEVID = ocs.C_TANEVID AND i.Torolt = 'F'
  WHERE 
	ocs.ID = @osztalyId

SELECT 
	 dbo.fnGetDokumentumDatumFormatum(Datum)										Datum
	,CASE																			--
		WHEN (CAST(ErtekelesOsztalyzatValue AS NVARCHAR(MAX))  IS NOT NULL			--
				OR ErtekelesSzoveg IS NOT NULL										--
				OR ErtekelesSzazalek IS NOT NULL)									--
		THEN TantargyNevZarojellel													--
		WHEN (CAST(MagatartasOsztalyzatNev AS NVARCHAR(MAX)) IS NOT NULL			--
				OR MagatartasErtek IS NOT NULL										--
				OR MagatartasSzoveg IS NOT NULL)									--
		THEN 'Magatartás'															--
		WHEN (CAST(SzorgalomOsztalyzatNev AS NVARCHAR(MAX)) IS NOT NULL				--
				OR SzorgalomErtek IS NOT NULL										--
				OR SzorgalomSzoveg IS NOT NULL)										--
		THEN 'Szorgalom'															--
	 END AS 																		Tantargy
	,ErtekelesTipusDictionary.C_NAME												ErtTip
	,ErtekelesModjaDictionary.C_NAME												ErtMod											
	,ErtekelesTema																	Tema
	,ErtekeloNeve.C_NYOMTATASINEV													ErtekeloNev	
	,COALESCE(
			 CAST(ErtekelesTable.ErtekelesOsztalyzatValue AS NVARCHAR(MAX))
			,ErtekelesTable.ErtekelesSzoveg
			,ErtekelesTable.ErtekelesSzazalek + '%'
			,ErtekelesTable.MagatartasOsztalyzatNev
			,ErtekelesTable.MagatartasErtek
			,ErtekelesTable.MagatartasSzoveg
			,ErtekelesTable.SzorgalomOsztalyzatNev
			,ErtekelesTable.SzorgalomErtek
			,ErtekelesTable.SzorgalomSzoveg
			)																		Osztalyzat
	,TanuloNeve.C_NYOMTATASINEV														TanuloNev
	,TanuloNeve.C_NYOMTATASINEV + CAST(ErtekelesTable.TanuloId AS NVARCHAR(MAX))	GroupParameter
FROM fnGetDokumentumErtekelesekOsztalyonkent(@TanevId, @OsztalyId, DEFAULT, 0, DEFAULT, DEFAULT) ErtekelesTable
	LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTable.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @TanevId
	LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesModjaDictionary ON ErtekelesModjaDictionary.ID = ErtekelesTable.ErtekelesModjaId AND ErtekelesTipusDictionary.C_TANEVID = @TanevId
	INNER JOIN T_FELHASZNALO_OSSZES ErtekeloNeve ON ErtekeloNeve.Id = ErtekelesTable.ErtekeloId
	INNER JOIN T_FELHASZNALO_OSSZES TanuloNeve ON TanuloNeve.Id = ErtekelesTable.TanuloId
WHERE 
	IsMagatartasSzorgalom = 'F'

UNION

SELECT 
	 dbo.fnGetDokumentumDatumFormatum(Datum)										Datum
	,'Magatartás'																	Tantargy
	,ErtekelesTipusDictionary.C_NAME												ErtTip
	,ErtekelesModjaDictionary.C_NAME												ErtMod											
	,ErtekelesTema																	Tema
	,ErtekeloNeve.C_NYOMTATASINEV													ErtekeloNev	
	,COALESCE(
			ErtekelesTable.MagatartasOsztalyzatNev
			,ErtekelesTable.MagatartasErtek
			,ErtekelesTable.MagatartasSzoveg
			)																		Osztalyzat
	,TanuloNeve.C_NYOMTATASINEV														TanuloNev
	,TanuloNeve.C_NYOMTATASINEV + CAST(ErtekelesTable.TanuloId AS NVARCHAR(MAX))	GroupParameter
FROM fnGetDokumentumErtekelesekOsztalyonkent(@TanevId, @OsztalyId, DEFAULT, 0, DEFAULT, DEFAULT) ErtekelesTable
	LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTable.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @TanevId
	LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesModjaDictionary ON ErtekelesModjaDictionary.ID = ErtekelesTable.ErtekelesModjaId AND ErtekelesTipusDictionary.C_TANEVID = @TanevId
	INNER JOIN T_FELHASZNALO_OSSZES ErtekeloNeve ON ErtekeloNeve.Id = ErtekelesTable.ErtekeloId
	INNER JOIN T_FELHASZNALO_OSSZES TanuloNeve ON TanuloNeve.Id = ErtekelesTable.TanuloId
WHERE 
	IsMagatartasSzorgalom = 'T'
	AND (MagatartasOsztalyzatNev IS NOT NULL OR MagatartasErtek IS NOT NULL OR MagatartasSzoveg IS NOT NULL)

UNION

SELECT 
	 dbo.fnGetDokumentumDatumFormatum(Datum)										Datum
	,'Szorgalom'																	Tantargy
	,ErtekelesTipusDictionary.C_NAME												ErtTip
	,ErtekelesModjaDictionary.C_NAME												ErtMod											
	,ErtekelesTema																	Tema
	,ErtekeloNeve.C_NYOMTATASINEV													ErtekeloNev	
	,COALESCE(			
			ErtekelesTable.SzorgalomOsztalyzatNev
			,ErtekelesTable.SzorgalomErtek
			,ErtekelesTable.SzorgalomSzoveg
			)																		Osztalyzat
	,TanuloNeve.C_NYOMTATASINEV														TanuloNev
	,TanuloNeve.C_NYOMTATASINEV + CAST(ErtekelesTable.TanuloId AS NVARCHAR(MAX))	GroupParameter
FROM fnGetDokumentumErtekelesekOsztalyonkent(@TanevId, @OsztalyId, DEFAULT, 0, DEFAULT, DEFAULT) ErtekelesTable
	LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTable.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @TanevId
	LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesModjaDictionary ON ErtekelesModjaDictionary.ID = ErtekelesTable.ErtekelesModjaId AND ErtekelesTipusDictionary.C_TANEVID = @TanevId
	INNER JOIN T_FELHASZNALO_OSSZES ErtekeloNeve ON ErtekeloNeve.Id = ErtekelesTable.ErtekeloId
	INNER JOIN T_FELHASZNALO_OSSZES TanuloNeve ON TanuloNeve.Id = ErtekelesTable.TanuloId
WHERE 
	IsMagatartasSzorgalom = 'T'
	AND (SzorgalomOsztalyzatNev IS NOT NULL	OR SzorgalomErtek IS NOT NULL OR SzorgalomSzoveg IS NOT NULL)
ORDER BY TanuloNeve.C_NYOMTATASINEV, Datum	

END

GO