SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

DROP PROCEDURE IF EXISTS dbo.sp_GetTanulokJegyeiReszletezes
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											
	,ErtekelesTable.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(Tanulok.TanuloId AS NVARCHAR(MAX))	GroupParameter
  ,Tanulok.TanuloId  AS TanuloId
  ,TanuloNeve.C_OKTATASIAZONOSITO AS TanuloOktAzon
  ,ErtekelesTable.ErtekeloId  AS ErtekeloId
  ,ErtekeloNeve.C_OKTATASIAZONOSITO AS ErtekeloOktAzon
  ,@OsztalyId AS OsztalyId
  ,dbo.fnGetDokumentumDatumFormatum(ErtekelesTable.RogzitesDatum) AS RogzitesDatum
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@TanevId, @OsztalyId, 'F') AS Tanulok
  LEFT JOIN fnGetDokumentumErtekelesekOsztalyonkent(@TanevId, @OsztalyId, DEFAULT, 0, DEFAULT, DEFAULT, DEFAULT) ErtekelesTable ON ErtekelesTable.TanuloId = Tanulok.TanuloId AND ErtekelesTable.IsMagatartasSzorgalom = 'F'
	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 ErtekelesModjaDictionary.C_TANEVID = @TanevId
	LEFT JOIN T_FELHASZNALO_OSSZES ErtekeloNeve ON ErtekeloNeve.Id = ErtekelesTable.ErtekeloId
	INNER JOIN T_FELHASZNALO_OSSZES TanuloNeve ON TanuloNeve.Id = Tanulok.TanuloId

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(Tanulok.TanuloId AS NVARCHAR(MAX))	GroupParameter
  ,Tanulok.TanuloId  AS TanuloId
  ,TanuloNeve.C_OKTATASIAZONOSITO AS TanuloOktAzon
  ,ErtekelesTable.ErtekeloId  AS ErtekeloId
  ,ErtekeloNeve.C_OKTATASIAZONOSITO AS ErtekeloOktAzon
  ,@OsztalyId AS OsztalyId
  ,dbo.fnGetDokumentumDatumFormatum(ErtekelesTable.RogzitesDatum) AS RogzitesDatum
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@TanevId, @OsztalyId, 'F') AS Tanulok
  LEFT JOIN fnGetDokumentumErtekelesekOsztalyonkent(@TanevId, @OsztalyId, DEFAULT, 0, DEFAULT, DEFAULT, DEFAULT) ErtekelesTable ON ErtekelesTable.TanuloId = Tanulok.TanuloId AND ErtekelesTable.IsMagatartasSzorgalom = 'T'
	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 ErtekelesModjaDictionary.C_TANEVID = @TanevId
	LEFT JOIN T_FELHASZNALO_OSSZES ErtekeloNeve ON ErtekeloNeve.Id = ErtekelesTable.ErtekeloId
	INNER JOIN T_FELHASZNALO_OSSZES TanuloNeve ON TanuloNeve.Id = Tanulok.TanuloId
WHERE 
  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(Tanulok.TanuloId AS NVARCHAR(MAX))	GroupParameter
  ,Tanulok.TanuloId  AS TanuloId
  ,TanuloNeve.C_OKTATASIAZONOSITO AS TanuloOktAzon
  ,ErtekelesTable.ErtekeloId  AS ErtekeloId
  ,ErtekeloNeve.C_OKTATASIAZONOSITO AS ErtekeloOktAzon
  ,@OsztalyId AS OsztalyId
  ,dbo.fnGetDokumentumDatumFormatum(ErtekelesTable.RogzitesDatum) AS RogzitesDatum
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@TanevId, @OsztalyId, 'F') AS Tanulok
  LEFT JOIN fnGetDokumentumErtekelesekOsztalyonkent(@TanevId, @OsztalyId, DEFAULT, 0, DEFAULT, DEFAULT, DEFAULT) ErtekelesTable ON ErtekelesTable.TanuloId = Tanulok.TanuloId AND ErtekelesTable.IsMagatartasSzorgalom = 'T'
	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 ErtekelesModjaDictionary.C_TANEVID = @TanevId
	LEFT JOIN T_FELHASZNALO_OSSZES ErtekeloNeve ON ErtekeloNeve.Id = ErtekelesTable.ErtekeloId
	INNER JOIN T_FELHASZNALO_OSSZES TanuloNeve ON TanuloNeve.Id = Tanulok.TanuloId
WHERE 
  SzorgalomOsztalyzatNev IS NOT NULL	OR SzorgalomErtek IS NOT NULL OR SzorgalomSzoveg IS NOT NULL
ORDER BY TanuloNeve.C_NYOMTATASINEV, Datum	

    /* Osztály adatok */
  SELECT
    o.ID AS OsztalyId
    ,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
    ,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
    ,o.C_KEPZESIFORMA AS KepzesiForma
    ,o.C_OSZTALYFONOKID AS OsztalyfonokId
    ,o.C_TANTERVID AS TantervId
    ,o.C_SZAKMACSOPORT AS SzakmaCsoport
    ,o.C_AGAZAT AS Agazat
    ,o.C_SZAKKEPESITES AS Szakkepesites
    ,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
	  ,ocs.C_KERESZTFELEVES	OJCSJKeresztfeleves
	  ,ocs.C_VEGZOSEVFOLYAM	CSJVegzosEvfolyamu
	  ,o.C_TECHNIKAIOSZTALY	OJTechnikaiOsztaly
	  ,o.C_NEMZETISEGI		OJNemzetisegi
	  ,o.C_KETTANNYELVU		OJKettannyelvu
	  ,o.C_NYELVIELOKESZITO	OJNyelviElokeszito
	  ,o.C_LOGOPEDIAI			OJLogopediai
	  ,o.C_SPORT				OJSportOsztaly
	  ,o.C_AJPROGRAM			OJAranyJanosProgram
	  ,o.C_GYOGYPEDAGOGIAI	OJGyogypedagogiai
  FROM T_OSZTALY_OSSZES AS o
    INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F'
  WHERE o.ID = @OsztalyId

END

GO