UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGETOTALPAID

Calculates the total paid for a pledge, including Gift Aid.

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGETOTALPAID
            (
                @ID uniqueidentifier
            )
            returns money
            with execute as caller
            as begin

                declare @TOTALPAIDWITHGIFTAID money;
                declare @TOTALPAID money;
                declare @TAXCLAIMAMOUNT money;

                select @TOTALPAID = SUM(AMOUNT) from dbo.INSTALLMENTSPLITPAYMENT where PLEDGEID = @ID;

                if @TOTALPAID is null
                    set @TOTALPAID = 0;
                else
                begin
                    select @TAXCLAIMAMOUNT = 
                        sum(
                            case when REVENUESPLITGIFTAID.TRANSACTIONCURRENCYID = INSTALLMENTSPLITPAYMENT.APPLICATIONCURRENCYID
                                then REVENUESPLITGIFTAID.TRANSACTIONTAXCLAIMAMOUNT
                            else dbo.UFN_CURRENCY_CONVERT(
                                    REVENUESPLITGIFTAID.TRANSACTIONTAXCLAIMAMOUNT,
                                    INSTALLMENTSPLITPAYMENT.APPLICATIONEXCHANGERATEID
                                )
                            end
                        )
                        from dbo.REVENUESPLITGIFTAID
                        inner join dbo.INSTALLMENTSPLITPAYMENT on INSTALLMENTSPLITPAYMENT.PAYMENTID = REVENUESPLITGIFTAID.ID
                        and (REVENUESPLITGIFTAID.RULES_STATUS & REVENUESPLITGIFTAID.ATTRIBUTES_STATUS) = 1
                        and REVENUESPLITGIFTAID.DECLINESGIFTAID = 0
                        and dbo.UFN_GIFTAIDREVENUESPLIT_ISTAXCLAIMELIGIBILE(REVENUESPLITGIFTAID.ID) = 1
                        and INSTALLMENTSPLITPAYMENT.PLEDGEID = @ID;
                end

                if @TAXCLAIMAMOUNT is null
                    set @TOTALPAIDWITHGIFTAID = @TOTALPAID;
                else
                    select @TOTALPAIDWITHGIFTAID = @TOTALPAID + @TAXCLAIMAMOUNT;

                return @TOTALPAIDWITHGIFTAID;

            end