UFN_PLANNEDGIFT_GETREALIZEDAMOUNT
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_PLANNEDGIFT_GETREALIZEDAMOUNT
(
@ID uniqueidentifier
)
returns money
with execute as caller
as
begin
declare @BASEREALIZEDAMOUNT money;
set @BASEREALIZEDAMOUNT = 0;
if(dbo.UFN_PLANNEDGIFT_AUTOCALCULATE_REALIZEDAMOUNT(@ID) = 1)
begin
-- Get the result of the calculation in transaction currency,
-- then convert it to base currency.
declare @TRANSACTIONREALIZEDAMOUNT money;
declare @DATE datetime;
declare @BASECURRENCYID uniqueidentifier;
declare @BASEEXCHANGERATEID uniqueidentifier;
declare @TRANSACTIONCURRENCYID uniqueidentifier;
-- Get the calculation result in transaction currency.
select @TRANSACTIONREALIZEDAMOUNT = dbo.UFN_PLANNEDGIFT_GETTRANSACTIONREALIZEDAMOUNT(@ID);
-- Get the currency information we need for conversion.
select
@DATE = GIFTDATE,
@BASECURRENCYID = BASECURRENCYID,
@BASEEXCHANGERATEID = BASEEXCHANGERATEID,
@TRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID
from
dbo.PLANNEDGIFT
where
ID = @ID;
-- Perform the conversion to base currency.
if @TRANSACTIONCURRENCYID = @BASECURRENCYID or @TRANSACTIONCURRENCYID is null
begin
set @BASEREALIZEDAMOUNT = @TRANSACTIONREALIZEDAMOUNT;
end
else
begin
if @BASEEXCHANGERATEID is null
set @BASEEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@TRANSACTIONCURRENCYID, @BASECURRENCYID, @DATE, 1, null);
set @BASEREALIZEDAMOUNT = dbo.UFN_CURRENCY_CONVERT(@TRANSACTIONREALIZEDAMOUNT, @BASEEXCHANGERATEID);
end
end
else
begin
select
@BASEREALIZEDAMOUNT = isnull(PLANNEDGIFT.REALIZEDVALUE,0)
from
dbo.PLANNEDGIFT
where
PLANNEDGIFT.ID = @ID
end
return @BASEREALIZEDAMOUNT;
end