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

101 lines
3.2 KiB
Transact-SQL

-- =============================================
-- Author: Bata-Kovács Gábor
-- Create date: 2017.06.03.
-- Description: Az Óraterv adatainak frissítése a következõ tanévre
-- =============================================
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
AS
BEGIN
IF (@oratervId = 0)
BEGIN
INSERT INTO T_ORATERV(
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 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 WHERE ELOZOTANEVIREKORDID = t.C_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 t WHERE C_TANEVID = @aktTanevId AND C_INTEZMENYID = @intezmenyId
AND 0 = (SELECT COUNT(1) FROM T_ORATERV WHERE C_TANEVID = @kovetkezoTanevId AND C_INTEZMENYID = @intezmenyId AND ELOZOTANEVIREKORDID = t.ID)
SET @oratervId = (SELECT ID FROM T_ORATERV 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 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 kovetkezo
INNER JOIN T_ORATERV aktiv ON aktiv.C_INTEZMENYID = kovetkezo.C_INTEZMENYID AND aktiv.C_TANEVID = @aktTanevId AND aktiv.ID = @oratervId
WHERE kovetkezo.C_INTEZMENYID = @intezmenyId AND kovetkezo.C_TANEVID = @kovetkezoTanevId AND kovetkezo.ELOZOTANEVIREKORDID = @oratervId
END
DELETE T_ORATERVTARGY WHERE C_ORATERVID = @oratervId
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 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 WHERE ELOZOTANEVIREKORDID = t.C_TANTARGYID AND C_TANEVID = @kovetkezoTanevId AND C_INTEZMENYID = @intezmenyID) AS C_TANTARGYID
,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_ORATERVTARGY t WHERE C_TANEVID = @aktTanevId AND C_INTEZMENYID = @intezmenyId AND C_ORATERVID = @oratervId
END
GO