UFN_EVENTEXPENSE_GETAMOUNTPAIDINCURRENCY
Returns the amount paid of an event expense in a given currency.
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTEXPENSEID | uniqueidentifier | IN | |
@CURRENCYID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_EVENTEXPENSE_GETAMOUNTPAIDINCURRENCY
(
@EVENTEXPENSEID uniqueidentifier,
@CURRENCYID uniqueidentifier
)
returns money
as
begin
declare @AMOUNT money = 0;
if @CURRENCYID is null or @CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY()
begin
select @AMOUNT = EVENTEXPENSE.ORGANIZATIONAMOUNTPAID
from dbo.EVENTEXPENSE
where EVENTEXPENSE.ID = @EVENTEXPENSEID;
end
else
begin
declare @RECORDBASECURRENCYID uniqueidentifier;
declare @RECORDDATE datetime;
select
@RECORDBASECURRENCYID = EVENTEXPENSE.BASECURRENCYID,
@RECORDDATE = EVENTEXPENSE.DATEADDED
from dbo.EVENTEXPENSE
where EVENTEXPENSE.ID = @EVENTEXPENSEID;
if @CURRENCYID = @RECORDBASECURRENCYID
select @AMOUNT = EVENTEXPENSE.AMOUNTPAID
from dbo.EVENTEXPENSE
where EVENTEXPENSE.ID = @EVENTEXPENSEID;
else
begin
declare @CURRENCYEXCHANGERATEID uniqueidentifier;
set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @CURRENCYID, @RECORDDATE, 1, null);
if @CURRENCYEXCHANGERATEID is not null
select @AMOUNT = dbo.UFN_CURRENCY_CONVERT(EVENTEXPENSE.ORGANIZATIONAMOUNTPAID, @CURRENCYEXCHANGERATEID)
from dbo.EVENTEXPENSE
where EVENTEXPENSE.ID = @EVENTEXPENSEID
else
begin
set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(@CURRENCYID, dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @RECORDDATE, 1, null);
select @AMOUNT = dbo.UFN_CURRENCY_CONVERTINVERSE(EVENTEXPENSE.ORGANIZATIONAMOUNTPAID, @CURRENCYEXCHANGERATEID)
from dbo.EVENTEXPENSE
where EVENTEXPENSE.ID = @EVENTEXPENSEID;
end
end
end
return @AMOUNT;
end