﻿IF OBJECT_ID('fnGetDokumentumTanuloMentessegei') IS NOT NULL BEGIN
 DROP FUNCTION fnGetDokumentumTanuloMentessegei
END
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION fnGetDokumentumTanuloMentessegei (@tanevId INT, @osztalyId INT, @nyomtatvanyNyelvEnum INT = 0)
  RETURNS TABLE
RETURN (

		SELECT 
			 OsztalyTanuloi.TanuloId		TanuloId 
			,OsztalyTanuloi.TanuloCsoportId	TanuloCsoportId
			,mentesseg.mentessegOka			MentessegOka
			,mentesseg.tantargyNev + ' ' + ISNULL(IIF(mentesseg = '', '', '(' +  LEFT(mentesseg, LEN(mentesseg)- 1) + ')'),' ') TantargyNev
			,mentesseg.tantargyNev			TantargyNevMentessegNelkul
			,C_KEZDETE						Kezdete
		FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T')  OsztalyTanuloi
			INNER JOIN  (SELECT DISTINCT 
							 mentesseg.C_TANULOID tanuloId
							,s.TanuloCsoportId
							,CASE 
								WHEN @nyomtatvanyNyelvEnum = 0 THEN
									IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) 
								WHEN @nyomtatvanyNyelvEnum = 1 THEN
									ISNULL(C_NEMETNEV,  IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) )
								WHEN @nyomtatvanyNyelvEnum = 2 THEN
									ISNULL(C_ANGOLNEV,  IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) )
							 END tantargyNev
							,CASE 
							  WHEN C_KEZDETE IS NULL AND C_VEGE IS NULL THEN mentesseg.C_MENTESSEGOKA 
							  WHEN C_KEZDETE IS NOT NULL AND C_VEGE IS NOT NULL THEN mentesseg.C_MENTESSEGOKA  + ' ' + '(a felmentés érvényessége: ' + FORMAT(C_KEZDETE, 'yyyy.MM.dd.') + ' - ' + FORMAT(C_VEGE, 'yyyy.MM.dd.') + ')'
							  WHEN C_KEZDETE IS NULL AND C_VEGE IS NOT NULL THEN mentesseg.C_MENTESSEGOKA  + ' ' + '(a felmentés érvényessége: ' + ' - ' + FORMAT(C_VEGE, 'yyyy.MM.dd.') + ')'
							  WHEN C_KEZDETE IS NOT NULL AND C_VEGE IS NULL THEN mentesseg.C_MENTESSEGOKA  + ' ' + '(a felmentés érvényessége: ' + FORMAT(C_KEZDETE, 'yyyy.MM.dd.') + ' - ' + ')'
							END AS mentessegOka 
							,IIF(mentesseg.C_ERTEKELESMENTESITES = 'T', 'Értékelésmentesség, ', '') + IIF(mentesseg.C_ORAMENTESITES = 'T', 'Óramentesség, ', '') as mentesseg 
							,mentesseg.C_KEZDETE
						FROM T_TANULOMENTESSEG_OSSZES mentesseg
							INNER JOIN T_TANTARGY_OSSZES t on t.ID = mentesseg.C_TANTARGYID
							INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') s ON s.TanuloId = mentesseg.C_TANULOID
						WHERE 
							mentesseg.TOROLT='F' 
						) mentesseg ON OsztalyTanuloi.TanuloId = mentesseg.TANULOID AND OsztalyTanuloi.TanuloCsoportId = mentesseg.TanuloCsoportId
)