﻿DROP PROCEDURE IF EXISTS sp_FollowUpTanterv
GO

CREATE PROCEDURE sp_FollowUpTanterv
  @intezmenyId int,
  @aktTanevId int,
  @kovetkezoTanevId int,
  @tantervId int
AS
BEGIN

DECLARE
	 @kovTantervId int
  ,@tantervNev nvarchar(510)=(SELECT C_NEV FROM T_TANTERV_OSSZES WHERE ID = @tantervId)

	IF EXISTS(SELECT 1 FROM T_TANTERV_OSSZES WHERE C_NEV=@tantervNev AND C_TANEVID=@kovetkezoTanevId AND TOROLT='F' AND ISNULL(ELOZOTANEVIREKORDID,0)<>@tantervId)
  BEGIN
    UPDATE T_TANTERV_OSSZES SET ELOZOTANEVIREKORDID=NULL WHERE ELOZOTANEVIREKORDID=@tantervId 
    UPDATE T_TANTERV_OSSZES SET ELOZOTANEVIREKORDID=@tantervId WHERE C_NEV=@tantervNev AND C_TANEVID=@kovetkezoTanevId AND TOROLT='F' AND ISNULL(ELOZOTANEVIREKORDID,0)<>@tantervId
  END
  
  SELECT @kovTantervId = ID FROM T_TANTERV_OSSZES WHERE ELOZOTANEVIREKORDID = @tantervId

  IF (SELECT TOROLT FROM T_TANTERV_OSSZES WHERE ID = @tantervId) = 'T' OR (SELECT TOROLT FROM T_TANTERV_OSSZES WHERE ID = @kovTantervId) = 'T' BEGIN
		RETURN
	END

IF (@kovTantervId IS NULL) 
BEGIN
INSERT INTO T_TANTERV_OSSZES (
		 C_CSOPORTTIPUSA
		,C_EVFOLYAMTOL
		,C_EVFOLYAMIG
		,C_KERETTANTERVREEPULO
		,C_NEV
		,C_MEGJEGYZES
		,C_INTEZMENYID
		,C_TANEVID
		,SERIAL
		,LASTCHANGED
		,CREATED
		,MODIFIER
		,CREATOR
		,ELOZOTANEVIREKORDID
    ) SELECT 
		   t.C_CSOPORTTIPUSA AS C_CSOPORTTIPUSA
		  ,t.C_EVFOLYAMTOL AS C_EVFOLYAMTOL
		  ,t.C_EVFOLYAMIG AS C_EVFOLYAMIG
		  ,C_KERETTANTERVREEPULO AS C_KERETTANTERVREEPULO
		  ,C_NEV AS C_NEV
		  ,C_MEGJEGYZES AS C_MEGJEGYZES
		  ,@intezmenyID AS C_INTEZMENYID
		  ,@kovetkezoTanevId AS C_TANEVID
		  ,0 AS SERIAL
		  ,LASTCHANGED AS LASTCHANGED
		  ,LASTCHANGED AS CREATED
		  ,MODIFIER AS MODIFIER
		  ,MODIFIER AS CREATOR
		  ,t.ID AS ELOZOTANEVIREKORDID
    FROM T_TANTERV_OSSZES t WHERE t.ID=@tantervId

END
ELSE
BEGIN
	UPDATE kovetkezo SET
		 kovetkezo.C_CSOPORTTIPUSA = aktiv.C_CSOPORTTIPUSA
		,kovetkezo.C_EVFOLYAMTOL = aktiv.C_EVFOLYAMTOL
		,kovetkezo.C_EVFOLYAMIG = aktiv.C_EVFOLYAMIG
		,kovetkezo.C_KERETTANTERVREEPULO = aktiv.C_KERETTANTERVREEPULO
		,kovetkezo.C_NEV = aktiv.C_NEV
		,kovetkezo.C_MEGJEGYZES = aktiv.C_MEGJEGYZES
		,SERIAL += 1
		,LASTCHANGED = aktiv.LASTCHANGED
		,MODIFIER = aktiv.MODIFIER
	FROM T_TANTERV_OSSZES kovetkezo
		INNER JOIN T_TANTERV_OSSZES aktiv ON aktiv.ID=@tantervId AND aktiv.ID=kovetkezo.ELOZOTANEVIREKORDID
END
END
GO