103 lines
3.9 KiB
Transact-SQL
103 lines
3.9 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspGetTanuloOsztalyCsoportjai
|
|
GO
|
|
|
|
CREATE PROCEDURE uspGetTanuloOsztalyCsoportjai
|
|
@pTanuloIds nvarchar (max)
|
|
,@pTanevId int
|
|
,@pIsAktiv bit
|
|
,@pIsFromSzervezet bit
|
|
,@pFeladatKategoriaId int
|
|
,@pOsztalyfonokIds nvarchar (max)
|
|
,@pOktatasiNevelesiFeladatId int = null
|
|
AS BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE
|
|
@tanevNev nvarchar (30)
|
|
,@sql nvarchar (max) =N''
|
|
|
|
SELECT
|
|
@tanevNev = C_NEV
|
|
FROM T_TANEV
|
|
WHERE ID = @pTanevId
|
|
|
|
IF @pTanuloIds IS NOT NULL BEGIN
|
|
SET @sql += N'
|
|
CREATE TABLE #TanuloIds (TanuloId int)
|
|
INSERT INTO #TanuloIds(TanuloId)
|
|
SELECT value FROM STRING_SPLIT(@pTanuloIds,'','')
|
|
'
|
|
END
|
|
|
|
IF @pOsztalyfonokIds IS NOT NULL BEGIN
|
|
SET @sql += N'
|
|
CREATE TABLE #OsztalyFonokok (OsztalyFonokId int)
|
|
INSERT INTO #OsztalyFonokok(OsztalyFonokId)
|
|
SELECT value FROM STRING_SPLIT(@pOsztalyfonokIds,'','')
|
|
'
|
|
END
|
|
|
|
SET @sql += N'
|
|
DECLARE @FilterDate datetime = (SELECT IIF(GETDATE() < C_ELSOTANITASINAP, C_ELSOTANITASINAP, GETDATE()) FROM T_TANEV WHERE ID = @tanevId AND TOROLT = ''F'')
|
|
SELECT DISTINCT
|
|
CASE WHEN @pTanuloIds IS NULL THEN -1 ELSE tcs.ID END AS ID
|
|
,tcs.C_OSZTALYCSOPORTID AS OsztalyCsoportId
|
|
,ocs.C_NEV AS Nev
|
|
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipus
|
|
,ocs.C_FELADATKATEGORIAID AS FeladatKategoriaId
|
|
,feh.C_OKTATASINEVELESIFELADATTIPUS AS OktatasiNevelesiFeladatId
|
|
,@tanevNev AS Tanev
|
|
,CASE WHEN @pOsztalyfonokIds IS NULL THEN tcs.C_TANULOID ELSE -1 END AS TanuloId
|
|
,tcs.C_BELEPESDATUM AS ErvKezd
|
|
,tcs.C_KILEPESDATUM AS ErvVeg
|
|
,cs.C_TIPUSA AS CsoportTipus
|
|
,ob.C_NEV AS Osztalybontas
|
|
,ocs.C_KEPZESIFORMA AS KepzesiForma
|
|
,CASE WHEN o.ID IS NOT NULL THEN ''F'' ELSE ''T'' END AS IsCsoport
|
|
,o.C_OSZTALYFONOKID AS OsztalyfonokId
|
|
,o.C_OFOHELYETTESID AS OsztalyfonokHelyettesId
|
|
,cs.C_CSOPORTVEZETOID AS CsoportVezetoId
|
|
,cst.C_ISTANORAICELU AS IsTanoraiCeluCsoportTipus
|
|
FROM T_TANULOCSOPORT_OSSZES tcs
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID '+IIF(@pFeladatKategoriaId IS NULL,'','AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId')+ N'
|
|
AND ocs.TOROLT = ''F''
|
|
AND ocs.C_TANEVID = tcs.C_TANEVID
|
|
INNER JOIN T_FELADATELLATASIHELY_OSSZES feh ON ocs.C_FELADATELLATASIHELYID = feh.ID
|
|
AND feh.TOROLT = ''F''
|
|
AND feh.C_TANEVID = tcs.C_TANEVID
|
|
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID
|
|
AND cs.TOROLT = ''F''
|
|
AND cs.C_ALTANEVID = tcs.C_TANEVID
|
|
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ob ON ob.ID = cs.C_OSZTALYBONTASID
|
|
AND ob.TOROLT = ''F''
|
|
AND ob.C_TANEVID = tcs.C_TANEVID
|
|
LEFT JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID
|
|
AND o.TOROLT = ''F''
|
|
AND o.C_ALTANEVID = tcs.C_TANEVID
|
|
LEFT JOIN T_CSOPORTTIPUS_OSSZES cst ON cst.ID = cs.C_TIPUSA
|
|
AND cst.TOROLT = ''F''
|
|
AND cst.C_ALTANEVID = tcs.C_TANEVID
|
|
'+IIF(@pTanuloIds IS NOT NULL,' INNER JOIN #TanuloIds t ON t.Tanuloid = tcs.C_TANULOID','')+'
|
|
'+IIF(@pOsztalyfonokIds IS NOT NULL,' INNER JOIN #OsztalyFonokok osztf ON osztf.OsztalyFonokId = o.C_OSZTALYFONOKID','')+'
|
|
WHERE tcs.TOROLT = ''F''
|
|
AND tcs.C_TANEVID = @tanevId '
|
|
+ IIF(@pIsFromSzervezet = 1 ,' AND cs.C_SZERVEZETID IS NOT NULL','AND cs.C_SZERVEZETID IS NULL ')
|
|
+ IIF(@pOktatasiNevelesiFeladatId IS NOT NULL, ' AND feh.C_OKTATASINEVELESIFELADATTIPUS = @pOktatasiNevelesiFeladatId', '')
|
|
+ IIF(@pIsAktiv = 1, ' AND tcs.C_BELEPESDATUM <= @FilterDate AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > @FilterDate)', '')
|
|
|
|
EXEC sp_executesql @sql, N'
|
|
@pTanuloIds nvarchar (max)
|
|
,@tanevNev nvarchar (30)
|
|
,@tanevId int
|
|
,@pFeladatKategoriaId int
|
|
,@pOsztalyfonokIds nvarchar (max)
|
|
,@pOktatasiNevelesiFeladatId int'
|
|
,@pTanuloIds = @pTanuloIds
|
|
,@tanevNev = @tanevNev
|
|
,@tanevId = @pTanevId
|
|
,@pFeladatKategoriaId = @pFeladatKategoriaId
|
|
,@pOsztalyfonokIds = @pOsztalyfonokIds
|
|
,@pOktatasiNevelesiFeladatId = @pOktatasiNevelesiFeladatId
|
|
|
|
END
|
|
GO
|