UFN_MEMBER_APPEALREVENUECOUNTS

Creates a table of appeals and their associated membership revenue counts.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@STARTDATE datetime IN
@ENDDATE datetime IN

Definition

Copy


            CREATE function dbo.UFN_MEMBER_APPEALREVENUECOUNTS
            (@STARTDATE datetime, @ENDDATE datetime)
            returns @MEMBERSHIPREVENUEINFO table
            (
                APPEALID uniqueidentifier NOT NULL PRIMARY KEY CLUSTERED,
                DONORCOUNT int NOT NULL,
                GIFTCOUNT int NOT NULL
            )
            as
            begin

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


                insert into @MEMBERSHIPREVENUEINFO
                select
                    REVENUE_EXT.APPEALID,
                    count(distinct(r.CONSTITUENTID)),
                    count(distinct(r.ID))
                from dbo.FINANCIALTRANSACTION r
                inner join dbo.REVENUE_EXT on r.ID = REVENUE_EXT.ID
                inner join dbo.FINANCIALTRANSACTIONLINEITEM on r.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
                inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
                inner join dbo.APPEAL on REVENUE_EXT.APPEALID = APPEAL.ID
                inner join dbo.MEMBERSHIP on APPEAL.MEMBERSHIPPROGRAMID = MEMBERSHIP.MEMBERSHIPPROGRAMID
                inner join dbo.MEMBER M on M.MEMBERSHIPID = MEMBERSHIP.ID
                where (REVENUE_EXT.APPEALID is not null) and 
                        (r.TYPECODE in (1, 3) or --Pledge/MG Pledge

                        (r.TYPECODE = 0 and REVENUESPLIT_EXT.APPLICATIONCODE in (0, 3, 5, 18, 19))) and --Payment (Gift,Recurring gift payment, Membership, Membership installment plan)

                    (cast(r.DATE as datetime) >= @STARTDATE or @STARTDATE is null) and
                    (cast(r.DATE as datetime) <= @ENDDATE or @ENDDATE is null) and
                    (r.CONSTITUENTID = m.CONSTITUENTID)
                    and FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1
                    and r.DELETEDON is null 
                    and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null
                group by REVENUE_EXT.APPEALID;


                return;


            end