﻿DROP PROCEDURE IF EXISTS sp_FollowUpFeladatellatasiHely
GO

CREATE PROCEDURE sp_FollowUpFeladatellatasiHely
  @intezmenyId int,
  @aktTanevId int,
  @kovetkezoTanevId int,
  @feladatellatasiHelyId int
AS
BEGIN

DECLARE
	@kovetkezoFeladatellatasiHelyId int = (SELECT TOP 1 ID FROM T_FELADATELLATASIHELY_OSSZES WHERE ELOZOTANEVIREKORDID = @feladatellatasiHelyId)

	IF (SELECT TOROLT FROM T_FELADATELLATASIHELY_OSSZES WHERE ID = @feladatellatasiHelyId) = 'T' OR (SELECT TOROLT FROM T_FELADATELLATASIHELY_OSSZES WHERE ID = @kovetkezoFeladatellatasiHelyId) = 'T' BEGIN
		RETURN
	END

IF (@kovetkezoFeladatellatasiHelyId IS NULL)
BEGIN
	INSERT INTO T_FELADATELLATASIHELY_OSSZES (
       C_OKTATASINEVELESIFELADATTIPUS
      ,C_ENGEDELYEZETTOSSZLETSZAM
      ,C_FELADATELLATASIHELYKOD
      ,C_ENGEDELYEZETTOSZTALY
      ,C_MUKODESIHELYID
      ,C_INTEZMENYID
      ,C_TANEVID
      ,SERIAL
      ,LASTCHANGED
      ,CREATED
      ,MODIFIER
      ,CREATOR
	  ,ELOZOTANEVIREKORDID
    ) SELECT 
	   t.C_OKTATASINEVELESIFELADATTIPUS AS C_OKTATASINEVELESIFELADATTIPUS
      ,C_ENGEDELYEZETTOSSZLETSZAM AS C_ENGEDELYEZETTOSSZLETSZAM
      ,C_FELADATELLATASIHELYKOD AS C_FELADATELLATASIHELYKOD
      ,C_ENGEDELYEZETTOSZTALY AS C_ENGEDELYEZETTOSZTALY
      ,(SELECT ID FROM T_MUKODESIHELY_OSSZES WHERE ELOZOTANEVIREKORDID = t.C_MUKODESIHELYID AND TOROLT='F') AS C_MUKODESIHELYID
      ,C_INTEZMENYID   AS C_INTEZMENYID
      ,@kovetkezoTanevId   AS C_TANEVID  
      ,0 AS SERIAL             
      ,LASTCHANGED AS LASTCHANGED
      ,LASTCHANGED AS CREATED
      ,MODIFIER AS MODIFIER
      ,MODIFIER AS CREATOR
	  ,ID AS ELOZOTANEVIREKORDID
    FROM T_FELADATELLATASIHELY_OSSZES t WHERE TOROLT='F' AND t.ID=@feladatellatasiHelyId
END
ELSE
BEGIN
	UPDATE kovetkezo SET
       kovetkezo.C_OKTATASINEVELESIFELADATTIPUS = aktiv.C_OKTATASINEVELESIFELADATTIPUS
      ,kovetkezo.C_ENGEDELYEZETTOSSZLETSZAM = aktiv.C_ENGEDELYEZETTOSSZLETSZAM
      ,kovetkezo.C_ENGEDELYEZETTOSZTALY = aktiv.C_ENGEDELYEZETTOSZTALY
      ,kovetkezo.C_FELADATELLATASIHELYKOD = aktiv.C_FELADATELLATASIHELYKOD
	  ,kovetkezo.C_MUKODESIHELYID = mh.ID
	  ,kovetkezo.MODIFIER = aktiv.MODIFIER
	  ,kovetkezo.LASTCHANGED = aktiv.LASTCHANGED
	  ,kovetkezo.SERIAL += 1
	FROM T_FELADATELLATASIHELY_OSSZES kovetkezo
		INNER JOIN T_FELADATELLATASIHELY_OSSZES aktiv ON aktiv.ID = @feladatellatasiHelyId AND aktiv.ID=kovetkezo.ELOZOTANEVIREKORDID AND aktiv.ID = @feladatellatasiHelyId
		INNER JOIN T_MUKODESIHELY_OSSZES mh ON mh.ELOZOTANEVIREKORDID=aktiv.C_MUKODESIHELYID AND mh.TOROLT='F'
	END
END
GO
