UFN_GIFTAIDREVENUESPLIT_CALCULATESPLITGROSSAMOUNTINCURRENCY

Calculate split gross amount

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@ACTUALONLY bit IN
@CURRENCYID uniqueidentifier IN

Definition

Copy


      CREATE function dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATESPLITGROSSAMOUNTINCURRENCY
      (
        @ID uniqueidentifier,
                @ACTUALONLY bit,
                @CURRENCYID uniqueidentifier
      )
      returns money
      with execute as caller
      as begin

        declare @GROSSAMOUNT money;
        declare @RECORDDATE date;

        select 
            @GROSSAMOUNT =  FINANCIALTRANSACTIONLINEITEM.ORGAMOUNT
        from 
            dbo.FINANCIALTRANSACTIONLINEITEM
        where FINANCIALTRANSACTIONLINEITEM.ID = @ID;

        if @CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY()
        begin
          set @GROSSAMOUNT = @GROSSAMOUNT + dbo.UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT_2(@ID, @ACTUALONLY,2);
        end
        else if @CURRENCYID = (select 
                                    case 
                                        when FINANCIALTRANSACTIONLINEITEM.DELETEDON is null then isnull(REVENUE_EXT.NONPOSTABLEBASECURRENCYID, V_BASECURRENCYFORFINANCIALTRANSACTION_I.BASECURRENCYID) 
                                        else null 
                                    end 
                               from 
                                    dbo.FINANCIALTRANSACTIONLINEITEM
                                    inner join dbo.REVENUE_EXT on REVENUE_EXT.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
                                    inner join dbo.V_BASECURRENCYFORFINANCIALTRANSACTION_I with (noexpand) on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = V_BASECURRENCYFORFINANCIALTRANSACTION_I.FINANCIALTRANSACTIONID
                               where 
                                    FINANCIALTRANSACTIONLINEITEM.ID = @ID
                              )
        begin
           select 
                @GROSSAMOUNT = FINANCIALTRANSACTIONLINEITEM.BASEAMOUNT
           from 
                dbo.FINANCIALTRANSACTIONLINEITEM
           where 
                FINANCIALTRANSACTIONLINEITEM.ID = @ID;
           set @GROSSAMOUNT = @GROSSAMOUNT + dbo.UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT_2(@ID, @ACTUALONLY,0);
        end
        else if @CURRENCYID = (select case 
                                        when FINANCIALTRANSACTIONLINEITEM.DELETEDON is null then FINANCIALTRANSACTION.TRANSACTIONCURRENCYID 
                                        else null 
                                      end 
                               from 
                                    dbo.FINANCIALTRANSACTIONLINEITEM 
                                    inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
                               where 
                                    FINANCIALTRANSACTIONLINEITEM.ID = @ID
                              )
        begin
           select 
                @GROSSAMOUNT = FINANCIALTRANSACTIONLINEITEM.TRANSACTIONAMOUNT
           from 
                dbo.FINANCIALTRANSACTIONLINEITEM
           where 
                FINANCIALTRANSACTIONLINEITEM.ID = @ID;
           set @GROSSAMOUNT = @GROSSAMOUNT + dbo.UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT_2(@ID, @ACTUALONLY,1);
        end
        else
        begin

           set @RECORDDATE = (select    
                                cast(FINANCIALTRANSACTION.DATE as datetime
                              from 
                                dbo.FINANCIALTRANSACTIONLINEITEM
                                inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
                              where 
                                FINANCIALTRANSACTIONLINEITEM.ID = @ID
                              )

           set @GROSSAMOUNT = @GROSSAMOUNT + dbo.UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT_2(@ID, @ACTUALONLY,2);

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

        return @GROSSAMOUNT;

      end