USP_CONSTITUENTMERGE_CREATEDONOTMERGERELATIONSHIP

Creates a relationship to indicate 'Do Not Merge' for two constituents.

Parameters

Parameter Parameter Type Mode Description
@SOURCEID uniqueidentifier IN
@TARGETID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


            create procedure dbo.USP_CONSTITUENTMERGE_CREATEDONOTMERGERELATIONSHIP
            (
                @SOURCEID uniqueidentifier,
                @TARGETID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier
            )
            as
            begin

                if @CHANGEAGENTID is null  
                    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

                declare @DONOTMERGETYPEDESCRIPTION nvarchar(100)
                set @DONOTMERGETYPEDESCRIPTION = 'Do Not Merge'

                declare @CURRENTDATE datetime
                set @CURRENTDATE = getdate()

                begin try
                    declare @TYPECODEID uniqueidentifier
                    set @TYPECODEID = dbo.UFN_RELATIONSHIPTYPECODE_GETID(@DONOTMERGETYPEDESCRIPTION)

                    if @TYPECODEID is null 
                    begin 
                        set @TYPECODEID = newid(); 

                        insert into dbo.RELATIONSHIPTYPECODE (ID, DESCRIPTION, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                        values (@TYPECODEID, @DONOTMERGETYPEDESCRIPTION, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
                    end

                    -- Make sure the relationship doesn't already exist

                    if not exists (    select 1 
                                    from dbo.RELATIONSHIP
                                    where
                                        RELATIONSHIPCONSTITUENTID = @TARGETID and
                                        RECIPROCALCONSTITUENTID = @SOURCEID and
                                        RELATIONSHIPTYPECODEID = @TYPECODEID and
                                        RECIPROCALTYPECODEID = @TYPECODEID)
                    begin
                        declare @SETID uniqueidentifier
                        set @SETID = newid()

                        insert into dbo.RELATIONSHIPSET (ID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                        values (@SETID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)

                        insert into dbo.RELATIONSHIP (RELATIONSHIPCONSTITUENTID, RECIPROCALCONSTITUENTID, RELATIONSHIPTYPECODEID, RECIPROCALTYPECODEID, RELATIONSHIPSETID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                        values (@TARGETID, @SOURCEID, @TYPECODEID, @TYPECODEID, @SETID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
                    end
                end try
                begin catch
                exec dbo.USP_RAISE_ERROR;
                return 1;
                end catch

                return 0;
            end