121 lines
4.7 KiB
Transact-SQL
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
|
|
|
|
|