﻿DROP PROCEDURE IF EXISTS sp_FollowUpAlkalmazottVegzettseg
GO

CREATE PROCEDURE sp_FollowUpAlkalmazottVegzettseg
  @intezmenyId int,
  @aktTanevId int,
  @kovetkezoTanevId int,
  @vegzettsegId int
 
AS
BEGIN
 
	DECLARE @kovVegzettsegId int=(SELECT ID FROM T_VEGZETTSEG_OSSZES WHERE ELOZOTANEVIREKORDID=@vegzettsegId)
	
	IF (SELECT TOROLT FROM T_VEGZETTSEG_OSSZES WHERE ID = @vegzettsegId)='T' OR (SELECT TOROLT FROM T_VEGZETTSEG_OSSZES WHERE ELOZOTANEVIREKORDID = @vegzettsegId)='T' BEGIN
	  RETURN
	END
	
	IF @kovVegzettsegId IS NULL BEGIN
	  INSERT INTO T_VEGZETTSEG_OSSZES(
	     C_EGYEB
	    ,C_VEGZETTSEGTIPUSID
	    ,C_TANARID
	    ,C_INTEZMENYID
	    ,C_TANEVID
	    ,SERIAL
	    ,LASTCHANGED
	    ,CREATED
	    ,MODIFIER
	    ,CREATOR
	    ,ELOZOTANEVIREKORDID
	  ) SELECT
	     C_EGYEB
	    ,C_VEGZETTSEGTIPUSID
	    ,fh.ID
	    ,v.C_INTEZMENYID
	    ,@kovetkezoTanevId
	    ,0
	    ,v.LASTCHANGED
	    ,v.LASTCHANGED
	    ,v.MODIFIER
	    ,v.MODIFIER
	    ,v.ID
	  FROM T_VEGZETTSEG_OSSZES v 
	    INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ELOZOTANEVIREKORDID=v.C_TANARID AND fh.TOROLT='F'
	  WHERE v.ID=@vegzettsegId
	  
	  INSERT INTO T_KEPESITES_VEGZETTSEG (
		 C_KEPESITESID
		,C_VEGZETTSEGID
	  )SELECT 
	     k.ID
	    ,vKov.ID
	   FROM T_VEGZETTSEG_OSSZES v
	    INNER JOIN T_KEPESITES_VEGZETTSEG kv ON kv.C_VEGZETTSEGID=v.ID
	    INNER JOIN T_KEPESITES_OSSZES k ON k.ELOZOTANEVIREKORDID=kv.C_KEPESITESID AND k.TOROLT='F'
	    INNER JOIN T_VEGZETTSEG_OSSZES vKov ON vKov.ELOZOTANEVIREKORDID=v.ID
	  WHERE v.ID=@vegzettsegId
	END
	ELSE BEGIN
	  UPDATE vKov SET
	     C_EGYEB = vOld.C_EGYEB
	    ,C_VEGZETTSEGTIPUSID = vOld.C_VEGZETTSEGTIPUSID
	    ,LASTCHANGED = vOld.LASTCHANGED
		,MODIFIER = vOld.MODIFIER
	    ,SERIAL += 1
	  FROM T_VEGZETTSEG_OSSZES vOld
	    INNER JOIN T_VEGZETTSEG_OSSZES vKov ON vKov.ELOZOTANEVIREKORDID = vOld.ID AND vOld.ID=@vegzettsegId
	  
	  DELETE kv
	  FROM T_KEPESITES_VEGZETTSEG kv 
	    INNER JOIN T_KEPESITES_OSSZES kKov ON kKov.ID=kv.C_KEPESITESID AND kKov.TOROLT='F'
	    INNER JOIN T_KEPESITES_OSSZES kOld ON kOld.ID=kKov.ELOZOTANEVIREKORDID AND kOld.TOROLT='F'
	    LEFT JOIN T_KEPESITES_VEGZETTSEG kvOld ON kvOld.C_VEGZETTSEGID=@vegzettsegId AND kvOld.C_KEPESITESID=kOld.ID
	  WHERE kv.C_VEGZETTSEGID=@kovVegzettsegId AND kvOld.C_KEPESITESID IS NULL
	    
	  INSERT INTO T_KEPESITES_VEGZETTSEG (
	     C_KEPESITESID
	    ,C_VEGZETTSEGID
	  ) SELECT 
	     k.ID
	    ,vKov.ID
	  FROM T_VEGZETTSEG_OSSZES v
	    INNER JOIN T_KEPESITES_VEGZETTSEG kv ON kv.C_VEGZETTSEGID=v.ID
	    INNER JOIN T_KEPESITES_OSSZES k ON k.ELOZOTANEVIREKORDID=kv.C_KEPESITESID AND k.TOROLT='F'
	    INNER JOIN T_VEGZETTSEG_OSSZES vKov ON vKov.ELOZOTANEVIREKORDID=v.ID
	  WHERE v.ID=@vegzettsegId AND NOT EXISTS (SELECT 1 FROM T_KEPESITES_VEGZETTSEG WHERE C_VEGZETTSEGID=@kovVegzettsegId AND C_KEPESITESID=k.ID)
	END
END
GO
