USP_DATALIST_WP_GETGIVINGTOTALS

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@CONFIDENCE int IN

Definition

Copy


CREATE procedure dbo.USP_DATALIST_WP_GETGIVINGTOTALS(
    @CONSTITUENTID uniqueidentifier = null,
    @CONFIDENCE integer = 0
    )
as
    set nocount on;
declare @tempCategories table (
    CATEGORY nvarchar(201),
    VALUE integer
)

insert into @tempCategories
    select 
        PHILANTHROPICGIFTCATEGORY.DESCRIPTION as [CATEGORY],
        COUNT(*) as [VALUE]
    from WPPHILANTHROPICGIFT as wp
    left outer join WPPHILANTHROPICGIFTCATEGORY 
        on wp.ID = WPPHILANTHROPICGIFTCATEGORY.WPPHILANTHROPICGIFTID
    left outer join PHILANTHROPICGIFTCATEGORY  
        on PHILANTHROPICGIFTCATEGORY.ID = WPPHILANTHROPICGIFTCATEGORY.PHILANTHROPICGIFTCATEGORYID
    left outer join dbo.MATCHCODE 
        on wp.MC = MATCHCODE.MATCHCODE
    left outer join dbo.WEALTHSOURCE 
        on wp.SOURCE = WEALTHSOURCE.SOURCE
    left outer join dbo.CONFIDENCERATING 
        on CONFIDENCERATING.MATCHCODEID = MATCHCODE.ID 
        and CONFIDENCERATING.WEALTHSOURCEID = WEALTHSOURCE.ID
    where 
        wp.WEALTHID = @CONSTITUENTID
        and (select
            case
                when wp.CONFIRMED = 1 then '99'
                else
                    ISNULL(coalesce(CONFIDENCERATING.CONFIDENCE, MATCHCODE.DEFAULTCONFIDENCE),
                        (select top(1) MANUALCONFIDENCE from dbo.WEALTHPOINTCONFIGURATION))
            end
        ) >= @CONFIDENCE
        and wp.REJECTED = 0
        and PHILANTHROPICGIFTCATEGORY.DESCRIPTION is not null
        group by PHILANTHROPICGIFTCATEGORY.DESCRIPTION

declare @numCategories integer = (select COUNT(*) from @tempCategories);    

if @numCategories < 7 
begin
    select CATEGORY, VALUE, 0 as [ADDITIONALCATEGORY] from @tempCategories
        Order by VALUE desc, CATEGORY
end
else begin

    declare @tempCategories2 table (
        CATEGORY nvarchar(201),
        VALUE integer
    )

    insert into @tempCategories2
    select top 5 CATEGORY, VALUE from @tempCategories    
        Order by VALUE desc, CATEGORY

    declare @TOTAL integer;
    select @TOTAL = SUM(VALUE) from @tempCategories    
    declare @TOP5TOTAL integer;
    select @TOP5TOTAL = SUM(VALUE) from @tempCategories2    

    select CATEGORY, VALUE, 0 as [ADDITIONALCATEGORY] from @tempCategories2
    UNION ALL
    select 'Additional Categories', (@TOTAL-@TOP5TOTAL), 1
        Order by ADDITIONALCATEGORY, VALUE desc, CATEGORY
end