kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20190619115521_DB_786/sp_FollowUpOraterv.sql
2024-03-13 00:33:46 +01:00

75 lines
No EOL
2.3 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS sp_FollowUpOraterv
GO
CREATE PROCEDURE sp_FollowUpOraterv
@intezmenyId int,
@aktTanevId int,
@kovetkezoTanevId int,
@oratervId int,
@tantervId int --ezt mondjuk minek?
AS
BEGIN
DECLARE
@kovOratervId int
,@oraTervNev nvarchar(510)=(SELECT C_NEV FROM T_ORATERV_OSSZES WHERE ID = @oratervId)
IF EXISTS(SELECT 1 FROM T_ORATERV_OSSZES WHERE TOROLT='F' AND C_TANEVID=@kovetkezoTanevId AND C_NEV=@oraTervNev AND ISNULL(ELOZOTANEVIREKORDID,0)<>@oratervId)
BEGIN
UPDATE T_ORATERV_OSSZES SET ELOZOTANEVIREKORDID = NULL WHERE ELOZOTANEVIREKORDID=@oratervId
UPDATE T_ORATERV_OSSZES SET ELOZOTANEVIREKORDID = @oratervId WHERE C_NEV=@oraTervNev AND TOROLT='F' AND C_TANEVID=@kovetkezoTanevId AND ISNULL(ELOZOTANEVIREKORDID,0)<>@oratervId
END
SELECT @kovOratervId = ID FROM T_ORATERV_OSSZES WHERE ELOZOTANEVIREKORDID = @oratervId
IF (SELECT TOROLT FROM T_ORATERV_OSSZES WHERE ID = @oratervId) = 'T' OR (SELECT TOROLT FROM T_ORATERV_OSSZES WHERE ID = @kovOratervId) = 'T' BEGIN
RETURN
END
IF (@kovOratervId IS NULL)
BEGIN
INSERT INTO T_ORATERV_OSSZES (
C_EVFOLYAM
,C_INTEZMENYID
,C_NEV
,C_TANEVID
,C_TANTERVID
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,ELOZOTANEVIREKORDID
) SELECT
e.ID
,@intezmenyID AS C_INTEZMENYID
,t.C_NEV AS C_NEV
,@kovetkezoTanevId AS C_TANEVID
,tr.ID
,0 AS SERIAL
,t.LASTCHANGED AS LASTCHANGED
,t.LASTCHANGED AS CREATED
,t.MODIFIER AS MODIFIER
,t.MODIFIER AS CREATOR
,t.ID AS ELOZOTANEVIREKORDID
FROM T_ORATERV_OSSZES t
INNER JOIN T_TANTERV_OSSZES tr ON tr.ELOZOTANEVIREKORDID=t.ID AND tr.TOROLT='F'
INNER JOIN T_EVFOLYAMTIPUS_OSSZES e ON e.ELOZOTANEVIREKORDID=t.C_EVFOLYAM AND e.TOROLT='F' AND e.C_ALTANEVID = @kovetkezoTanevId
WHERE t.ID=@oratervId
END
ELSE
BEGIN
UPDATE kovetkezo SET
kovetkezo.C_EVFOLYAM = e.ID
,kovetkezo.C_NEV = aktiv.C_NEV
,kovetkezo.SERIAL += 1
,kovetkezo.LASTCHANGED = aktiv.LASTCHANGED
,kovetkezo.MODIFIER = aktiv.MODIFIER
FROM T_ORATERV_OSSZES kovetkezo
INNER JOIN T_ORATERV_OSSZES aktiv ON aktiv.ID = @oratervId AND aktiv.ID=kovetkezo.ELOZOTANEVIREKORDID
INNER JOIN T_EVFOLYAMTIPUS_OSSZES e ON e.ELOZOTANEVIREKORDID=aktiv.C_EVFOLYAM AND e.TOROLT='F' AND e.C_ALTANEVID = @kovetkezoTanevId
END
END
GO