UFN_RECURRINGGIFTINSTALLMENTWRITEOFF_GETAMOUNTINCURRENCY

Recurring gift installment write off amount in currency

Return

Return Type
money

Parameters

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

Definition

Copy


    CREATE function dbo.UFN_RECURRINGGIFTINSTALLMENTWRITEOFF_GETAMOUNTINCURRENCY
    (
      @RECURRINGGIFTINSTALLMENTID uniqueidentifier,
        @CURRENCYID uniqueidentifier
    )
    returns money
    as
    begin

      declare @AMOUNT money = 0;

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

            select
                @RECORDBASECURRENCYID = RECURRINGGIFTINSTALLMENTWRITEOFF.BASECURRENCYID,
                @RECORDDATE = RECURRINGGIFTINSTALLMENTWRITEOFF.DATEADDED
            from
                dbo.RECURRINGGIFTINSTALLMENTWRITEOFF
            where
                RECURRINGGIFTINSTALLMENTWRITEOFF.ID = @RECURRINGGIFTINSTALLMENTID;

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

                    select
                        @AMOUNT = dbo.UFN_CURRENCY_CONVERTINVERSE(RECURRINGGIFTINSTALLMENTWRITEOFF.ORGANIZATIONAMOUNT, @CURRENCYEXCHANGERATEID)
                    from
                        dbo.RECURRINGGIFTINSTALLMENTWRITEOFF
                    where
                        RECURRINGGIFTINSTALLMENTWRITEOFF.ID = @RECURRINGGIFTINSTALLMENTID;
                end
            end
       end
      return @AMOUNT
    end