USP_REVENUE_CREATERECOGNITIONS_WITHAMOUNT

Creates recognition credit based on a base recognition amount which is used to calculate the prorated credit amounts.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@RECOGNITIONAMOUNT money IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN

Definition

Copy


            create procedure dbo.USP_REVENUE_CREATERECOGNITIONS_WITHAMOUNT
            (
                @ID uniqueidentifier,
                @RECOGNITIONAMOUNT money,
                @CHANGEAGENTID uniqueidentifier,
                @CHANGEDATE datetime
            )
            as
                set nocount on;

                if @RECOGNITIONAMOUNT <= 0
                  return;

                -- 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.GIVENANONYMOUSLY,
                    @CONSTITUENTID = REVENUE.CONSTITUENTID,
                    @DATE = REVENUE.DATE,
                    @BASECURRENCYID = REVENUE.BASECURRENCYID
                from dbo.REVENUE 
                where REVENUE.ID = @ID

                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,
                    REVENUESPLIT.BASECURRENCYID,
                    case  --Multicurrency - AdamBu 3/30/10 - Calculate organization amount.

                        when REVENUESPLIT.BASECURRENCYID <> @ORGANIZATIONCURRENCYID
                            then dbo.UFN_CURRENCY_CONVERT(RECOGNITIONS.AMOUNT, @BASETOORGANIZATIONEXCHANGERATEID)
                        else RECOGNITIONS.AMOUNT
                    end,
                    @BASETOORGANIZATIONEXCHANGERATEID ORGANIZATIONEXCHANGERATEID
                from dbo.REVENUE
                inner join dbo.REVENUESPLIT on REVENUE.ID = REVENUESPLIT.REVENUEID
                inner join dbo.UFN_REVENUE_GETPRORATEDSPLITS(@ID, @RECOGNITIONAMOUNT) PRORATEDSPLITS on REVENUESPLIT.ID = PRORATEDSPLITS.SOURCEREVENUESPLITID
                cross apply dbo.UFN_REVENUEDETAIL_GETDEFAULTRECOGNITIONS(@REVENUEGIVENANONYMOUSLY, @CONSTITUENTID, PRORATEDSPLITS.AMOUNT, @DATE, null) as RECOGNITIONS
                where
                    REVENUE.ID = @ID