UFN_CORPORATION_GETGIVINGTOTAL

Returns the giving total for the given corporation and time period.

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@STARTDATE datetime IN
@ENDDATE datetime IN

Definition

Copy


            CREATE function [dbo].[UFN_CORPORATION_GETGIVINGTOTAL]
            (
                @CONSTITUENTID uniqueidentifier,
                @CURRENTAPPUSERID uniqueidentifier = null,
                @STARTDATE datetime = null,
                @ENDDATE datetime = null 
            )
            returns money
            as
                begin
                declare @d money;    

                select @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE),
                        @ENDDATE = dbo.UFN_DATE_GETLATESTTIME(@ENDDATE);

                select @d = sum(coalesce(REVENUESPLIT.BASEAMOUNT,0)) - sum(coalesce(IWO.AMOUNT, 0))
                from dbo.FINANCIALTRANSACTION REVENUE 
                    inner join (select distinct REVENUEID from dbo.UFN_SITEACCESSABLE_REVENUESPLITID_FORUSER(@CURRENTAPPUSERID)) SITEFILTER on SITEFILTER.REVENUEID = REVENUE.ID
                    inner join dbo.FINANCIALTRANSACTIONLINEITEM REVENUESPLIT on REVENUESPLIT.FINANCIALTRANSACTIONID = REVENUE.ID
                    inner join dbo.REVENUESPLIT_EXT on REVENUESPLIT_EXT.ID = REVENUESPLIT.ID
                    left join (select INSTALLMENTSPLIT.PLEDGEID, INSTALLMENTSPLIT.DESIGNATIONID, sum(IWO.AMOUNT) as AMOUNT
                                from dbo.INSTALLMENTSPLIT
                                inner join dbo.INSTALLMENTSPLITWRITEOFF IWO on IWO.INSTALLMENTSPLITID = INSTALLMENTSPLIT.ID
                                group by INSTALLMENTSPLIT.PLEDGEID, INSTALLMENTSPLIT.DESIGNATIONID) IWO
                        on IWO.PLEDGEID = REVENUESPLIT.FINANCIALTRANSACTIONID and IWO.DESIGNATIONID = REVENUESPLIT_EXT.DESIGNATIONID
                    left join dbo.INSTALLMENTSPLITPAYMENT on REVENUESPLIT.ID = INSTALLMENTSPLITPAYMENT.PAYMENTID
                where
                    REVENUE.CONSTITUENTID = @CONSTITUENTID and
                    (@STARTDATE is null or cast(REVENUE.DATE as datetime) >= dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE)) and
                    (@ENDDATE is null or cast(REVENUE.DATE as datetime) <= dbo.UFN_DATE_GETLATESTTIME(@ENDDATE)) and
                    (REVENUE.TYPECODE in (1,3) or --Pledge or MG claim

                        (REVENUE.TYPECODE = 0 and 
                            (REVENUESPLIT_EXT.APPLICATIONCODE in (0,1,3,4,5,6,18,19) or 
                                (REVENUESPLIT_EXT.APPLICATIONCODE = 7 and INSTALLMENTSPLITPAYMENT.ID is null) -- unapplied MG claim payments

                            )
                        )
                    ) --Payments                        


                return @d;
                end