DROP PROCEDURE IF EXISTS sp_FollowUpMukodesiHely GO CREATE PROCEDURE sp_FollowUpMukodesiHely @intezmenyId int, @aktTanevId int, @kovetkezoTanevId int, @mukodesiHelyId int AS BEGIN DECLARE @kovetkezoMukodesiHelyId int ,@ujKovetkezoMukodesiHelyId int ,@mukodesiHelyNev nvarchar(100) ,@isKovItemTorolt char(1) ,@mukodesiHelyKod nvarchar(3) SELECT @kovetkezoMukodesiHelyId = mh.ID ,@isKovItemTorolt = mh.TOROLT FROM T_MUKODESIHELY_OSSZES mh WHERE mh.C_INTEZMENYID = @intezmenyId AND mh.C_TANEVID = @kovetkezoTanevId AND mh.ELOZOTANEVIREKORDID = @mukodesiHelyId SELECT @mukodesiHelyNev = C_NEV ,@mukodesiHelyKod = C_MUKODESIHELYAZONOSITO FROM T_MUKODESIHELY_OSSZES WHERE ID = @mukodesiHelyId AND C_TANEVID=@aktTanevId SELECT @ujKovetkezoMukodesiHelyId=ID from T_MUKODESIHELY_OSSZES WHERE TOROLT='F' AND C_TANEVID=@kovetkezoTanevId AND ( (@mukodesiHelyNev=C_NEV AND ISNULL(@mukodesiHelyKod,0)=ISNULL(C_MUKODESIHELYAZONOSITO,0)) OR (@mukodesiHelyNev=C_NEV AND (@mukodesiHelyKod IS NULL OR NOT EXISTS(SELECT 1 FROM T_MUKODESIHELY_OSSZES WHERE ISNULL(@mukodesiHelyKod,0)=ISNULL(C_MUKODESIHELYAZONOSITO,0) AND ISNULL(ELOZOTANEVIREKORDID,0)<>@mukodesiHelyId AND TOROLT='F' AND C_TANEVID=@kovetkezoTanevId))) OR (@mukodesiHelyKod=C_MUKODESIHELYAZONOSITO AND NOT EXISTS(SELECT 1 FROM T_MUKODESIHELY_OSSZES WHERE @mukodesiHelyNev=C_NEV AND ISNULL(ELOZOTANEVIREKORDID,0)<>@mukodesiHelyId AND TOROLT='F' AND C_TANEVID=@kovetkezoTanevId)) ) AND ISNULL(ELOZOTANEVIREKORDID,0)<>@mukodesiHelyId IF ISNULL(@kovetkezoMukodesiHelyId,0) <> @ujKovetkezoMukodesiHelyId BEGIN UPDATE T_MUKODESIHELY_OSSZES SET ELOZOTANEVIREKORDID = NULL WHERE ID = @kovetkezoMukodesiHelyId UPDATE T_MUKODESIHELY_OSSZES SET ELOZOTANEVIREKORDID = @mukodesiHelyId WHERE ID = @ujKovetkezoMukodesiHelyId SET @kovetkezoMukodesiHelyId=@ujKovetkezoMukodesiHelyId END IF (SELECT TOROLT FROM T_MUKODESIHELY_OSSZES WHERE ID = @mukodesiHelyId)='T' OR (SELECT TOROLT FROM T_MUKODESIHELY_OSSZES WHERE ELOZOTANEVIREKORDID = @mukodesiHelyId)='T' OR EXISTS (SELECT 1 FROM T_MUKODESIHELY_OSSZES WHERE ((C_NEV=@mukodesiHelyNev AND (ISNULL(C_MUKODESIHELYAZONOSITO,0)<>@mukodesiHelyKod OR @mukodesiHelyKod IS NULL)) OR (C_NEV<>@mukodesiHelyNev AND ISNULL(C_MUKODESIHELYAZONOSITO,0) = @mukodesiHelyKod)) AND TOROLT='F' AND C_TANEVID=@kovetkezoTanevId AND ISNULL(ELOZOTANEVIREKORDID,0)<>@mukodesiHelyId) BEGIN RETURN END IF (@kovetkezoMukodesiHelyId IS NULL) BEGIN INSERT INTO T_MUKODESIHELY_OSSZES ( C_AJTO ,C_EMAILCIM ,C_EMELET ,C_FAX ,C_HAZSZAM ,C_INTEZMENYADATOKID ,C_INTEZMENYID ,C_IRANYITOSZAM ,C_KOZTERULETJELLEG ,C_KOZTERULETNEV ,C_MUKODESIHELYAZONOSITO ,C_MUKODESIHELYTIPUSA ,C_NEV ,C_SZEKHELY ,C_TAGINTEZMENY ,C_TAGINTEZMENYIKOD ,C_TANEVID ,C_TELEFONSZAM ,C_VAROS ,C_VEZETONEVE ,C_FUNKCIOTERULET ,SERIAL ,LASTCHANGED ,CREATED ,MODIFIER ,CREATOR ,ELOZOTANEVIREKORDID ) SELECT t.C_AJTO AS C_AJTO ,t.C_EMAILCIM AS C_EMAILCIM ,t.C_EMELET AS C_EMELET ,C_FAX AS C_FAX ,t.C_HAZSZAM AS C_HAZSZAM ,ia.ID AS C_INTEZMENYADATOKID ,t.C_INTEZMENYID AS C_INTEZMENYID ,t.C_IRANYITOSZAM AS C_IRANYITOSZAM ,t.C_KOZTERULETJELLEG AS C_KOZTERULETJELLEG ,t.C_KOZTERULETNEV AS C_KOZTERULETNEV ,C_MUKODESIHELYAZONOSITO AS C_MUKODESIHELYAZONOSITO ,t.C_MUKODESIHELYTIPUSA AS C_MUKODESIHELYTIPUSA ,t.C_NEV AS C_NEV ,C_SZEKHELY AS C_SZEKHELY ,C_TAGINTEZMENY AS C_TAGINTEZMENY ,C_TAGINTEZMENYIKOD AS C_TAGINTEZMENYIKOD ,@kovetkezoTanevId AS C_TANEVID ,t.C_TELEFONSZAM AS C_TELEFONSZAM ,t.C_VAROS AS C_VAROS ,C_VEZETONEVE AS C_VEZETONEVE ,C_FUNKCIOTERULET ,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_MUKODESIHELY_OSSZES t INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.ELOZOTANEVIREKORDID=t.C_INTEZMENYADATOKID AND ia.TOROLT='F' WHERE t.ID=@mukodesiHelyId END ELSE BEGIN UPDATE kovetkezo SET kovetkezo.C_AJTO = aktiv.C_AJTO ,kovetkezo.C_EMAILCIM = aktiv.C_EMAILCIM ,kovetkezo.C_EMELET = aktiv.C_EMELET ,kovetkezo.C_FAX = aktiv.C_FAX ,kovetkezo.C_HAZSZAM = aktiv.C_HAZSZAM ,kovetkezo.C_IRANYITOSZAM = aktiv.C_IRANYITOSZAM ,kovetkezo.C_KOZTERULETJELLEG = aktiv.C_KOZTERULETJELLEG ,kovetkezo.C_KOZTERULETNEV = aktiv.C_KOZTERULETNEV ,kovetkezo.C_MUKODESIHELYAZONOSITO = aktiv.C_MUKODESIHELYAZONOSITO ,kovetkezo.C_MUKODESIHELYTIPUSA = aktiv.C_MUKODESIHELYTIPUSA ,kovetkezo.C_NEV = aktiv.C_NEV ,kovetkezo.C_SZEKHELY = aktiv.C_SZEKHELY ,kovetkezo.C_TAGINTEZMENY = aktiv.C_TAGINTEZMENY ,kovetkezo.C_TAGINTEZMENYIKOD = aktiv.C_TAGINTEZMENYIKOD ,kovetkezo.C_TELEFONSZAM = aktiv.C_TELEFONSZAM ,kovetkezo.C_VAROS = aktiv.C_VAROS ,kovetkezo.C_VEZETONEVE = aktiv.C_VEZETONEVE ,kovetkezo.C_FUNKCIOTERULET = aktiv.C_FUNKCIOTERULET ,kovetkezo.SERIAL += 1 ,kovetkezo.MODIFIER = aktiv.MODIFIER ,kovetkezo.LASTCHANGED = aktiv.LASTCHANGED FROM T_MUKODESIHELY_OSSZES kovetkezo INNER JOIN T_MUKODESIHELY_OSSZES aktiv ON aktiv.ID = @mukodesiHelyId and aktiv.TOROLT='F' AND aktiv.ID=kovetkezo.ELOZOTANEVIREKORDID END END GO