USP_MERGETASK_CONSTITUENTPROSPECTRESEARCH

Parameters

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

Definition

Copy


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

    declare @CURRENTDATE datetime = getdate();

    -- merge giving capacity


    if not exists (select 1 from dbo.WEALTHCAPACITY where ID = @TARGETID)
    begin
        insert into dbo.WEALTHCAPACITY
        (
            [ID]
            ,[ESTIMATEDWEALTHID]
            ,[OVERALLRATINGCODEID]
            ,[MAJORGIVINGCAPACITYID]
            ,[MAJORGIVINGCAPACITYVALUE]
            ,[CONFIRMED]
            ,[SYSTEMCALCULATED]
            ,[ESTIMATEDWEALTHVALUE]
            ,[WEALTHCAPACITYFORMULAID]
            ,[ADDEDBYID]
            ,[CHANGEDBYID]
            ,[DATEADDED]
            ,[DATECHANGED]
        )
        select
            @TARGETID
            ,[ESTIMATEDWEALTHID]
            ,[OVERALLRATINGCODEID]
            ,[MAJORGIVINGCAPACITYID]
            ,[MAJORGIVINGCAPACITYVALUE]
            ,[CONFIRMED]
            ,[SYSTEMCALCULATED]
            ,[ESTIMATEDWEALTHVALUE]
            ,[WEALTHCAPACITYFORMULAID]
            ,@CHANGEAGENTID
            ,@CHANGEAGENTID
            ,@CURRENTDATE
            ,@CURRENTDATE
        from dbo.WEALTHCAPACITY
        where ID = @SOURCEID

        if exists (select 1 from dbo.WEALTHCAPACITY where ID = @TARGETID and CONFIRMED = 0)
        begin
            exec dbo.USP_WEALTHCAPACITY_UPDATE @TARGETID, @CHANGEAGENTID;
        end
    end;

    -- remove source prospect from research list having target prospect also

    delete SOURCEPROSPECT
    from dbo.RESEARCHGROUPMEMBER SOURCEPROSPECT
    inner join dbo.RESEARCHGROUPMEMBER TARGETPROSPECT ON TARGETPROSPECT.RESEARCHGROUPID = SOURCEPROSPECT.RESEARCHGROUPID
    where SOURCEPROSPECT.CONSTITUENTID = @SOURCEID
        and TARGETPROSPECT.CONSTITUENTID = @TARGETID;

    -- replace source prospect by target prospect if in different research lists

    update dbo.RESEARCHGROUPMEMBER
    set
        [CONSTITUENTID] = @TARGETID,
        [CHANGEDBYID] = @CHANGEAGENTID,
        [DATECHANGED] = @CURRENTDATE
    where CONSTITUENTID = @SOURCEID;

    -- merge prospects which are in same prospect research requests

    update TARGETPROSPECT
    set
        [NOTES] = TARGETPROSPECT.NOTES + (case when TARGETPROSPECT.NOTES = '' then '' else (char(13) + char(10)) end) + SOURCEPROSPECT.NOTES,
        [CHANGEDBYID] = @CHANGEAGENTID,
        [DATECHANGED] = @CURRENTDATE
    from dbo.PROSPECTRESEARCHREQUESTCONSTITUENT TARGETPROSPECT
    inner join dbo.PROSPECTRESEARCHREQUESTCONSTITUENT SOURCEPROSPECT ON SOURCEPROSPECT.PROSPECTRESEARCHREQUESTID = TARGETPROSPECT.PROSPECTRESEARCHREQUESTID
    where SOURCEPROSPECT.CONSTITUENTID = @SOURCEID
        and TARGETPROSPECT.CONSTITUENTID = @TARGETID
        and SOURCEPROSPECT.NOTES <> '';

    -- remove source prospect from prospect research request having target prospect also

    delete SOURCEPROSPECT
    from dbo.PROSPECTRESEARCHREQUESTCONSTITUENT SOURCEPROSPECT
    inner join dbo.PROSPECTRESEARCHREQUESTCONSTITUENT TARGETPROSPECT ON TARGETPROSPECT.PROSPECTRESEARCHREQUESTID = SOURCEPROSPECT.PROSPECTRESEARCHREQUESTID
    where SOURCEPROSPECT.CONSTITUENTID = @SOURCEID
        and TARGETPROSPECT.CONSTITUENTID = @TARGETID;

    -- replace source prospect by target prospect if in different prospect research requests

    update dbo.PROSPECTRESEARCHREQUESTCONSTITUENT
    set
        [CONSTITUENTID] = @TARGETID,
        [CHANGEDBYID] = @CHANGEAGENTID,
        [DATECHANGED] = @CURRENTDATE
    where CONSTITUENTID = @SOURCEID

    -- update requested by field for the prospect research request requested by source constituent

    update dbo.PROSPECTRESEARCHREQUEST
    set
        [REQUESTEDBYID] = @TARGETID,
        [CHANGEDBYID] = @CHANGEAGENTID,
        [DATECHANGED] = @CURRENTDATE
    where REQUESTEDBYID = @SOURCEID;

    -- update submitted by field for the prospect research request submitted by source constituent

    update dbo.PROSPECTRESEARCHREQUEST
    set
        [SUBMITTEDBYID] = @TARGETID,
        [CHANGEDBYID] = @CHANGEAGENTID,
        [DATECHANGED] = @CURRENTDATE
    where SUBMITTEDBYID = @SOURCEID;

    return 0;