USP_MERGETASK_CONSTITUENTFUNDRAISINGPURPOSES

Parameters

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

Definition

Copy


                CREATE procedure dbo.USP_MERGETASK_CONSTITUENTFUNDRAISINGPURPOSES
                (
                    @SOURCEID uniqueidentifier,
                    @TARGETID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier
                )
                as
                    set nocount on;

                    declare @CHANGEDATE datetime = getdate();

                    update dbo.DESIGNATIONLEVEL
                    set ADMINISTRATORID = @TARGETID, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CHANGEDATE
                    where ADMINISTRATORID = @SOURCEID

                    update dbo.DESIGNATIONLEVELATTACHMENT
                    set AUTHORID = @TARGETID, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CHANGEDATE
                    where AUTHORID = @SOURCEID

                    update dbo.DESIGNATIONLEVELMEDIALINK
                    set AUTHORID = @TARGETID, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CHANGEDATE
                    where AUTHORID = @SOURCEID

                    update dbo.DESIGNATIONLEVELNOTE
                    set AUTHORID = @TARGETID, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CHANGEDATE
                    where AUTHORID = @SOURCEID

                    update dbo.DESIGNATIONLEVELRECIPIENT
                    set CONSTITUENTID = @TARGETID, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CHANGEDATE
                    where CONSTITUENTID = @SOURCEID

                    -- Merge fundraising purpose stewardships


                    -- If the source and the target have a stewardship record on the same fundraising purpose,

                    -- delete the source's record.


                    delete from dbo.DESIGNATIONLEVELSTEWARDSHIPRECIPIENTS
                    where
                        DESIGNATIONLEVELSTEWARDSHIPRECIPIENTS.CONSTITUENTID = @SOURCEID
                        and exists (
                            select 1
                            from 
                                dbo.DESIGNATIONLEVELSTEWARDSHIPRECIPIENTS TARGETRECIPIENT
                            where
                                DESIGNATIONLEVELSTEWARDSHIPRECIPIENTS.DESIGNATIONLEVELID = TARGETRECIPIENT.DESIGNATIONLEVELID
                                and TARGETRECIPIENT.CONSTITUENTID = @TARGETID
                        )

                    update dbo.DESIGNATIONLEVELSTEWARDSHIPRECIPIENTS
                    set CONSTITUENTID = @TARGETID, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CHANGEDATE
                    where CONSTITUENTID = @SOURCEID

                    update dbo.DESIGNATIONLEVELRELATEDSTAFF
                    set CONSTITUENTID = @TARGETID, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CHANGEDATE
                    where CONSTITUENTID = @SOURCEID

                    return 0;