-- ============================================= -- 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