kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20200401111557_KRETA2_3649/uspGetDokumentumTanarKapcsolodoOsztalyai.sql
2024-03-13 00:33:46 +01:00

121 lines
4.7 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS dbo.uspGetDokumentumTanarKapcsolodoOsztalyai
GO
CREATE PROCEDURE dbo.uspGetDokumentumTanarKapcsolodoOsztalyai
@pTanarId int
,@pTanevId int
,@pOsztalyKell bit = 1
,@pCsoportKell bit = 1
,@pTartottOraKell bit = 1
,@pFeladatKategoriaId int = null
AS
BEGIN
DECLARE @sql nvarchar(max)
DECLARE @intezmenyId int
,@rendszerBeallitas bit
SELECT @intezmenyId = C_INTEZMENYID FROM T_TANEV_OSSZES WHERE ID = @pTanevId AND TOROLT = 'F'
SET @rendszerBeallitas = (SELECT dbo.fnGetRendszerbeallitasEnumBool(7802, @intezmenyId, @pTanevId)) -- osszes_dokumentum_eleresenek_engedelyezese_szaktanarok_es_osztalyfonokok_reszere
IF (1758 IN (SELECT C_SZEREPKORTIPUS FROM T_FELHASZNALO_SZEREPKOR INNER JOIN T_SZEREPKOR ON T_SZEREPKOR.ID = T_FELHASZNALO_SZEREPKOR.C_SZEREPKORID WHERE T_FELHASZNALO_SZEREPKOR.C_FELHASZNALOID = @pTanarId))
OR ((SELECT C_MUNKAKORTIPUSA FROM T_MUNKAUGYIADATOK WHERE C_ALKALMAZOTTID = @pTanarId) IN (1762, 1763, 3027, 3028))
OR ((SELECT C_VEZETOIORASZAMOK FROM T_MUNKAUGYIADATOK WHERE C_ALKALMAZOTTID = @pTanarId) IN (6572, 6573, 6574)) -- 6572 - Intézményvezetõ, 6573 - Tagintézmény-vezetõ, 6574 - Intézményegység-vezetõ
OR (@rendszerBeallitas = 1)
BEGIN
IF @pOsztalyKell = 1 BEGIN
SET @sql = CONCAT(N'
SELECT o.ID
FROM T_OSZTALY_OSSZES o
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = o.ID',
IIF(@pFeladatKategoriaId IS NOT NULL
,N'
AND OsztalyCsoport.C_FELADATKATEGORIAID = @pFeladatKategoriaId'
,'')
,N'
AND OsztalyCsoport.C_TANEVID = o.C_ALTANEVID
AND OsztalyCsoport.TOROLT = ''F''
WHERE o.C_ALTANEVID = @pTanevId
AND o.TOROLT = ''F''')
END
IF @pCsoportKell = 1 BEGIN
SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + N'UNION ALL' + CHAR(13) + CHAR(10), N'') + CONCAT(N'
SELECT cs.ID
FROM T_CSOPORT_OSSZES cs
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = cs.ID',
IIF(@pFeladatKategoriaId IS NOT NULL
,N'
AND OsztalyCsoport.C_FELADATKATEGORIAID = @pFeladatKategoriaId'
,'')
,N'
AND OsztalyCsoport.C_TANEVID = cs.C_ALTANEVID
AND OsztalyCsoport.TOROLT = ''F''
WHERE cs.C_ALTANEVID = @pTanevId
AND cs.TOROLT = ''F''')
END
END
ELSE BEGIN
IF @pOsztalyKell = 1 BEGIN
SET @sql = CONCAT(N'
SELECT ocs.ID
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
AND o.C_ALTANEVID = ocs.C_TANEVID
AND o.TOROLT = ''F''
WHERE (o.C_OSZTALYFONOKID = @pTanarId OR o.C_OFOHELYETTESID = @pTanarId)',
IIF(@pFeladatKategoriaId IS NOT NULL
,N'
AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId'
,'')
,N'
AND ocs.C_TANEVID = @pTanevId
AND ocs.TOROLT = ''F''')
END
IF @pCsoportKell = 1 BEGIN
SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + N'UNION ALL' + CHAR(13) + CHAR(10), N'') + CONCAT(N'
SELECT ocs.ID
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID
AND cs.C_ALTANEVID = ocs.C_TANEVID
AND cs.TOROLT = ''F''
WHERE cs.C_CSOPORTVEZETOID = @pTanarId',
IIF(@pFeladatKategoriaId IS NOT NULL
,N'
AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId'
,'')
,N'
AND ocs.C_TANEVID = @pTanevId
AND ocs.TOROLT = ''F''')
END
IF @pTartottOraKell = 1 BEGIN
IF @pOsztalyKell = 1 BEGIN
SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + 'UNION' + CHAR(13) + CHAR(10), '') + '
SELECT f.C_OSZTALYCSOPORTID
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_OSZTALY_OSSZES o ON o.id = f.C_OSZTALYCSOPORTID
AND o.C_ALTANEVID = f.C_TANEVID
AND o.TOROLT = ''F''
WHERE f.C_TANARID = @pTanarId
AND f.C_TANEVID = @pTanevId
AND f.TOROLT = ''F'''
END
IF @pCsoportKell = 1 BEGIN
SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + 'UNION' + CHAR(13) + CHAR(10), '') + '
SELECT f.C_OSZTALYCSOPORTID
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_CSOPORT cs ON cs.id = f.C_OSZTALYCSOPORTID
AND cs.C_ALTANEVID = f.C_TANEVID
AND cs.TOROLT = ''F''
WHERE f.C_TANARID = @pTanarId
AND f.C_TANEVID = @pTanevId
AND f.TOROLT = ''F'''
END
END
END
EXEC sp_executesql @sql, N'@pTanarId int, @pFeladatKategoriaId int, @pTanevId int', @pTanarId, @pFeladatKategoriaId, @pTanevId
END
GO