UFN_PLEDGE_GETREVALUEDBALANCEASOFINCURRENCY

Returns the unpaid balance, as a revalued amount in the given currency, for a given pledge as of a given date.

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@PLEDGEID uniqueidentifier IN
@ASOFDATE datetime IN
@USEORIGINALRATE bit IN
@CURRENCYID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_PLEDGE_GETREVALUEDBALANCEASOFINCURRENCY
            (
                @PLEDGEID uniqueidentifier,
                @ASOFDATE datetime,
                @USEORIGINALRATE bit = 0,
                @CURRENCYID uniqueidentifier
            ) 
            returns money
            with execute as caller
            as begin
                declare @RESULT money;

                declare @BASECURRENCYID uniqueidentifier;
                declare @TRANSACTIONCURRENCYID uniqueidentifier;
                select
                    @BASECURRENCYID = BASECURRENCYID,
                    @TRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID
                from dbo.REVENUE where ID = @PLEDGEID;

                if @CURRENCYID = @TRANSACTIONCURRENCYID
                    set @RESULT = dbo.UFN_PLEDGE_GETBALANCEASOF(@PLEDGEID, @ASOFDATE);
                else if @CURRENCYID = @BASECURRENCYID
                    set @RESULT = dbo.UFN_PLEDGE_GETREVALUEDBASEBALANCEASOF(@PLEDGEID, @ASOFDATE, @USEORIGINALRATE);
                else
                begin
                    declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                    if @CURRENCYID = @ORGANIZATIONCURRENCYID or @CURRENCYID is null
                    begin
                        set @RESULT = dbo.UFN_PLEDGE_GETREVALUEDORGANIZATIONBALANCEASOF(@PLEDGEID, @ASOFDATE, @USEORIGINALRATE);
                    end
                    else
                    begin
                        declare @CURRENCYEXCHANGERATEID uniqueidentifier;

                        set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(@TRANSACTIONCURRENCYID, @CURRENCYID, @ASOFDATE, 1, null);
                        set @RESULT = dbo.UFN_CURRENCY_CONVERT(dbo.UFN_PLEDGE_GETBALANCEASOF(@PLEDGEID, @ASOFDATE), @CURRENCYEXCHANGERATEID);
                    end
                end

                return @RESULT;
            end