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