UFN_FUNDINGREQUEST_GETAMOUNTREQUESTEDINCURRENCY

Returns the requested amount of a funding request in a given currency.

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@FUNDINGREQUESTID uniqueidentifier IN
@CURRENCYID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_FUNDINGREQUEST_GETAMOUNTREQUESTEDINCURRENCY
(
    @FUNDINGREQUESTID uniqueidentifier,
    @CURRENCYID uniqueidentifier
)
returns money
as
begin
    declare @AMOUNT money = 0;

    if (@CURRENCYID is null) or (@CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY())
    begin
        select
            @AMOUNT = FUNDINGREQUEST.ORGANIZATIONAMOUNTREQUESTED
        from
            dbo.FUNDINGREQUEST
        where
            FUNDINGREQUEST.ID = @FUNDINGREQUESTID;
    end
    else
    begin
        declare @RECORDBASECURRENCYID uniqueidentifier;
        declare @RECORDDATE datetime;

        select
            @RECORDBASECURRENCYID = FUNDINGREQUEST.BASECURRENCYID,
            @RECORDDATE = FUNDINGREQUEST.DATEADDED
        from
            dbo.FUNDINGREQUEST
        where
            FUNDINGREQUEST.ID = @FUNDINGREQUESTID;

        if @CURRENCYID = @RECORDBASECURRENCYID
        begin
            select
                @AMOUNT = FUNDINGREQUEST.AMOUNTREQUESTED
            from
                dbo.FUNDINGREQUEST
            where
                FUNDINGREQUEST.ID = @FUNDINGREQUESTID;
        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(FUNDINGREQUEST.ORGANIZATIONAMOUNTREQUESTED, @CURRENCYEXCHANGERATEID)
                from
                    dbo.FUNDINGREQUEST
                where
                    FUNDINGREQUEST.ID = @FUNDINGREQUESTID;
            end
            else
            begin
                set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(@CURRENCYID, dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @RECORDDATE, 1, null);

                select
                    @AMOUNT = dbo.UFN_CURRENCY_CONVERTINVERSE(FUNDINGREQUEST.ORGANIZATIONAMOUNTREQUESTED, @CURRENCYEXCHANGERATEID)
                from
                    dbo.FUNDINGREQUEST
                where
                    FUNDINGREQUEST.ID = @FUNDINGREQUESTID;
            end
        end
    end    

    return @AMOUNT;
end