USP_PLANNEDGIFTREVENUE_DEFAULTSOLICITORS

Creates default solicitors for planned gift revenue.

Parameters

Parameter Parameter Type Mode Description
@PLANNEDGIFTID uniqueidentifier IN
@REVENUEID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@CURRENTDATE datetime IN

Definition

Copy


            CREATE procedure dbo.USP_PLANNEDGIFTREVENUE_DEFAULTSOLICITORS
            (
                @PLANNEDGIFTID uniqueidentifier,
                @REVENUEID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier,
                @CURRENTDATE datetime
            )
            as
                set nocount on

                --Multicurrency - AdamBu 5/19/10 - Retrieve multicurrency info for conversions

                declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();                
                declare @BASECURRENCYID uniqueidentifier;
                declare @BASEEXCHANGERATEID uniqueidentifier;
                declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
                --SlyyMu added the following block to handle systems that are not configured for O -> B    

                --Solicitors don't have a transaction currency, @ORGANIZATIONEXCHANGERATEIDFROMBASE handles the

                -- case where the revenue split ORGANIZATIONEXCHANGERATE is for converting from transaction to org currencies

                --Multicurrency - AdamBu 3/30/10 - Retrieve and calculate the necessary multicurrency values.    

                declare @AMOUNT money;
                declare @BASETOORGANIZATIONEXCHANGERATEID uniqueidentifier;
                declare @TRANSACTIONCURRENCYID uniqueidentifier;

                select
                    @BASECURRENCYID = BASECURRENCYID,
                    @BASEEXCHANGERATEID = BASEEXCHANGERATEID,
                    @ORGANIZATIONEXCHANGERATEID = ORGANIZATIONEXCHANGERATEID,
                    @TRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID, 
                    @AMOUNT = AMOUNT 
                from dbo.REVENUE
                where ID = @REVENUEID

                if @CURRENTDATE is null
                    set @CURRENTDATE = getdate()

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

                declare @APPLYTOPLANNEDGIFTS bit
                select
                    @APPLYTOPLANNEDGIFTS = coalesce(APPLYTOPLANNEDGIFTS, 0)
                from
                    dbo.SOLICITORCREDITRULES                

                if @APPLYTOPLANNEDGIFTS = 1
                begin
                    declare @PROSPECTPLANID uniqueidentifier
                    select @PROSPECTPLANID = PROSPECTPLANID from dbo.PLANNEDGIFT where PLANNEDGIFT.ID = @PLANNEDGIFTID                

                    exec dbo.USP_CURRENCY_GETCURRENCYVALUES
                        @AMOUNT=@AMOUNT,
                        @DATE=@CURRENTDATE,
                        @BASECURRENCYID=@BASECURRENCYID,
                        @BASEEXCHANGERATEID=@BASEEXCHANGERATEID,
                        @TRANSACTIONCURRENCYID=@TRANSACTIONCURRENCYID,
                        @BASEAMOUNT=null,
                        @ORGANIZATIONCURRENCYID=null,
                        @ORGANIZATIONAMOUNT=null,
                        @ORGANIZATIONEXCHANGERATEID=null,
                        @LOOKUPORGANIZATIONEXCHANGERATE=0,
                        @BASETOORGANIZATIONEXCHANGERATEID=@BASETOORGANIZATIONEXCHANGERATEID;

                    insert into dbo.REVENUESOLICITOR (
                        REVENUESPLITID, 
                        CONSTITUENTID, 
                        AMOUNT, 
                        SEQUENCE
                        DATEADDED, 
                        DATECHANGED, 
                        ADDEDBYID, 
                        CHANGEDBYID,
                        BASECURRENCYID,
                        ORGANIZATIONAMOUNT,
                        ORGANIZATIONEXCHANGERATEID
                    )
                    select
                        REVENUESPLIT.ID,
                        FUNDRAISER.ID,
                        (REVENUESPLIT.AMOUNT * FUNDRAISER.CREDITPERCENTAGE) / 100.0,
                        FUNDRAISER.SEQUENCE,
                        @CURRENTDATE,
                        @CURRENTDATE,
                        @CHANGEAGENTID,
                        @CHANGEAGENTID,
                        @BASECURRENCYID BASECURRENCYID,
                        case  --Multicurrency - AdamBu 5/19/10 - Calculate organization amount.

                            when @BASECURRENCYID <> @ORGANIZATIONCURRENCYID
                                then dbo.UFN_CURRENCY_CONVERT((FUNDRAISER.CREDITPERCENTAGE * REVENUESPLIT.AMOUNT) / 100.0, @BASETOORGANIZATIONEXCHANGERATEID)
                            else 
                                (FUNDRAISER.CREDITPERCENTAGE * REVENUESPLIT.AMOUNT) / 100.0
                        end ORGANIZATIONAMOUNT,
                        @BASETOORGANIZATIONEXCHANGERATEID ORGANIZATIONEXCHANGERATEID
                    from
                        dbo.REVENUESPLIT
                        cross join dbo.UFN_PROSPECTPLAN_GETFUNDRAISERSANDCREDITS(@PROSPECTPLANID) as FUNDRAISER
                    where REVENUESPLIT.REVENUEID = @REVENUEID
                    order by FUNDRAISER.SEQUENCE
                end