UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGESPLITGROSSAMOUNT_2
Calculate pledge split gross amount with currency
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PLEDGESPLITID | uniqueidentifier | IN | |
@CURRENCYID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGESPLITGROSSAMOUNT_2
(
@PLEDGESPLITID uniqueidentifier,
@CURRENCYID uniqueidentifier
)
returns money
with execute as caller
as begin
declare @PLEDGESPLITGROSSAMOUNT money
if @CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY()
begin
select
@PLEDGESPLITGROSSAMOUNT = FINANCIALTRANSACTIONLINEITEM.ORGAMOUNT
+ coalesce(TAXCLAIM.BASETAXCLAIMAMOUNT + TAXCLAIM.TRANSITIONALTAXCLAIMAMOUNT, 0)
from dbo.FINANCIALTRANSACTIONLINEITEM
cross apply dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGETAXCLAIMAMOUNT_2(@PLEDGESPLITID,2) as TAXCLAIM
where FINANCIALTRANSACTIONLINEITEM.ID = @PLEDGESPLITID
end
--else if @CURRENCYID = (select REVENUESPLIT.BASECURRENCYID from dbo.REVENUESPLIT where REVENUESPLIT.ID = @PLEDGESPLITID)
else if @CURRENCYID = (select CURRENCYSET.BASECURRENCYID
from dbo.FINANCIALTRANSACTIONLINEITEM inner join DBO.FINANCIALTRANSACTION on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
inner join dbo.PDACCOUNTSYSTEM on FINANCIALTRANSACTION.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
inner join dbo.CURRENCYSET on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
where FINANCIALTRANSACTIONLINEITEM.ID = @PLEDGESPLITID)
begin
select
@PLEDGESPLITGROSSAMOUNT = FINANCIALTRANSACTIONLINEITEM.BASEAMOUNT
+ coalesce(TAXCLAIM.BASETAXCLAIMAMOUNT + TAXCLAIM.TRANSITIONALTAXCLAIMAMOUNT, 0)
from dbo.FINANCIALTRANSACTIONLINEITEM
cross apply dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGETAXCLAIMAMOUNT_2(@PLEDGESPLITID,0) as TAXCLAIM
where FINANCIALTRANSACTIONLINEITEM.ID = @PLEDGESPLITID
end
else if @CURRENCYID = (select FINANCIALTRANSACTION.TRANSACTIONCURRENCYID
from dbo.FINANCIALTRANSACTIONLINEITEM inner join FINANCIALTRANSACTION on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
where FINANCIALTRANSACTIONLINEITEM.ID = @PLEDGESPLITID)
begin
select
@PLEDGESPLITGROSSAMOUNT = FINANCIALTRANSACTIONLINEITEM.TRANSACTIONAMOUNT
+ coalesce(TAXCLAIM.BASETAXCLAIMAMOUNT + TAXCLAIM.TRANSITIONALTAXCLAIMAMOUNT, 0)
from dbo.FINANCIALTRANSACTIONLINEITEM
cross apply dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGETAXCLAIMAMOUNT_2(@PLEDGESPLITID,1) as TAXCLAIM
where FINANCIALTRANSACTIONLINEITEM.ID = @PLEDGESPLITID
end
else
begin
select
@PLEDGESPLITGROSSAMOUNT = FINANCIALTRANSACTIONLINEITEM.ORGAMOUNT
+ coalesce(TAXCLAIM.BASETAXCLAIMAMOUNT + TAXCLAIM.TRANSITIONALTAXCLAIMAMOUNT, 0)
from dbo.FINANCIALTRANSACTIONLINEITEM
cross apply dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGETAXCLAIMAMOUNT_2(@PLEDGESPLITID,2) as TAXCLAIM
where FINANCIALTRANSACTIONLINEITEM.ID = @PLEDGESPLITID
declare @RECORDDATE date = (select FINANCIALTRANSACTION.DATE from dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
where FINANCIALTRANSACTIONLINEITEM.ID = @PLEDGESPLITID);
declare @CURRENCYEXCHANGERATEID uniqueidentifier;
set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @CURRENCYID, @RECORDDATE, 1, null);
if (@CURRENCYEXCHANGERATEID is not null)
begin
set @PLEDGESPLITGROSSAMOUNT = dbo.UFN_CURRENCY_CONVERT(@PLEDGESPLITGROSSAMOUNT, @CURRENCYEXCHANGERATEID)
end
else
begin
set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(@CURRENCYID, dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @RECORDDATE, 1, null);
set @PLEDGESPLITGROSSAMOUNT = dbo.UFN_CURRENCY_CONVERTINVERSE(@PLEDGESPLITGROSSAMOUNT, @CURRENCYEXCHANGERATEID)
end
end
return @PLEDGESPLITGROSSAMOUNT
end