USP_REVENUEDETAIL_CREATERECOGNITIONS

Creates recognition credits for a pledge payment or gift.

Parameters

Parameter Parameter Type Mode Description
@REVENUESPLITID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN
@SOURCERECURRINGGIFTREVENUESPLITID uniqueidentifier IN

Definition

Copy


            CREATE procedure dbo.USP_REVENUEDETAIL_CREATERECOGNITIONS
            (
                @REVENUESPLITID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier,
                @CHANGEDATE datetime,
                @SOURCERECURRINGGIFTREVENUESPLITID uniqueidentifier = null
            )
            as
      begin
                set nocount on;

                -- Verify that the revenue record isn't set to anonymous

                declare @REVENUEGIVENANONYMOUSLY bit
                declare @CONSTITUENTID uniqueidentifier
                declare @DATE datetime
                declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                declare @BASETOORGANIZATIONEXCHANGERATEID uniqueidentifier;
                declare @BASECURRENCYID uniqueidentifier;

                select
                    @REVENUEGIVENANONYMOUSLY = REVENUE_EXT.GIVENANONYMOUSLY,
                    @CONSTITUENTID = REVENUE.CONSTITUENTID,
                    @DATE = cast(REVENUE.DATE as datetime),
                    @BASECURRENCYID = isnull(REVENUE_EXT.NONPOSTABLEBASECURRENCYID, CS.BASECURRENCYID)
                from dbo.FINANCIALTRANSACTIONLINEITEM REVENUESPLIT
                inner join dbo.REVENUESPLIT_EXT on REVENUESPLIT_EXT.ID = REVENUESPLIT.ID
                inner join dbo.FINANCIALTRANSACTION REVENUE on REVENUE.ID = REVENUESPLIT.FINANCIALTRANSACTIONID
                inner join dbo.REVENUE_EXT on REVENUE_EXT.ID = REVENUE.ID
                inner join dbo.PDACCOUNTSYSTEM PD on PD.ID = REVENUE.PDACCOUNTSYSTEMID
                inner join dbo.CURRENCYSET CS on CS.ID = PD.CURRENCYSETID
                where REVENUESPLIT.ID = @REVENUESPLITID;

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

                insert into dbo.REVENUERECOGNITION
                (
                    REVENUESPLITID, 
                    CONSTITUENTID, 
                    AMOUNT,
                    EFFECTIVEDATE,
                    REVENUERECOGNITIONTYPECODEID,
                    ADDEDBYID, 
                    CHANGEDBYID, 
                    DATEADDED, 
                    DATECHANGED,
                    BASECURRENCYID,
                    ORGANIZATIONAMOUNT,
                    ORGANIZATIONEXCHANGERATEID
                )
                select
                    REVENUESPLIT.ID,
                    RECOGNITIONS.CONSTITUENTID,
                    RECOGNITIONS.AMOUNT,
                    @DATE,
                    RECOGNITIONS.REVENUERECOGNITIONTYPECODEID,
                    @CHANGEAGENTID,
                    @CHANGEAGENTID,
                    @CHANGEDATE
                    @CHANGEDATE,
                    @BASECURRENCYID,
                    case  --Multicurrency - AdamBu 3/30/10 - Calculate organization amount.

                        when @BASECURRENCYID <> @ORGANIZATIONCURRENCYID
                            then dbo.UFN_CURRENCY_CONVERT(RECOGNITIONS.AMOUNT, @BASETOORGANIZATIONEXCHANGERATEID)
                        else RECOGNITIONS.AMOUNT
                    end,
                    @BASETOORGANIZATIONEXCHANGERATEID ORGANIZATIONEXCHANGERATEID
                from dbo.FINANCIALTRANSACTIONLINEITEM REVENUESPLIT
                cross apply dbo.UFN_REVENUEDETAIL_GETDEFAULTRECOGNITIONS(@REVENUEGIVENANONYMOUSLY, @CONSTITUENTID, REVENUESPLIT.BASEAMOUNT, @DATE, @SOURCERECURRINGGIFTREVENUESPLITID) as RECOGNITIONS
                where
                    REVENUESPLIT.ID = @REVENUESPLITID
      end