80 lines
2.4 KiB
Transact-SQL
80 lines
2.4 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspGetOrarendiOrakForOrarendekTorlese
|
|
GO
|
|
|
|
CREATE PROCEDURE uspGetOrarendiOrakForOrarendekTorlese
|
|
@pTanevId int
|
|
,@pIntervallumKezdete datetime
|
|
,@pIntervallumVege datetime
|
|
,@pNezetTipus int
|
|
,@pFeladatellatasiHelyJson nvarchar(max) = NULL
|
|
,@pOsztalyJson nvarchar(max) = NULL
|
|
,@pCsoportJson nvarchar(max) = NULL
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
CREATE TABLE #OsztalyCsoportIds (Id int)
|
|
|
|
IF @pFeladatellatasiHelyJson IS NOT NULL
|
|
BEGIN
|
|
|
|
INSERT INTO #OsztalyCsoportIds
|
|
SELECT ocs.ID
|
|
FROM T_OSZTALYCSOPORT_OSSZES ocs
|
|
INNER JOIN OPENJSON(@pFeladatellatasiHelyJson)
|
|
WITH (Id int '$.Id') f ON ocs.C_FELADATELLATASIHELYID = f.Id
|
|
WHERE ocs.TOROLT = 'F' AND ocs.C_TANEVID = @pTanevId
|
|
|
|
END
|
|
ELSE IF @pOsztalyJson IS NOT NULL
|
|
BEGIN
|
|
|
|
INSERT INTO #OsztalyCsoportIds
|
|
SELECT o.Id
|
|
FROM OPENJSON(@pOsztalyJson)
|
|
WITH (Id int '$.Id', IsKellKapcsolodoCsoportok bit '$.IsKellKapcsolodoCsoportok', IsKellOsztalybontottCsoportok bit '$.IsKellOsztalybontottCsoportok') o
|
|
|
|
INSERT INTO #OsztalyCsoportIds
|
|
SELECT DISTINCT k.ID
|
|
FROM OPENJSON(@pOsztalyJson)
|
|
WITH (Id int '$.Id', IsKellKapcsolodoCsoportok bit '$.IsKellKapcsolodoCsoportok') o
|
|
CROSS APPLY fnGetKapcsolodoOsztalycsoportok(o.Id) k
|
|
WHERE o.IsKellKapcsolodoCsoportok = 1 and k.ID <> o.Id
|
|
|
|
INSERT INTO #OsztalyCsoportIds
|
|
SELECT cs.ID
|
|
FROM OPENJSON(@pOsztalyJson)
|
|
WITH (Id int '$.Id', IsKellKapcsolodoCsoportok bit '$.IsKellKapcsolodoCsoportok', IsKellOsztalybontottCsoportok bit '$.IsKellOsztalybontottCsoportok') o
|
|
INNER JOIN T_CSOPORT_OSSZES cs ON cs.C_OSZTALYBONTASID = o.Id
|
|
AND cs.TOROLT = 'F'
|
|
WHERE o.IsKellKapcsolodoCsoportok = 0
|
|
AND o.IsKellOsztalybontottCsoportok = 1
|
|
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
|
|
INSERT INTO #OsztalyCsoportIds
|
|
SELECT cs.Id
|
|
FROM OPENJSON(@pCsoportJson)
|
|
WITH (Id int '$.Id') cs
|
|
|
|
END
|
|
|
|
SELECT
|
|
oo.ID
|
|
,oo.C_ORAERVENYESSEGKEZDETE
|
|
,oo.C_ORAERVENYESSEGVEGE
|
|
,oo.C_ORASZAM
|
|
FROM T_ORARENDIORA_OSSZES oo
|
|
INNER JOIN #OsztalyCsoportIds ocs ON oo.C_OSZTALYCSOPORTID = ocs.Id
|
|
WHERE oo.TOROLT = 'F' AND oo.C_TANEVID = @pTanevId
|
|
AND oo.C_ORAERVENYESSEGKEZDETE <= @pIntervallumVege AND oo.C_ORAERVENYESSEGVEGE >= @pIntervallumKezdete
|
|
AND (
|
|
@pNezetTipus = 2 -- Minden
|
|
OR (@pNezetTipus = 0 AND oo.C_ORASZAM IS NOT NULL) -- Csak tanóra
|
|
OR (@pNezetTipus = 1 AND oo.C_ORASZAM IS NULL) -- Csak napirend
|
|
)
|
|
|
|
END
|
|
GO |