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