80 lines
No EOL
2.4 KiB
Transact-SQL
80 lines
No EOL
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<61>ra
|
||
OR (@pNezetTipus = 1 AND oo.C_ORASZAM IS NULL) -- Csak napirend
|
||
)
|
||
|
||
END
|
||
GO |