UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGEGROSSAMOUNTINCURRENCY

Calculate pledge gross amount in currency.

Return

Return Type
money

Parameters

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

Definition

Copy


  CREATE function dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGEGROSSAMOUNTINCURRENCY
            (
                @PLEDGEID uniqueidentifier,
        @CURRENCYID uniqueidentifier
            )
            returns money
            with execute as caller
            as begin
                declare @PLEDGEGROSSAMOUNT money
        declare @RECORDDATE date = (select DATE from dbo.REVENUE where REVENUE.ID = @PLEDGEID)

                select
                    @PLEDGEGROSSAMOUNT = sum(REVENUESPLIT.ORGANIZATIONAMOUNT)
          + sum(coalesce(TAXCLAIM.BASETAXCLAIMAMOUNT + TAXCLAIM.TRANSITIONALTAXCLAIMAMOUNT, 0))
                from dbo.REVENUESPLIT
                cross apply dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGETAXCLAIMAMOUNT_2(REVENUESPLIT.ID,2) as TAXCLAIM
                where REVENUESPLIT.REVENUEID = @PLEDGEID

        if @CURRENCYID <> dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY()
        begin
          declare @CURRENCYEXCHANGERATEID uniqueidentifier;
                  set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @CURRENCYID, @RECORDDATE, 1, null);
                  if (@CURRENCYEXCHANGERATEID is not null)
          begin
              set @PLEDGEGROSSAMOUNT =  dbo.UFN_CURRENCY_CONVERT(@PLEDGEGROSSAMOUNT, @CURRENCYEXCHANGERATEID)
          end
          else
                  begin
                    set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(@CURRENCYID, dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @RECORDDATE, 1, null);
                    set @PLEDGEGROSSAMOUNT =  dbo.UFN_CURRENCY_CONVERTINVERSE(@PLEDGEGROSSAMOUNT, @CURRENCYEXCHANGERATEID)
          end
        end

                return @PLEDGEGROSSAMOUNT
            end