UFN_GIFTAIDREVENUESPLIT_CALCULATESPLITGROSSAMOUNTINCURRENCY
Calculate split gross amount
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@ACTUALONLY | bit | IN | |
@CURRENCYID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATESPLITGROSSAMOUNTINCURRENCY
(
@ID uniqueidentifier,
@ACTUALONLY bit,
@CURRENCYID uniqueidentifier
)
returns money
with execute as caller
as begin
declare @GROSSAMOUNT money;
declare @RECORDDATE date;
select
@GROSSAMOUNT = FINANCIALTRANSACTIONLINEITEM.ORGAMOUNT
from
dbo.FINANCIALTRANSACTIONLINEITEM
where FINANCIALTRANSACTIONLINEITEM.ID = @ID;
if @CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY()
begin
set @GROSSAMOUNT = @GROSSAMOUNT + dbo.UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT_2(@ID, @ACTUALONLY,2);
end
else if @CURRENCYID = (select
case
when FINANCIALTRANSACTIONLINEITEM.DELETEDON is null then isnull(REVENUE_EXT.NONPOSTABLEBASECURRENCYID, V_BASECURRENCYFORFINANCIALTRANSACTION_I.BASECURRENCYID)
else null
end
from
dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.REVENUE_EXT on REVENUE_EXT.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.V_BASECURRENCYFORFINANCIALTRANSACTION_I with (noexpand) on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = V_BASECURRENCYFORFINANCIALTRANSACTION_I.FINANCIALTRANSACTIONID
where
FINANCIALTRANSACTIONLINEITEM.ID = @ID
)
begin
select
@GROSSAMOUNT = FINANCIALTRANSACTIONLINEITEM.BASEAMOUNT
from
dbo.FINANCIALTRANSACTIONLINEITEM
where
FINANCIALTRANSACTIONLINEITEM.ID = @ID;
set @GROSSAMOUNT = @GROSSAMOUNT + dbo.UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT_2(@ID, @ACTUALONLY,0);
end
else if @CURRENCYID = (select case
when FINANCIALTRANSACTIONLINEITEM.DELETEDON is null then FINANCIALTRANSACTION.TRANSACTIONCURRENCYID
else null
end
from
dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
where
FINANCIALTRANSACTIONLINEITEM.ID = @ID
)
begin
select
@GROSSAMOUNT = FINANCIALTRANSACTIONLINEITEM.TRANSACTIONAMOUNT
from
dbo.FINANCIALTRANSACTIONLINEITEM
where
FINANCIALTRANSACTIONLINEITEM.ID = @ID;
set @GROSSAMOUNT = @GROSSAMOUNT + dbo.UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT_2(@ID, @ACTUALONLY,1);
end
else
begin
set @RECORDDATE = (select
cast(FINANCIALTRANSACTION.DATE as datetime)
from
dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
where
FINANCIALTRANSACTIONLINEITEM.ID = @ID
)
set @GROSSAMOUNT = @GROSSAMOUNT + dbo.UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT_2(@ID, @ACTUALONLY,2);
declare @CURRENCYEXCHANGERATEID uniqueidentifier;
set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @CURRENCYID, @RECORDDATE, 1, null);
if (@CURRENCYEXCHANGERATEID is not null)
begin
set @GROSSAMOUNT = dbo.UFN_CURRENCY_CONVERT(@GROSSAMOUNT, @CURRENCYEXCHANGERATEID)
end
else
begin
set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(@CURRENCYID, dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @RECORDDATE, 1, null);
set @GROSSAMOUNT = dbo.UFN_CURRENCY_CONVERTINVERSE(@GROSSAMOUNT, @CURRENCYEXCHANGERATEID)
end
end
return @GROSSAMOUNT;
end