UFN_PLANNEDGIFT_GETTRANSACTIONREALIZEDAMOUNT

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN

Definition

Copy


                CREATE function dbo.UFN_PLANNEDGIFT_GETTRANSACTIONREALIZEDAMOUNT
                (
                    @ID uniqueidentifier
                )
                returns money
                with execute as caller
                as
                begin
                    declare @REALIZEDAMOUNT money;
                    set @REALIZEDAMOUNT = 0;

                    if(dbo.UFN_PLANNEDGIFT_AUTOCALCULATE_REALIZEDAMOUNT(@ID) = 1
                    begin

                        with REVENUEAMOUNT_CTE(REVENUEAMOUNT) as
                        (
                            --Pull in any payments for the planned gift revenue

                            select 
                                INSTALLMENTSPLITPAYMENT.AMOUNT as [REVENUEAMOUNT]
                            from
                                dbo.PLANNEDGIFTREVENUE 
                            inner join dbo.INSTALLMENTSPLITPAYMENT on
                                INSTALLMENTSPLITPAYMENT.PLEDGEID = PLANNEDGIFTREVENUE.REVENUEID
                            where 
                                PLANNEDGIFTREVENUE.ID = @ID    

                            union all

                            --Pull in any revenue directly paying this planned gift

                            select
                                REVENUESPLIT.TRANSACTIONAMOUNT as [REVENUEAMOUNT]
                            from 
                                dbo.PLANNEDGIFTREVENUESPLIT
                            inner join dbo.REVENUESPLIT on 
                                REVENUESPLIT.ID = PLANNEDGIFTREVENUESPLIT.REVENUESPLITID
                            where 
                                PLANNEDGIFTREVENUESPLIT.PLANNEDGIFTID = @ID  

                            union all

                            --Pull in any payments for any planned gift addition revenue (added to fix Bug 174692)

                            select 
                                INSTALLMENTSPLITPAYMENT.AMOUNT as [REVENUEAMOUNT]
                            from
                                dbo.PLANNEDGIFTADDITION 
                            inner join dbo.PLANNEDGIFTADDITIONREVENUE on 
                                PLANNEDGIFTADDITIONREVENUE.ID = PLANNEDGIFTADDITION.ID
                            inner join dbo.INSTALLMENTSPLITPAYMENT on
                                INSTALLMENTSPLITPAYMENT.PLEDGEID = PLANNEDGIFTADDITIONREVENUE.REVENUEID
                            where 
                                PLANNEDGIFTADDITION.PLANNEDGIFTID = @ID    
                        )
                        select 
                            @REALIZEDAMOUNT = isnull(sum(REVENUEAMOUNT),0
                        from 
                            REVENUEAMOUNT_CTE;
                    end
                    else
                    begin
                        select 
                            @REALIZEDAMOUNT = isnull(PLANNEDGIFT.TRANSACTIONREALIZEDVALUE,0)
                        from
                            dbo.PLANNEDGIFT
                        where 
                            PLANNEDGIFT.ID = @ID
                    end

                    return @REALIZEDAMOUNT;
                end