USP_REPORT_VSESECONDARY_SECTION1A

Returns VSE secondary report Section 1a data.

Parameters

Parameter Parameter Type Mode Description
@STARTDATE datetime IN
@ENDDATE datetime IN
@INCLUDEINACTIVE smallint IN
@INCLUDEDECEASED smallint IN
@USEGIFTDATE smallint IN

Definition

Copy


            CREATE procedure dbo.USP_REPORT_VSESECONDARY_SECTION1A
            (
                @STARTDATE datetime = null,
                @ENDDATE datetime = null,
                @INCLUDEINACTIVE smallint = 0,
                @INCLUDEDECEASED smallint = 0,
                @USEGIFTDATE smallint = 0
            )
            with execute as owner
            as
                set nocount on;

                declare @CURRENTOPERATIONSPLEDGES int;
                declare @CURRENTOPERATIONSAMOUNT money;
                declare @CAPITALPURPOSESPLEDGES int;
                declare @CAPITALPURPOSESAMOUNT money;

                -- Exclude college

                declare @EXCLUDEUSAGETYPECODE bit = 0

                declare @REVENUEIDS table
                (
                    REVENUEID uniqueidentifier
                );

                insert into @REVENUEIDS
                (
                    REVENUEID
                )
                (
                    select
                        distinct REPORT_VSECATEGORY.REVENUEID
                    from 
                        dbo.UFN_REPORT_VSECATEGORY_PLEDGE(@STARTDATE, @ENDDATE, @USEGIFTDATE) as REPORT_VSECATEGORY
                        inner join dbo.VSECATEGORY on VSECATEGORY.ID = REPORT_VSECATEGORY.VSECATEGORYID
                        inner join dbo.CONSTITUENT with (nolock) on CONSTITUENT.ID = REPORT_VSECATEGORY.CONSTITUENTID
                        inner join dbo.UFN_CONSTITUENT_GETVSECONSTITUENTS(@STARTDATE, @ENDDATE, @EXCLUDEUSAGETYPECODE) as VSECONSTITUENT on VSECONSTITUENT.CONSTITUENTID = REPORT_VSECATEGORY.CONSTITUENTID 
                        left outer join dbo.DECEASEDCONSTITUENT as DECEASED on DECEASED.ID = CONSTITUENT.ID
                    where
                        REPORT_VSECATEGORY.APPLICATIONCODE <> 6
                        and VSECATEGORY.USAGETYPECODE <> @EXCLUDEUSAGETYPECODE
                        and (case when @STARTDATE is null 
                            then 0
                            else datediff(day, @STARTDATE, case when @USEGIFTDATE <> 0 then REPORT_VSECATEGORY.DATE else isnull(REPORT_VSECATEGORY.POSTDATE, REPORT_VSECATEGORY.DATE) end) end
                            ) >= 0
                        and (case when @ENDDATE is null 
                            then 0
                            else datediff(day, @ENDDATE, case when @USEGIFTDATE <> 0 then REPORT_VSECATEGORY.DATE else isnull(REPORT_VSECATEGORY.POSTDATE, REPORT_VSECATEGORY.DATE) end) end
                            ) <= 0
                        and case when @INCLUDEINACTIVE <> 0 then 0 else CONSTITUENT.ISINACTIVE end = 0
                        and case when @INCLUDEDECEASED <> 0 
                            then CONSTITUENT.id
                            else (case when DECEASED.ID is null then CONSTITUENT.ID else null end) end = CONSTITUENT.ID
                )

                select
                    @CURRENTOPERATIONSPLEDGES = coalesce(count(CURRENTOPERATIONS.REVENUEID), 0),
                    @CURRENTOPERATIONSAMOUNT = coalesce(sum(CURRENTOPERATIONS.PLEDGEBALANCE), 0)
                from (
                    select
                        REVENUE.REVENUEID REVENUEID,
                        dbo.UFN_REVENUE_VSEPLEDGEBALANCE(REVENUE.REVENUEID, @ENDDATE, @EXCLUDEUSAGETYPECODE, 0) PLEDGEBALANCE
                    from
                        @REVENUEIDS REVENUE
                    ) CURRENTOPERATIONS
                where
                    CURRENTOPERATIONS.PLEDGEBALANCE > 0

                select
                    @CAPITALPURPOSESPLEDGES = coalesce(count(CAPITALPURPOSES.REVENUEID), 0),
                    @CAPITALPURPOSESAMOUNT = coalesce(sum(CAPITALPURPOSES.PLEDGEBALANCE), 0)
                from (
                    select
                        REVENUE.REVENUEID REVENUEID,
                        dbo.UFN_REVENUE_VSEPLEDGEBALANCE(REVENUE.REVENUEID, @ENDDATE, @EXCLUDEUSAGETYPECODE, 1) PLEDGEBALANCE
                    from
                        @REVENUEIDS REVENUE
                    ) CAPITALPURPOSES
                where
                    CAPITALPURPOSES.PLEDGEBALANCE > 0

                select
                    @CURRENTOPERATIONSPLEDGES as CURRENTOPERATIONSPLEDGES,
                    @CURRENTOPERATIONSAMOUNT as CURRENTOPERATIONSAMOUNT,
                    @CAPITALPURPOSESPLEDGES as CAPITALPURPOSESPLEDGES,
                    @CAPITALPURPOSESAMOUNT as CAPITALPURPOSESAMOUNT;