init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,98 @@
|
|||
DROP PROCEDURE IF EXISTS uspOrarendekTorlese
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspOrarendekTorlese
|
||||
@pTanevId int
|
||||
,@pUserId 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 #OrarendiOrak (Id int, ErvenyessegKezdete datetime, ErvenyessegVege datetime, Oraszam int)
|
||||
|
||||
INSERT INTO #OrarendiOrak
|
||||
EXEC uspGetOrarendiOrakForOrarendekTorlese @pTanevId, @pIntervallumKezdete, @pIntervallumVege, @pNezetTipus, @pFeladatellatasiHelyJson, @pOsztalyJson, @pCsoportJson
|
||||
|
||||
-- Jelmagyarázat:
|
||||
-- D1: Intervallum kezdete
|
||||
-- D2: Intervallum vége
|
||||
-- ÉK: Órarend érvényességének kezdete
|
||||
-- ÉV: Órarend érvényességének vége
|
||||
|
||||
UPDATE oo
|
||||
SET
|
||||
oo.C_ORAERVENYESSEGKEZDETE = CASE
|
||||
-- Ha ÉK < D1 <= ÉV <= D2, akkor az ÉV-t kell D1-re módosítani
|
||||
WHEN updateOrak.ErvenyessegKezdete < @pIntervallumKezdete AND @pIntervallumKezdete <= updateOrak.ErvenyessegVege AND updateOrak.ErvenyessegVege <= @pIntervallumVege THEN updateOrak.ErvenyessegKezdete
|
||||
|
||||
-- Ha D1 <= ÉK <= D2 < ÉV, akkor az ÉK-t kell D2+1 napra módosítani
|
||||
WHEN @pIntervallumKezdete <= updateOrak.ErvenyessegKezdete AND updateOrak.ErvenyessegKezdete <= @pIntervallumVege AND @pIntervallumVege < updateOrak.ErvenyessegVege THEN DATEADD(day, 1, @pIntervallumVege)
|
||||
|
||||
-- Ha ÉK < D1 <= D2 < ÉV, akkor az ÉV-t kell D1-ra módosítani
|
||||
WHEN updateOrak.ErvenyessegKezdete < @pIntervallumKezdete AND @pIntervallumVege < updateOrak.ErvenyessegVege THEN updateOrak.ErvenyessegKezdete
|
||||
|
||||
ELSE oo.C_ORAERVENYESSEGKEZDETE
|
||||
END
|
||||
,oo.C_ORAERVENYESSEGVEGE = CASE
|
||||
-- Ha ÉK < D1 <= ÉV <= D2, akkor az ÉV-t kell D1-re módosítani
|
||||
WHEN updateOrak.ErvenyessegKezdete < @pIntervallumKezdete AND @pIntervallumKezdete <= updateOrak.ErvenyessegVege AND updateOrak.ErvenyessegVege <= @pIntervallumVege THEN @pIntervallumKezdete
|
||||
|
||||
-- Ha D1 <= ÉK <= D2 < ÉV, akkor az ÉK-t kell D2+1 napra módosítani
|
||||
WHEN @pIntervallumKezdete <= updateOrak.ErvenyessegKezdete AND updateOrak.ErvenyessegKezdete <= @pIntervallumVege AND @pIntervallumVege <= updateOrak.ErvenyessegVege THEN updateOrak.ErvenyessegVege
|
||||
|
||||
-- Ha ÉK < D1 <= D2 < ÉV, akkor az ÉV-t kell D1-ra módosítani
|
||||
WHEN updateOrak.ErvenyessegKezdete < @pIntervallumKezdete AND @pIntervallumVege < updateOrak.ErvenyessegVege THEN @pIntervallumKezdete
|
||||
|
||||
ELSE oo.C_ORAERVENYESSEGVEGE
|
||||
END
|
||||
-- Ha az óra érvényessége teljesen a D1 és D2 között van (D1 <= ÉK <= ÉV <= D2), akkor a teljes elemet törölni kell
|
||||
-- vagy ha D1 <= ÉK <= D2 < ÉV és ÉV = D2+1 nappal
|
||||
,oo.TOROLT = IIF((@pIntervallumKezdete <= updateOrak.ErvenyessegKezdete AND updateOrak.ErvenyessegVege <= @pIntervallumVege)
|
||||
OR (@pIntervallumKezdete <= updateOrak.ErvenyessegKezdete
|
||||
AND updateOrak.ErvenyessegKezdete <= @pIntervallumVege
|
||||
AND @pIntervallumVege < updateOrak.ErvenyessegVege
|
||||
AND updateOrak.ErvenyessegVege = DATEADD(day, 1, @pIntervallumVege)), 'T', oo.TOROLT)
|
||||
,oo.LASTCHANGED = GETDATE()
|
||||
,oo.MODIFIER = @pUserId
|
||||
FROM T_ORARENDIORA_OSSZES oo
|
||||
INNER JOIN #OrarendiOrak updateOrak ON updateOrak.Id = oo.ID
|
||||
|
||||
DECLARE @insertId int, @insertErvenyessegKezdete datetime, @insertErvenyessegVege datetime, @insertOraszam int
|
||||
|
||||
-- Kell egy új órarendi elem is azonos GROUPID-val D2+1 naptól ÉV-ig
|
||||
DECLARE insertCursor CURSOR FOR
|
||||
SELECT
|
||||
Id
|
||||
,DATEADD(day, 1, @pIntervallumVege)
|
||||
,ErvenyessegVege
|
||||
,Oraszam
|
||||
FROM #OrarendiOrak
|
||||
WHERE ErvenyessegKezdete < @pIntervallumKezdete
|
||||
AND @pIntervallumVege < ErvenyessegVege
|
||||
|
||||
OPEN insertCursor
|
||||
FETCH NEXT FROM insertCursor INTO @insertId, @insertErvenyessegKezdete, @insertErvenyessegVege, @insertOraszam
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
|
||||
EXEC uspCopyOrarendiElem @insertId, NULL, @insertOraszam, @insertErvenyessegKezdete, @insertErvenyessegVege, 0
|
||||
|
||||
FETCH NEXT FROM insertCursor INTO @insertId, @insertErvenyessegKezdete, @insertErvenyessegVege, @insertOraszam
|
||||
|
||||
END
|
||||
CLOSE insertCursor
|
||||
DEALLOCATE insertCursor
|
||||
|
||||
DECLARE @intezmenyId int = (SELECT TOP 1 C_INTEZMENYID FROM T_TANEV_OSSZES WHERE TOROLT = 'F' AND ID = @pTanevId)
|
||||
|
||||
EXEC uspGenerateOrarend @intezmenyId, @pTanevId
|
||||
|
||||
END
|
||||
GO
|
Loading…
Add table
Add a link
Reference in a new issue