USP_DATAFORMTEMPLATE_DATALIST_FUNDRAISERSSUMMARYOPPORTUNITIES

Fetches summary information for opportunities and asks.

Parameters

Parameter Parameter Type Mode Description
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@ORGPOSITIONSSELECTIONID uniqueidentifier IN

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_DATALIST_FUNDRAISERSSUMMARYOPPORTUNITIES
                (
                    @CURRENTAPPUSERID uniqueidentifier = null
                    @ORGPOSITIONSSELECTIONID uniqueidentifier = null
                )
                as begin
                    set nocount on;

                    declare @QUALIFIEDOPPORTUNITIESCOUNT int;
                    declare @QUALIFIEDOPPORTUNITIESAMOUNT money;
                    declare @OVERDUEASKSCOUNT int;
                    declare @OVERDUEASKSAMOUNT money;
                    declare @FUZZYTODAY dbo.UDT_FUZZYDATE;

                    set @FUZZYTODAY = convert(nvarchar(8), getdate(), 112);

                    if @ORGPOSITIONSSELECTIONID is null
                    begin
                        select
                            @QUALIFIEDOPPORTUNITIESCOUNT = count(*),
                            @QUALIFIEDOPPORTUNITIESAMOUNT = coalesce(sum(AMOUNT), 0)
                        from 
                            dbo.OPPORTUNITY
                        where
                            STATUSCODE in (1,2);

                        select
                            @OVERDUEASKSCOUNT = count(*),
                            @OVERDUEASKSAMOUNT = coalesce(sum(O.AMOUNT), 0)
                        from 
                            dbo.OPPORTUNITY O
                        where
                            O.STATUSCODE=2
                            and O.RESPONSEDATE<@FUZZYTODAY;
                    end
                    else
                    begin
                        declare @IDS as table(ID uniqueidentifier);
                        insert into @IDS exec USP_ORGANIZATIONHIERARCHY_IDSET_POSITIONHOLDERS @ORGPOSITIONSSELECTIONID, @CURRENTAPPUSERID;

                        select
                            @QUALIFIEDOPPORTUNITIESCOUNT = count(*),
                            @QUALIFIEDOPPORTUNITIESAMOUNT = coalesce(sum(O.AMOUNT), 0)
                        from 
                            dbo.OPPORTUNITY O
                        inner join dbo.PROSPECTPLAN PP
                            on O.PROSPECTPLANID = PP.ID
                        inner join dbo.ORGANIZATIONPOSITIONHOLDER OPH 
                            on OPH.CONSTITUENTID = PP.PRIMARYMANAGERFUNDRAISERID and O.RESPONSEDATE between OPH.DATEFROM and coalesce(OPH.DATETO, O.RESPONSEDATE)
                        inner join @IDS as SELECTION on OPH.[ID] = SELECTION.[ID]
                        where
                            O.STATUSCODE in (1,2);

                        select
                            @OVERDUEASKSCOUNT = count(*),
                            @OVERDUEASKSAMOUNT = coalesce(sum(O.AMOUNT), 0)
                        from 
                            dbo.OPPORTUNITY O
                        inner join dbo.PROSPECTPLAN PP
                            on O.PROSPECTPLANID = PP.ID
                        inner join dbo.ORGANIZATIONPOSITIONHOLDER OPH 
                            on OPH.CONSTITUENTID = PP.PRIMARYMANAGERFUNDRAISERID and O.RESPONSEDATE between OPH.DATEFROM and coalesce(OPH.DATETO, O.RESPONSEDATE)
                        inner join @IDS as SELECTION on OPH.[ID] = SELECTION.[ID]
                        where
                            O.STATUSCODE=2
                            and O.RESPONSEDATE<@FUZZYTODAY;
                    end

                    select 
                        @QUALIFIEDOPPORTUNITIESCOUNT,
                        @QUALIFIEDOPPORTUNITIESAMOUNT,
                        @OVERDUEASKSCOUNT,
                        @OVERDUEASKSAMOUNT

                    return 0;
                end