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

99 lines
3.4 KiB
Transact-SQL

IF OBJECT_ID('sp_FollowUpOraterv') IS NOT NULL BEGIN
DROP PROCEDURE sp_FollowUpOraterv
END;
GO
CREATE PROCEDURE sp_FollowUpOraterv
@intezmenyId int,
@aktTanevId int,
@kovetkezoTanevId int,
@oratervId int,
@tantervId int
AS
BEGIN
IF (@oratervId = 0)
BEGIN
INSERT INTO T_ORATERV_OSSZES (
C_EVFOLYAM
,C_INTEZMENYID
,C_NEV
,C_TANEVID
,C_TANTERVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,NNID
,ELOZOTANEVIREKORDID
) SELECT
IIF((SELECT COUNT(1) FROM T_EVFOLYAMTIPUS_OSSZES WHERE C_ALTANEVID = @kovetkezoTanevId AND ID = t.C_EVFOLYAM) = 0, 1296, t.C_EVFOLYAM) AS C_EVFOLYAM
,@intezmenyID AS C_INTEZMENYID
,C_NEV AS C_NEV
,@kovetkezoTanevId AS C_TANEVID
,(SELECT ID FROM T_TANTERV_OSSZES WHERE ELOZOTANEVIREKORDID = @tantervId AND C_TANEVID = @kovetkezoTanevId AND C_INTEZMENYID = @intezmenyID) AS C_TANTERVID
,TOROLT AS TOROLT
,0 AS SERIAL
,GETDATE() AS LASTCHANGED
,GETDATE() AS CREATED
,MODIFIER AS MODIFIER
,MODIFIER AS CREATOR
,NULL AS NNID
,t.ID AS ELOZOTANEVIREKORDID
FROM T_ORATERV_OSSZES t WHERE C_TANEVID = @aktTanevId AND C_INTEZMENYID = @intezmenyId AND TOROLT='F'
AND 0 = (SELECT COUNT(1) FROM T_ORATERV_OSSZES WHERE C_TANEVID = @kovetkezoTanevId AND C_INTEZMENYID = @intezmenyId AND ELOZOTANEVIREKORDID = t.ID)
SET @oratervId = (SELECT ID FROM T_ORATERV_OSSZES t WHERE C_TANEVID = @kovetkezoTanevId AND C_INTEZMENYID = @intezmenyId AND ELOZOTANEVIREKORDID = t.ID)
END
ELSE
BEGIN
UPDATE kovetkezo SET
kovetkezo.C_EVFOLYAM = IIF((SELECT COUNT(1) FROM T_EVFOLYAMTIPUS_OSSZES WHERE C_ALTANEVID = @kovetkezoTanevId AND ID = aktiv.C_EVFOLYAM) = 0, 1296, aktiv.C_EVFOLYAM)
,kovetkezo.C_NEV = aktiv.C_NEV
,kovetkezo.TOROLT = aktiv.TOROLT
FROM T_ORATERV_OSSZES kovetkezo
INNER JOIN T_ORATERV_OSSZES aktiv ON aktiv.C_INTEZMENYID = kovetkezo.C_INTEZMENYID AND aktiv.C_TANEVID = @aktTanevId AND aktiv.ID = @oratervId AND aktiv.TOROLT='F'
WHERE kovetkezo.C_INTEZMENYID = @intezmenyId AND kovetkezo.C_TANEVID = @kovetkezoTanevId AND kovetkezo.ELOZOTANEVIREKORDID = @oratervId AND kovetkezo.TOROLT='F'
END
DELETE T_ORATERVTARGY_OSSZES WHERE C_INTEZMENYID = @intezmenyId AND C_TANEVID = @kovetkezoTanevId AND TOROLT='F'
INSERT INTO T_ORATERVTARGY (
C_EVESORASZAM
,C_INTEZMENYID
,C_ORATERVID
,C_TANEVID
,C_TANTARGYID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,NNID
,ELOZOTANEVIREKORDID
) SELECT
C_EVESORASZAM AS C_EVESORASZAM
,@intezmenyID AS C_INTEZMENYID
,(SELECT ID FROM T_ORATERV_OSSZES WHERE ELOZOTANEVIREKORDID = t.C_ORATERVID AND C_TANEVID = @kovetkezoTanevId AND C_INTEZMENYID = @intezmenyID) AS C_ORATERVID
,@kovetkezoTanevId AS C_TANEVID
,(SELECT ID FROM T_TANTARGY_OSSZES WHERE ELOZOTANEVIREKORDID = t.C_TANTARGYID AND C_TANEVID = @kovetkezoTanevId AND C_INTEZMENYID = @intezmenyID) AS C_TANTARGYID
,t.TOROLT AS TOROLT
,0 AS SERIAL
,GETDATE() AS LASTCHANGED
,GETDATE() AS CREATED
,t.MODIFIER AS MODIFIER
,t.MODIFIER AS CREATOR
,NULL AS NNID
,t.ID AS ELOZOTANEVIREKORDID
FROM T_ORATERVTARGY_OSSZES t
INNER JOIN T_ORATERV ot ON ot.ID=t.C_ORATERVID AND ot.TOROLT='F'
WHERE t.C_TANEVID = @aktTanevId AND t.C_INTEZMENYID = @intezmenyId AND C_ORATERVID = @oratervId AND t.TOROLT='F'
AND NOT EXISTS(SELECT TOP 1 ID FROM T_ORATERVTARGY_OSSZES WHERE ELOZOTANEVIREKORDID=t.ID)
END
GO