102 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			102 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
 |