56 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
IF OBJECT_ID('fnGetDokumentumMulasztasokOsztalyonkentReszletes') IS NOT NULL
 | 
						|
BEGIN
 | 
						|
	DROP FUNCTION fnGetDokumentumMulasztasokOsztalyonkentReszletes
 | 
						|
END
 | 
						|
GO
 | 
						|
 | 
						|
CREATE FUNCTION fnGetDokumentumMulasztasokOsztalyonkentReszletes (@tanevId INT, @osztalyCsoportId INT, @iskolaErdekuSzamit BIT, @csakKivlasztottOsztalyCsoport BIT = 0, @atsoroltTanuloMulasztas BIT = 1, @idoszakEleje DATE = NULL, @idoszakVege DATE = NULL, @csakTanoraiCelu INT = 1)
 | 
						|
  RETURNS TABLE
 | 
						|
RETURN (
 | 
						|
SELECT
 | 
						|
	 C_ORATANULOIID			TanuloId
 | 
						|
	,TanuloCsoportId
 | 
						|
	,TanitasiOra.C_OSZTALYCSOPORTID		OsztalyCsoportId
 | 
						|
	,OsztalyCsoport.C_NEV	OsztalyCsoportNev
 | 
						|
	,C_TIPUS				Tipusa
 | 
						|
	,C_IGAZOLT				Igazolt
 | 
						|
	,C_IGAZOLASTIPUSA		IgazolasTipusa
 | 
						|
	,C_KESESPERCBEN			KesesPercben
 | 
						|
	,C_DATUM				Datum
 | 
						|
	,IIF(C_CSENGETESIRENDORAID IS NULL, dbo.fnGetDokumentumOrakezdetToOraszam(CONVERT(VARCHAR(5), C_ORAKEZDETE, 108), @tanevId), TanitasiOra.C_ORASZAM)	Oraszam
 | 
						|
	,C_TANTARGYID			TantargyId
 | 
						|
	,ISNULL(t.C_NEVNYOMTATVANYBAN, t.C_NEV)	TantargyNev
 | 
						|
	,NaptariHetek.C_HETSORSZAMA				HetSorszama
 | 
						|
	,C_GYAKORLATI			Gyakorlati
 | 
						|
FROM T_TANULOMULASZTAS_OSSZES TanuloMulasztas
 | 
						|
	INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyCsoportId, 'T') AS TANULO ON TANULO.TanuloId = TanuloMulasztas.C_ORATANULOIID
 | 
						|
	INNER JOIN T_TANITASIORA_OSSZES TanitasiOra ON TanitasiOra.ID = TanuloMulasztas.C_TANITASIORAKID
 | 
						|
	INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON 
 | 
						|
				TanuloCsoport.C_TANULOID = TanuloMulasztas.C_ORATANULOIID 
 | 
						|
				AND TanuloCsoport.C_OSZTALYCSOPORTID = TanitasiOra.C_OSZTALYCSOPORTID 
 | 
						|
				AND TanuloCsoport.TOROLT = 'F'
 | 
						|
				AND TanitasiOra.C_DATUM BETWEEN TanuloCsoport.C_BELEPESDATUM AND ISNULL(TanuloCsoport.C_KILEPESDATUM, GETDATE())
 | 
						|
	INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = TanitasiOra.C_OSZTALYCSOPORTID
 | 
						|
		and OsztalyCsoport.C_FELADATKATEGORIAID = (SELECT tev.C_DEFAULTFELADATKATEGORIAID FROM T_TANEV_OSSZES tev WHERE tev.ID = OsztalyCsoport.C_TANEVID)
 | 
						|
	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 
 | 
						|
	    TanuloMulasztas.C_TIPUS IN (1499, 1500)
 | 
						|
	AND	TANULO.BelepesDatum <= TanitasiOra.C_DATUM
 | 
						|
	AND	(TANULO.KilepesDatum IS NULL OR TANULO.KilepesDatum >= TanitasiOra.C_DATUM)
 | 
						|
	AND (@csakTanoraiCelu = 0 OR 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
 | 
						|
	AND (@atsoroltTanuloMulasztas = 1 OR (TanitasiOra.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, @csakTanoraiCelu))))
 | 
						|
	AND (@csakKivlasztottOsztalyCsoport = 0 OR TanitasiOra.C_OSZTALYCSOPORTID = @osztalyCsoportId)
 | 
						|
	AND (@idoszakEleje IS NULL OR C_DATUM >= @idoszakEleje)
 | 
						|
	AND (@idoszakVege IS NULL OR C_DATUM <= @idoszakVege)
 | 
						|
)
 | 
						|
 | 
						|
GO |