50 lines
3.0 KiB
Transact-SQL
50 lines
3.0 KiB
Transact-SQL
|
|
DROP FUNCTION IF EXISTS fnGetDokumentumMulasztasokOsztalyonkentReszletes
|
|
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
|
|
,TanuloCsoport.ID as 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
|
|
,IIF(C_CSENGETESIRENDORAID IS NULL,
|
|
CONCAT(CONVERT(NVARCHAR(5), TanitasiOra.C_ORAKEZDETE, 108), '-', CONVERT(NVARCHAR(5), TanitasiOra.C_ORAVEGE, 108))
|
|
,CAST(TanitasiOra.C_ORASZAM AS NVARCHAR)) OraszamWithOrakezdeteVege
|
|
,C_TANTARGYID TantargyId
|
|
,ISNULL(t.C_NEVNYOMTATVANYBAN, t.C_NEV) TantargyNev
|
|
,C_HETSORSZAMA HetSorszama
|
|
,C_GYAKORLATI Gyakorlati
|
|
,IIF(o.ID IS NOT NULL OR tanorai.tanoraiId IS NOT NULL, 'T', 'F') AS Tanorai
|
|
FROM T_TANULOMULASZTAS_OSSZES TanuloMulasztas
|
|
INNER JOIN T_TANITASIORA_OSSZES TanitasiOra ON TanitasiOra.ID = TanuloMulasztas.C_TANITASIORAKID AND TanitasiOra.TOROLT='F'
|
|
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANULOID = TanuloMulasztas.C_ORATANULOIID
|
|
AND TanuloCsoport.TOROLT = 'F'
|
|
AND TanitasiOra.C_DATUM >= TanuloCsoport.C_BELEPESDATUM AND TanitasiOra.C_DATUM < ISNULL(TanuloCsoport.C_KILEPESDATUM, GETDATE())
|
|
AND TanuloCsoport.C_OSZTALYCSOPORTID=@osztalyCsoportId
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = TanitasiOra.C_OSZTALYCSOPORTID
|
|
AND OsztalyCsoport.C_FELADATKATEGORIAID = 7553
|
|
INNER JOIN T_TANTARGY_OSSZES t on t.ID = TanitasiOra.C_TANTARGYID
|
|
LEFT JOIN (
|
|
SELECT tanorai.ID as tanoraiId,cs.ID as CsoportId FROM T_CSOPORT_OSSZES cs
|
|
INNER JOIN fnGetTanoraiCeluCsoportTipusok(@tanevId) tanorai ON tanorai.ID = cs.C_TIPUSA
|
|
) tanorai ON tanorai.CsoportId = OsztalyCsoport.ID
|
|
LEFT JOIN T_OSZTALY_OSSZES o ON o.ID=TanitasiOra.C_OSZTALYCSOPORTID
|
|
WHERE TanuloMulasztas.C_TIPUS IN (1499, 1500) AND TanuloMulasztas.C_INTEZMENYID=TanitasiOra.C_INTEZMENYID
|
|
AND (@csakTanoraiCelu = 0 OR (o.ID IS NOT NULL OR tanorai.tanoraiId IS NOT NULL))
|
|
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA IS NULL OR C_IGAZOLASTIPUSA <> 1533))
|
|
AND TanuloMulasztas.TOROLT = 'F'
|
|
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 |