UFN_REVENUESPLIT_GETAMOUNTINCURRENCY
Returns the amount of a given revenue split record in the given currency.
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REVENUESPLITID | uniqueidentifier | IN | |
@CURRENCYID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY
(
@REVENUESPLITID uniqueidentifier,
@CURRENCYID uniqueidentifier
)
returns money
as
begin
declare @AMOUNT money = 0;
if (@CURRENCYID is null) or (@CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY())
begin
select
@AMOUNT = REVENUESPLIT.ORGAMOUNT
from
dbo.FINANCIALTRANSACTIONLINEITEM REVENUESPLIT
where
REVENUESPLIT.ID = @REVENUESPLITID;
end
else
begin
declare @RECORDBASECURRENCYID uniqueidentifier;
declare @RECORDDATE datetime;
select
@RECORDBASECURRENCYID = case when FINANCIALTRANSACTIONLINEITEM.DELETEDON is null then isnull(REX.NONPOSTABLEBASECURRENCYID, V.BASECURRENCYID) else null end,
@RECORDDATE = cast(FINANCIALTRANSACTION.DATE as datetime)
from dbo.FINANCIALTRANSACTION
inner join dbo.REVENUE_EXT REX on REX.ID = FINANCIALTRANSACTION.ID
inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.V_BASECURRENCYFORFINANCIALTRANSACTION_I V with (noexpand) on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = V.FINANCIALTRANSACTIONID
where
FINANCIALTRANSACTIONLINEITEM.ID = @REVENUESPLITID;
if @CURRENCYID = @RECORDBASECURRENCYID
begin
select
@AMOUNT = REVENUESPLIT.BASEAMOUNT
from
dbo.FINANCIALTRANSACTIONLINEITEM [REVENUESPLIT]
where
REVENUESPLIT.ID = @REVENUESPLITID;
end
else
begin
declare @CURRENCYEXCHANGERATEID uniqueidentifier;
set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @CURRENCYID, @RECORDDATE, 1, null);
if (@CURRENCYEXCHANGERATEID is not null)
begin
select
@AMOUNT = dbo.UFN_CURRENCY_CONVERT(REVENUESPLIT.ORGAMOUNT, @CURRENCYEXCHANGERATEID)
from
dbo.FINANCIALTRANSACTIONLINEITEM [REVENUESPLIT]
where
REVENUESPLIT.ID = @REVENUESPLITID;
end
else
begin
set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(@CURRENCYID, dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @RECORDDATE, 1, null);
select
@AMOUNT = dbo.UFN_CURRENCY_CONVERTINVERSE(REVENUESPLIT.ORGAMOUNT, @CURRENCYEXCHANGERATEID)
from
dbo.FINANCIALTRANSACTIONLINEITEM [REVENUESPLIT]
where
REVENUESPLIT.ID = @REVENUESPLITID;
end
end
end
return @AMOUNT;
end