USP_DATAFORMTEMPLATE_DATALIST_FUNDRAISERSSUMMARYFUTURE

Fetches summary information for opportunities and asks.

Parameters

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

Definition

Copy


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

                    declare @STARTDATE datetime;
                    declare @ENDDATE datetime;

                    exec dbo.USP_RESOLVEDATEFILTER @DATEFILTER, @STARTDATE output, @ENDDATE output;

                    declare @OUTSTANDINGASKSCOUNT int;
                    declare @OUTSTANDINGASKSAMOUNT money;

                    if @ORGPOSITIONSSELECTIONID is null
                        select
                            @OUTSTANDINGASKSCOUNT = count(*),
                            @OUTSTANDINGASKSAMOUNT = coalesce(sum(O.AMOUNT), 0)
                        from 
                            dbo.OPPORTUNITY O
                        where
                            O.STATUSCODE=2
                            and (O.RESPONSEDATE is null
                                or (O.RESPONSEDATE>=convert(nvarchar(8), getdate(), 112)
                                and O.RESPONSEDATE>=convert(nvarchar(8), @STARTDATE, 112
                                and O.RESPONSEDATE<=convert(nvarchar(8), @ENDDATE, 112))
                            );
                    else
                    begin
                        declare @IDS as table(ID uniqueidentifier);
                        insert into @IDS exec USP_ORGANIZATIONHIERARCHY_IDSET_POSITIONHOLDERS @ORGPOSITIONSSELECTIONID, @CURRENTAPPUSERID;

                        select
                            @OUTSTANDINGASKSCOUNT = count(*),
                            @OUTSTANDINGASKSAMOUNT = 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 is null
                                or (O.RESPONSEDATE>=convert(nvarchar(8), getdate(), 112)
                                and O.RESPONSEDATE>=convert(nvarchar(8), @STARTDATE, 112
                                and O.RESPONSEDATE<=convert(nvarchar(8), @ENDDATE, 112))
                            );
                    end

                    select 
                        @OUTSTANDINGASKSCOUNT,
                        @OUTSTANDINGASKSAMOUNT

                    return 0;
                end