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

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION fnGetDokumentumMulasztasokOsztalyonkentReszletes (@tanevId INT, @osztalyCsoportId INT, @iskolaErdekuSzamit BIT)
  RETURNS TABLE
RETURN (
SELECT
	C_ORATANULOIID			TanuloId
	,C_OSZTALYCSOPORTID		OsztalyCsoportId
	,OsztalyCsoport.C_NEV	OsztalyCsoportNev
	,C_TIPUS				Tipusa
	,C_IGAZOLT				Igazolt
	,C_IGAZOLASTIPUSA		IgazolasTipusa
	,C_KESESPERCBEN			KesesPercben
	,C_DATUM				Datum
	,C_ORASZAM				Oraszam
	,C_TANTARGYID			TantargyId
	,ISNULL(t.C_NEVNYOMTATVANYBAN, t.C_NEV)	TantargyNev
	,NaptariHetek.C_HETSORSZAMA				HetSorszama
FROM T_TANULOMULASZTAS_OSSZES TanuloMulasztas
	INNER JOIN T_TANITASIORA_OSSZES TanitasiOra ON TanitasiOra.ID = TanuloMulasztas.C_TANITASIORAKID
	INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = TanitasiOra.C_OSZTALYCSOPORTID
	INNER JOIN T_TANTARGY_OSSZES t on t.ID = TanitasiOra.C_TANTARGYID
	INNER JOIN T_NAPTARIHET_OSSZES NaptariHetek ON TanitasiOra.C_DATUM BETWEEN NaptariHetek.C_HETKEZDONAPJA AND NaptariHetek.C_HETUTOLSONAPJA
WHERE 
	C_ORATANULOIID IN (SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyCsoportId, 'T'))
	AND TanuloMulasztas.C_TIPUS IN (1499, 1500)
	AND TanitasiOra.C_OSZTALYCSOPORTID IN (SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId))
	AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA IS NULL OR C_IGAZOLASTIPUSA <> 1533)) 
	AND TanuloMulasztas.TOROLT = 'F'
	AND NaptariHetek.C_TANEVID = @tanevId
)