kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/uspUpdateTanuloMulasztasListNaplozas.sql
2024-03-13 00:33:46 +01:00

102 lines
No EOL
2.5 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS [dbo].[uspUpdateTanuloMulasztasListNaplozas]
GO
CREATE PROCEDURE [dbo].[uspUpdateTanuloMulasztasListNaplozas]
@pModifier int
,@pTanevid int
,@pIntezmenyid int
,@pModifydate datetime
,@pJson nvarchar(max)
AS
BEGIN
SET NOCOUNT ON;
DROP TABLE IF EXISTS #Tanulomulasztas
CREATE TABLE #Tanulomulasztas
(
Id int NULL
,C_Op int NULL
,C_Igazolt char(1) NULL
,C_Kesespercben int NULL
,C_Megjegyzes nvarchar(255) NULL
,C_Tipus int NULL
,C_Igazolastipusa int NULL
,C_Oratanuloiid int NULL
,C_Tanitasiorakid int NULL
);
INSERT INTO #Tanulomulasztas
SELECT *
FROM OPENJSON(@pJson) WITH (
Id int '$.ID'
,C_Op int '$.Op'
,C_Igazolt char(1) '$.Igazolt'
,C_Kesespercben int '$.KesesPercben'
,C_Megjegyzes nvarchar(255) '$.Megjegyzes'
,C_Tipus int '$.Tipus'
,C_Igazolastipusa int '$.IgazolasTipusa'
,C_Oratanuloiid int '$.OraTanuloId'
,C_Tanitasiorakid int '$.TanitasiOrakId'
);
INSERT INTO [dbo].[T_TANULOMULASZTAS] (
C_Igazolt
,C_Kesespercben
,C_Megjegyzes
,C_Tipus
,C_Igazolastipusa
,C_Intezmenyid
,C_Tanevid
,C_Oratanuloiid
,C_Tanitasiorakid
,Creator
,Created
,Serial
)
SELECT
UPPER(C_Igazolt)
,C_Kesespercben
,C_Megjegyzes
,C_Tipus
,C_Igazolastipusa
,@pIntezmenyid
,@pTanevid
,C_Oratanuloiid
,C_Tanitasiorakid
,@pModifier
,@pModifydate
,0
FROM #Tanulomulasztas
WHERE C_Op = 0; -- Insert op
UPDATE Tmul
SET
Tmul.C_Igazolt = UPPER(Tmult.C_Igazolt)
,Tmul.C_Kesespercben = Tmult.C_Kesespercben
,Tmul.C_Megjegyzes = Tmult.C_Megjegyzes
,Tmul.C_Tipus = Tmult.C_Tipus
,Tmul.C_Igazolastipusa = Tmult.C_Igazolastipusa
,Tmul.C_Oratanuloiid = Tmult.C_Oratanuloiid
,Tmul.C_Tanitasiorakid = Tmult.C_Tanitasiorakid
,Tmul.Modifier = @pModifier
,Tmul.Lastchanged = @pModifydate
,Tmul.Serial = Tmul.Serial + 1
FROM [dbo].[T_TANULOMULASZTAS] AS Tmul
INNER JOIN #Tanulomulasztas AS Tmult ON Tmul.Id = Tmult.Id
WHERE Tmult.C_Op = 1 -- Update
AND Tmul.C_Intezmenyid = @pIntezmenyid
AND Tmul.C_Tanevid = @pTanevid;
UPDATE Tmul
SET
Tmul.Torolt = 'T'
,Tmul.Modifier = @pModifier
,Tmul.Lastchanged = @pModifydate
,Tmul.Serial = Tmul.Serial + 1
FROM [dbo].[T_TANULOMULASZTAS] AS Tmul
INNER JOIN #Tanulomulasztas AS Tmult ON Tmul.Id = Tmult.Id
WHERE Tmult.C_Op = 2 -- Delete
AND Tmul.C_Intezmenyid = @pIntezmenyid
AND Tmul.C_Tanevid = @pTanevid;
END;
GO