UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK
Returns the amount of a given revenue split record in the given currency.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CURRENCYID | uniqueidentifier | IN | |
@ORGANIZATIONCURRENCYID | uniqueidentifier | IN | |
@DECIMALDIGITS | tinyint | IN | |
@ROUNDINGTYPECODE | tinyint | IN |
Definition
Copy
CREATE function [dbo].[UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK]
(
@CURRENCYID uniqueidentifier,
@ORGANIZATIONCURRENCYID uniqueidentifier,
@DECIMALDIGITS tinyint,
@ROUNDINGTYPECODE tinyint
)
returns table
as
return
(
select
FTLI.ID,
RES.APPLICATIONCODE,
RES.[APPLICATION],
FTLI.FINANCIALTRANSACTIONID REVENUEID,
FT.CONSTITUENTID,
RE.APPEALID,
FT.TYPECODE as TRANSACTIONTYPECODE,
FT.[TYPE] as TRANSACTIONTYPE,
case when
(@CURRENCYID is not null)
and (@CURRENCYID <> @ORGANIZATIONCURRENCYID)
and @CURRENCYID <> FTB.BASECURRENCYID
then
case
when [LATESTORGANIZATIONEXCHANGERATE].RATE is not null
then dbo.UFN_CURRENCY_ROUND(dbo.UFN_CURRENCY_APPLYRATE(FTLI.ORGAMOUNT, [LATESTORGANIZATIONEXCHANGERATE].RATE), @DECIMALDIGITS, @ROUNDINGTYPECODE)
when [LATESTINVERSEORGANIZATIONEXCHANGERATE].RATE is not null
then dbo.UFN_CURRENCY_ROUND(dbo.UFN_CURRENCY_APPLYRATE(FTLI.ORGAMOUNT, cast((1 / [LATESTINVERSEORGANIZATIONEXCHANGERATE].RATE) as decimal(20,8))), @DECIMALDIGITS, @ROUNDINGTYPECODE)
else
0
end
else
case
when (@CURRENCYID is null) or (@CURRENCYID = @ORGANIZATIONCURRENCYID)
then FTLI.ORGAMOUNT
else
FTLI.BASEAMOUNT
end
end [AMOUNTINCURRENCY],
cast(FT.[DATE] as datetime) [DATE],
RES.DESIGNATIONID,
RES.TYPECODE,
FTLI.[TYPE],
FT.DATEADDED [REVENUEDATEADDED],
FTLI.TSLONG,
RE.CHANNELCODEID,
FT.TRANSACTIONCURRENCYID,
FTLI.DESCRIPTION,
FTLI.POSTDATE,
FTLI.DELETEDON SPLITDELETEDON,
FT.DELETEDON REVENUEDELETEDON
from
dbo.FINANCIALTRANSACTIONLINEITEM as FTLI with (nolock)
inner join dbo.FINANCIALTRANSACTION as FT with (nolock) on FTLI.FINANCIALTRANSACTIONID = FT.ID
inner join dbo.V_BASECURRENCYFORFINANCIALTRANSACTION_I as FTB with (nolock) on FT.ID = FTB.FINANCIALTRANSACTIONID
inner join dbo.REVENUE_EXT as RE on FT.ID = RE.ID
inner join dbo.REVENUESPLIT_EXT as RES on FTLI.ID = RES.ID
left outer join dbo.CURRENCYEXCHANGERATE LATESTORGANIZATIONEXCHANGERATE with (nolock)
on
@ORGANIZATIONCURRENCYID = LATESTORGANIZATIONEXCHANGERATE.FROMCURRENCYID
and @CURRENCYID = LATESTORGANIZATIONEXCHANGERATE.TOCURRENCYID
and LATESTORGANIZATIONEXCHANGERATE.TYPECODE in (0,1)
and LATESTORGANIZATIONEXCHANGERATE.ISLATESTRATEFORASOFDATE = 1
and dateadd(ms, 86399996, FT.[DATE]) >= LATESTORGANIZATIONEXCHANGERATE.ASOFDATE
and dateadd(ms, 86399996, FT.[DATE]) <= LATESTORGANIZATIONEXCHANGERATE.NEXTRATEASOFDATEORMAX
left outer join dbo.CURRENCYEXCHANGERATE LATESTINVERSEORGANIZATIONEXCHANGERATE with (nolock)
on
@CURRENCYID = LATESTINVERSEORGANIZATIONEXCHANGERATE.FROMCURRENCYID
and @ORGANIZATIONCURRENCYID= LATESTINVERSEORGANIZATIONEXCHANGERATE.TOCURRENCYID
and LATESTINVERSEORGANIZATIONEXCHANGERATE.TYPECODE in (0,1)
and LATESTINVERSEORGANIZATIONEXCHANGERATE.ISLATESTRATEFORASOFDATE = 1
and dateadd(ms, 86399996, FT.[DATE]) >= LATESTINVERSEORGANIZATIONEXCHANGERATE.ASOFDATE
and dateadd(ms, 86399996, FT.[DATE]) <= LATESTINVERSEORGANIZATIONEXCHANGERATE.NEXTRATEASOFDATEORMAX
where FTLI.DELETEDON is null and FTLI.TYPECODE = 0
)