102 lines
4.7 KiB
Transact-SQL
102 lines
4.7 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 @result TABLE (
|
|
TanuloId int
|
|
,TanuloCsoportId int
|
|
,OsztalyCsoportId int
|
|
,OsztalyCsoportNev nvarchar (255)
|
|
,Tipusa int
|
|
,Igazolt char (1)
|
|
,IgazolasTipusa int
|
|
,KesesPercben int null
|
|
,Datum datetime
|
|
,Oraszam nvarchar (255)
|
|
,OraszamWithOrakezdeteVege nvarchar (255)
|
|
,TantargyId int
|
|
,TantargyNev nvarchar (255)
|
|
,HetSorszama int
|
|
,Gyakorlati char(1)
|
|
,Tanorai char(1)
|
|
,RENDEZ1 INT
|
|
,RENDEZ2 NVARCHAR(510)
|
|
,RENDEZ3 INT
|
|
,RENDEZ4 INT
|
|
,RENDEZ5 NVARCHAR(510)
|
|
)
|
|
AS BEGIN
|
|
|
|
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
|
|
|
|
INSERT INTO @result
|
|
SELECT
|
|
C_ORATANULOIID AS TanuloId
|
|
,TanuloCsoport.ID AS TanuloCsoportId
|
|
,TanitasiOra.C_OSZTALYCSOPORTID AS OsztalyCsoportId
|
|
,OsztalyCsoport.C_NEV AS OsztalyCsoportNev
|
|
,C_TIPUS AS Tipusa
|
|
,C_IGAZOLT AS Igazolt
|
|
,C_IGAZOLASTIPUSA AS IgazolasTipusa
|
|
,C_KESESPERCBEN AS KesesPercben
|
|
,C_DATUM AS Datum
|
|
,IIF(C_CSENGETESIRENDORAID IS NULL, dbo.fnGetDokumentumOrakezdetToOraszam(CONVERT(VARCHAR(5), C_ORAKEZDETE, 108), @tanevId), TanitasiOra.C_ORASZAM) AS 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)) AS OraszamWithOrakezdeteVege
|
|
,C_TANTARGYID AS TantargyId
|
|
,ISNULL(t.C_NEVNYOMTATVANYBAN, t.C_NEV) AS TantargyNev
|
|
,C_HETSORSZAMA AS HetSorszama
|
|
,t.C_GYAKORLATI AS Gyakorlati
|
|
,IIF(o.ID IS NOT NULL OR tanorai.tanoraiId IS NOT NULL, 'T', 'F') AS Tanorai
|
|
,CASE WHEN t.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END as RENDEZ1
|
|
,COALESCE(FotargyTable.C_NEVNYOMTATVANYBAN, FotargyTable.C_NEV, t.C_NEV) as RENDEZ2
|
|
,ISNULL(t.C_FOTARGYID, t.ID) as RENDEZ3
|
|
,t.C_FOTARGYID as RENDEZ4
|
|
,ISNULL(t.C_NEVNYOMTATVANYBAN, t.C_NEV) as RENDEZ5
|
|
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 = @kategoriaId
|
|
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = TanitasiOra.C_TANTARGYID
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = t.C_TARGYKATEGORIA
|
|
AND TargyKategoriaDictionary.TOROLT = 'F'
|
|
AND TargyKategoriaDictionary.C_TANEVID = @tanevId
|
|
LEFT JOIN T_TANTARGY_OSSZES FotargyTable ON t.C_FOTARGYID = FotargyTable.ID
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = FotargyTable.C_TARGYKATEGORIA
|
|
AND FotargyKategoriaDictionary.TOROLT = 'F'
|
|
AND FotargyKategoriaDictionary.C_TANEVID = FotargyTable.C_TANEVID
|
|
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)
|
|
|
|
RETURN
|
|
END
|
|
GO
|