DROP PROCEDURE IF EXISTS sp_FollowUpFeladatellatasiHely GO CREATE PROCEDURE sp_FollowUpFeladatellatasiHely @intezmenyId int, @aktTanevId int, @kovetkezoTanevId int, @feladatellatasiHelyId int AS BEGIN DECLARE @kovetkezoFeladatellatasiHelyId int ,@kovOktatasiNevelesiFeladat int ,@kovMukodesiHelyId int SELECT @kovOktatasiNevelesiFeladat=okt.ID FROM T_OKTATASINEVELESIFELADAT_OSSZES okt INNER JOIN T_FELADATELLATASIHELY_OSSZES fh ON fh.C_OKTATASINEVELESIFELADATTIPUS=okt.ELOZOTANEVIREKORDID AND fh.ID=@feladatellatasiHelyId AND fh.TOROLT='F' WHERE C_ALTANEVID=@kovetkezoTanevId AND okt.TOROLT='F' SELECT @kovMukodesiHelyId=mh.ID FROM T_FELADATELLATASIHELY_OSSZES fh INNER JOIN T_MUKODESIHELY_OSSZES mh ON mh.ELOZOTANEVIREKORDID=fh.C_MUKODESIHELYID AND mh.TOROLT='F' WHERE fh.ID=@feladatellatasiHelyId AND fh.TOROLT='F' IF EXISTS(SELECT 1 FROM T_FELADATELLATASIHELY_OSSZES WHERE TOROLT='F' AND C_TANEVID=@kovetkezoTanevId AND C_MUKODESIHELYID=@kovMukodesiHelyId AND C_OKTATASINEVELESIFELADATTIPUS=@kovOktatasiNevelesiFeladat AND ISNULL(ELOZOTANEVIREKORDID,0)<>@feladatellatasiHelyId) BEGIN UPDATE T_FELADATELLATASIHELY_OSSZES SET ELOZOTANEVIREKORDID = NULL WHERE ELOZOTANEVIREKORDID=@feladatellatasiHelyId UPDATE T_FELADATELLATASIHELY_OSSZES SET ELOZOTANEVIREKORDID = @feladatellatasiHelyId WHERE TOROLT='F' AND C_TANEVID=@kovetkezoTanevId AND C_MUKODESIHELYID=@kovMukodesiHelyId AND C_OKTATASINEVELESIFELADATTIPUS=@kovOktatasiNevelesiFeladat AND ISNULL(ELOZOTANEVIREKORDID,0)<>@feladatellatasiHelyId END SELECT @kovetkezoFeladatellatasiHelyId = 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 okt.ID ,t.C_ENGEDELYEZETTOSSZLETSZAM AS C_ENGEDELYEZETTOSSZLETSZAM ,t.C_FELADATELLATASIHELYKOD AS C_FELADATELLATASIHELYKOD ,t.C_ENGEDELYEZETTOSZTALY AS C_ENGEDELYEZETTOSZTALY ,m.ID ,t.C_INTEZMENYID AS C_INTEZMENYID ,@kovetkezoTanevId AS C_TANEVID ,0 AS SERIAL ,t.LASTCHANGED AS LASTCHANGED ,t.LASTCHANGED AS CREATED ,t.MODIFIER AS MODIFIER ,t.MODIFIER AS CREATOR ,t.ID AS ELOZOTANEVIREKORDID FROM T_FELADATELLATASIHELY_OSSZES t INNER JOIN T_MUKODESIHELY_OSSZES m ON m.ELOZOTANEVIREKORDID=t.C_MUKODESIHELYID AND m.TOROLT='F' INNER JOIN T_OKTATASINEVELESIFELADAT_OSSZES okt ON okt.ELOZOTANEVIREKORDID=t.C_OKTATASINEVELESIFELADATTIPUS AND okt.TOROLT='F' AND okt.C_ALTANEVID=@kovetkezoTanevId WHERE t.TOROLT='F' AND t.ID=@feladatellatasiHelyId END ELSE BEGIN UPDATE kovetkezo SET kovetkezo.C_OKTATASINEVELESIFELADATTIPUS = okt.ID ,kovetkezo.C_ENGEDELYEZETTOSSZLETSZAM = aktiv.C_ENGEDELYEZETTOSSZLETSZAM ,kovetkezo.C_ENGEDELYEZETTOSZTALY = aktiv.C_ENGEDELYEZETTOSZTALY ,kovetkezo.C_FELADATELLATASIHELYKOD = aktiv.C_FELADATELLATASIHELYKOD ,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_OKTATASINEVELESIFELADAT_OSSZES okt ON okt.ELOZOTANEVIREKORDID=aktiv.C_OKTATASINEVELESIFELADATTIPUS AND okt.TOROLT='F' AND okt.C_ALTANEVID=@kovetkezoTanevId END END GO