UFN_INSTALLMENTSPLITPAYMENT_GETAMOUNTINCURRENCY

Returns the amount for a given installment split in the given currency.

Return

Return Type
money

Parameters

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

Definition

Copy


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

                declare @APPLICATIONCURRENCYID uniqueidentifier;
                declare @RECORDDATE datetime;

                select
                    @APPLICATIONCURRENCYID = INSTALLMENTSPLITPAYMENT.APPLICATIONCURRENCYID,
                    @RECORDDATE = INSTALLMENTSPLITPAYMENT.DATEADDED
                from
                    dbo.INSTALLMENTSPLITPAYMENT                     
                where
                    INSTALLMENTSPLITPAYMENT.ID = @INSTALLMENTSPLITPAYMENTID;

                if @CURRENCYID = @APPLICATIONCURRENCYID
                begin
                    select
                        @AMOUNT = INSTALLMENTSPLITPAYMENT.AMOUNT
                    from
                        dbo.INSTALLMENTSPLITPAYMENT                     
                    where
                        INSTALLMENTSPLITPAYMENT.ID = @INSTALLMENTSPLITPAYMENTID;
                end
                else
                begin
                    declare @CURRENCYEXCHANGERATEID uniqueidentifier;

                    set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(@APPLICATIONCURRENCYID, @CURRENCYID, @RECORDDATE, 1, null);
                    if (@CURRENCYEXCHANGERATEID is not null)
                    begin
                        select
                            @AMOUNT = dbo.UFN_CURRENCY_CONVERT(INSTALLMENTSPLITPAYMENT.AMOUNT, @CURRENCYEXCHANGERATEID)
                        from
                             dbo.INSTALLMENTSPLITPAYMENT
                        where
                            INSTALLMENTSPLITPAYMENT.ID = @INSTALLMENTSPLITPAYMENTID;
                    end
                    else
                    begin
                        set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(@CURRENCYID, @APPLICATIONCURRENCYID, @RECORDDATE, 1, null);

                        select
                            @AMOUNT = dbo.UFN_CURRENCY_CONVERTINVERSE(INSTALLMENTSPLITPAYMENT.AMOUNT, @CURRENCYEXCHANGERATEID)
                        from
                            dbo.INSTALLMENTSPLITPAYMENT
                        where
                            INSTALLMENTSPLITPAYMENT.ID = @INSTALLMENTSPLITPAYMENTID;
                    end
                end    

                return @AMOUNT;
            end