USP_DATAFORMTEMPLATE_EDIT_GIFTSPONSORSHIP

The save procedure used by the edit dataform template "Financial Sponsor Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@REVENUECONSTITUENTID uniqueidentifier IN Financial sponsor
@SPONSORSHIPCONSTITUENTID uniqueidentifier IN Corresponding sponsor
@GIFTRECIPIENT bit IN Gift sponsorship
@RESETRECOGNITIONCREDITS bit IN Recognition credit
@RESETSOLICITORS bit IN Solicitors

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_GIFTSPONSORSHIP (
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @REVENUECONSTITUENTID uniqueidentifier,
    @SPONSORSHIPCONSTITUENTID uniqueidentifier,
    @GIFTRECIPIENT bit,
    @RESETRECOGNITIONCREDITS bit,
    @RESETSOLICITORS bit

)
as

    set nocount on;

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

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    begin try
        declare @ORIGINALREVENUECONSTITUENTID uniqueidentifier;
        declare @NEWREVENUECONSTITUENTID uniqueidentifier;
        declare @COMMITMENTID uniqueidentifier;
        declare @SPONSORSHIPID uniqueidentifier;
        declare @SPONSORSHIPOPPORTUNITYID uniqueidentifier;

        select @ORIGINALREVENUECONSTITUENTID = REVENUE.CONSTITUENTID,
               @COMMITMENTID = SPONSORSHIP.SPONSORSHIPCOMMITMENTID,
               @SPONSORSHIPID = SPONSORSHIP.ID,
               @SPONSORSHIPOPPORTUNITYID = SPONSORSHIP.SPONSORSHIPOPPORTUNITYID
        from dbo.REVENUE
        inner join dbo.REVENUESPLIT on REVENUESPLIT.REVENUEID = REVENUE.ID
        inner join dbo.SPONSORSHIP on SPONSORSHIP.REVENUESPLITID = REVENUESPLIT.ID
        where REVENUE.ID = @ID
        and SPONSORSHIP.STATUSCODE = 1;

        if @REVENUECONSTITUENTID <> @ORIGINALREVENUECONSTITUENTID
        begin
            -- reverify that financial sponsor is OK w/ this opportunity

            if dbo.UFN_SPONSORSHIP_VALIDOPPORTUNITYFORFINANCIALSPONSOR(@SPONSORSHIPOPPORTUNITYID,@REVENUECONSTITUENTID,@SPONSORSHIPID) = 0
            begin
                raiserror('BBERR_OPPORTUNITYINVALIDFORFINANCIALSPONSOR',13,1)
                return 1
            end

            -- update the recurring gift

            exec dbo.USP_DATAFORMTEMPLATE_EDITSAVE_REVENUETRANSACTIONCHANGECONSTITUENT
                @ID,
                @CHANGEAGENTID,
                @REVENUECONSTITUENTID,
                @RESETRECOGNITIONCREDITS,
                @RESETSOLICITORS

            -- update the sponsor constituencies for the financial sponsor

            if @ORIGINALREVENUECONSTITUENTID = @SPONSORSHIPCONSTITUENTID
                -- change from not a gift to a gift

                -- check/remove sponsor constituency on old financial sponsor

                exec dbo.USP_SPONSOR_CHECKANDMAKEINACTIVE @ORIGINALREVENUECONSTITUENTID, @CURRENTDATE, 0, @CHANGEAGENTID, @CURRENTDATE
            else
                -- change from a gift to not a gift, or change of donor on a gift

                -- check/remove donor constituency on old financial sponsor 

                exec dbo.USP_SPONSOR_CHECKANDMAKEINACTIVE @ORIGINALREVENUECONSTITUENTID, @CURRENTDATE, 2, @CHANGEAGENTID, @CURRENTDATE

            if @REVENUECONSTITUENTID = @SPONSORSHIPCONSTITUENTID
            begin
                -- change from a gift to not a gift

                -- check/remove recipient constituency from sponsor, replacing w/ sponsor constituency

                exec dbo.USP_SPONSOR_CHECKANDMAKEINACTIVE @REVENUECONSTITUENTID, @CURRENTDATE, 1, @CHANGEAGENTID, @CURRENTDATE
                exec dbo.USP_SPONSOR_MAKEACTIVE @REVENUECONSTITUENTID, @CURRENTDATE, 0, @CHANGEAGENTID
            end
            else
            begin
                -- change from not a gift to a gift, or change of donor on a gift

                -- add appropriate constituencies to both sponsors

                exec dbo.USP_SPONSOR_MAKEACTIVE @REVENUECONSTITUENTID, @CURRENTDATE, 2, @CHANGEAGENTID
                exec dbo.USP_SPONSOR_MAKEACTIVE @SPONSORSHIPCONSTITUENTID, @CURRENTDATE, 1, @CHANGEAGENTID
            end

            -- add a transaction for the change

            insert into dbo.SPONSORSHIPTRANSACTION
            (
                ID,
                SPONSORSHIPCOMMITMENTID,
                TRANSACTIONSEQUENCE,
                ACTIONCODE,
--                SPONSORSHIPREASONID,

                CONTEXTSPONSORSHIPID,
                TARGETSPONSORSHIPID,
                TRANSACTIONDATE,
                GIFTFINANCIALSPONSORID,
                ADDEDBYID,
                CHANGEDBYID,
                DATEADDED,
                DATECHANGED
            )
            values
            (
                newid(),
                @COMMITMENTID,
                (select max(TRANSACTIONSEQUENCE)+1 from dbo.SPONSORSHIPTRANSACTION where SPONSORSHIPCOMMITMENTID = @COMMITMENTID),
                9,
--                @REASONID,

                @SPONSORSHIPID,
                @SPONSORSHIPID,
                @CURRENTDATE,
                case when @REVENUECONSTITUENTID <> @SPONSORSHIPCONSTITUENTID then @REVENUECONSTITUENTID end,
                @CHANGEAGENTID,
                @CHANGEAGENTID,
                @CURRENTDATE,
                @CURRENTDATE
            )
        end
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

return 0;