USP_DATAFORMTEMPLATE_DATALIST_OPPORTUNITIESSUMMARYPAST

Fetches summary information.

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_OPPORTUNITIESSUMMARYPAST
                (
                    @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 @TODAY datetime;
                    set @TODAY=getdate();

                    declare @MOVESTEPSCOMPLETED int;
                    declare @COMPLETEDASKSCOUNT int;
                    declare @COMPLETEDASKSAMOUNT money;
                    declare @ACCEPTEDASKSCOUNT int;
                    declare @ACCEPTEDASKSAMOUNT money;
                    declare @HASACCEPTEDREJECTEDINFUTURE bit;

                    if @ORGPOSITIONSSELECTIONID is null
                    begin
                        select
                            @MOVESTEPSCOMPLETED = count(*)
                        from 
                            dbo.INTERACTION
                        where
                            COMPLETED=1
                            and ISINTERACTION=1
                            and PROSPECTPLANID is not null
                            and @STARTDATE<=ACTUALDATE;

                        select
                            @COMPLETEDASKSCOUNT = count(*),
                            @COMPLETEDASKSAMOUNT = coalesce(sum(O.AMOUNT), 0)
                        from 
                            dbo.OPPORTUNITY O
                        where
                            O.STATUSCODE in (3,4)
                            and @STARTDATE<=O.RESPONSEDATE;

                        select
                            @ACCEPTEDASKSCOUNT = count(*),
                            @ACCEPTEDASKSAMOUNT = coalesce(sum(O.AMOUNT), 0)
                        from 
                            dbo.OPPORTUNITY O
                        where
                            O.STATUSCODE=3
                            and @STARTDATE<=O.RESPONSEDATE;

                        if exists(select 1 from dbo.OPPORTUNITY where STATUSCODE in (3,4) and RESPONSEDATE>@TODAY)
                            set @HASACCEPTEDREJECTEDINFUTURE = 1;
                        else
                            set @HASACCEPTEDREJECTEDINFUTURE = 0;
                    end
                    else
                    begin
                        declare @IDS as table(ID uniqueidentifier);
                        insert into @IDS exec USP_ORGANIZATIONHIERARCHY_IDSET_POSITIONHOLDERS @ORGPOSITIONSSELECTIONID, @CURRENTAPPUSERID;

                        select
                            @MOVESTEPSCOMPLETED = count(*)
                        from 
                            dbo.INTERACTION I
                            inner join dbo.ORGANIZATIONPOSITIONHOLDER OPH 
                                on OPH.CONSTITUENTID = I.FUNDRAISERID and I.DATE between OPH.DATEFROM and coalesce(OPH.DATETO, I.DATE)
                            inner join @IDS as SELECTION on OPH.[ID] = SELECTION.[ID]
                        where
                            I.COMPLETED=1
                            and I.ISINTERACTION=1
                            and I.PROSPECTPLANID is not null
                            and @STARTDATE<=I.ACTUALDATE;

                        select
                            @COMPLETEDASKSCOUNT = count(*),
                            @COMPLETEDASKSAMOUNT = 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 (3,4)
                            and @STARTDATE<=O.RESPONSEDATE;

                        select
                            @ACCEPTEDASKSCOUNT = count(*),
                            @ACCEPTEDASKSAMOUNT = 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=3
                            and @STARTDATE<=O.RESPONSEDATE;

                        if exists(
                                select 1 
                                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 (3,4) and O.RESPONSEDATE>@TODAY
                            )
                            set @HASACCEPTEDREJECTEDINFUTURE = 1;
                        else
                            set @HASACCEPTEDREJECTEDINFUTURE = 0;
                    end

                    select 
                        @MOVESTEPSCOMPLETED,
                        @COMPLETEDASKSCOUNT,
                        @COMPLETEDASKSAMOUNT,
                        @ACCEPTEDASKSCOUNT,
                        @ACCEPTEDASKSAMOUNT,
                        @HASACCEPTEDREJECTEDINFUTURE;

                    return 0;
                end