USP_DATALIST_PROSPECTSNORECENTSTEPS
List of prospects with no completed steps in the past 90 days.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@ORGPOSITIONSSELECTIONID | uniqueidentifier | IN | Show for |
@NUMBEROFDAYS | smallint | IN | No steps for |
@SECURITYFEATUREID | uniqueidentifier | IN | Input parameter indicating the ID of the feature to use for site security checking. |
@SECURITYFEATURETYPE | tinyint | IN | Input parameter indicating the type of the feature to use for site security checking. |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_PROSPECTSNORECENTSTEPS
(
@CURRENTAPPUSERID uniqueidentifier,
@ORGPOSITIONSSELECTIONID uniqueidentifier = null,
@NUMBEROFDAYS smallint = 90,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null
)
as begin
set nocount on;
declare @ISSYSADMIN bit = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
declare @TODAY datetime;
set @TODAY = dbo.UFN_DATE_GETEARLIESTTIME(getdate());
if @NUMBEROFDAYS = 0
set @NUMBEROFDAYS = datediff(day, dateadd(year, -1, @TODAY), @TODAY);
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
declare @UPPERBOUND datetime;
set @UPPERBOUND = dbo.UFN_DATE_GETLATESTTIME(@CURRENTDATE);
declare @LOWERBOUND datetime;
set @LOWERBOUND = dbo.UFN_DATE_GETEARLIESTTIME(@CURRENTDATE);
if @ORGPOSITIONSSELECTIONID is null
select
PC.ID,
PP.ID,
PC_NF.NAME,
case when PP.ID is null then '' else
dbo.UFN_PROSPECTPLANTYPECODE_GETDESCRIPTION(PP.PROSPECTPLANTYPECODEID) + ' - '
+ dbo.UFN_PROSPECTPLANSTATUSCODE_GETDESCRIPTION(PP.PROSPECTPLANSTATUSCODEID)
end,
LCI.OBJECTIVE,
LCI.ACTUALDATE,
NPI.ID,
NPI.OBJECTIVE,
NPI.EXPECTEDDATE,
PROMGR_NF.NAME,
PRIMGR_NF.NAME
from
dbo.CONSTITUENT PC
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(PC.ID) PC_NF
inner join dbo.PROSPECTDATERANGE PDR on PDR.CONSTITUENTID = PC.ID and
(PDR.DATEFROM <= @UPPERBOUND or PDR.DATEFROM is null) and
(PDR.DATETO >= @LOWERBOUND or PDR.DATETO is null)
left outer join dbo.PROSPECT P on P.ID=PC.ID
left outer join dbo.PROSPECTPLAN PP on PP.PROSPECTID=PC.ID
left outer join dbo.INTERACTION LCI on LCI.ID = dbo.UFN_PROSPECTPLAN_GETLASTSTEP(PP.ID)
left outer join dbo.INTERACTION NPI on NPI.ID = dbo.UFN_PROSPECTPLAN_GETNEXTSTEP(PP.ID)
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(P.PROSPECTMANAGERFUNDRAISERID) PROMGR_NF
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(PP.PRIMARYMANAGERFUNDRAISERID) PRIMGR_NF
left outer join dbo.INTERACTION I on I.PROSPECTPLANID = PP.ID
where
@ISSYSADMIN = 1 or
(
(
select count(*) from dbo.UFN_SITEID_MAPFROM_PROSPECTPLANID(PP.ID) as SITE
where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITE].[SITEID] or (SITEID is null and [SITE].[SITEID] is null)))
) > 0
and
(
select count(*) from dbo.UFN_SITEID_MAPFROM_CONSTITUENTID(PC.ID) as SITE
where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITE].[SITEID] or (SITEID is null and [SITE].[SITEID] is null)))
) > 0
and dbo.UFN_SECURITY_APPUSER_GRANTED_DATALIST_FORCONSTIT(@CURRENTAPPUSERID,
'D570639D-3513-4BC0-A279-173A9D3C9EFA', PC.ID) = 1
)
group by
PC.ID,
PP.ID,
PC_NF.NAME,
case when PP.ID is null then '' else
dbo.UFN_PROSPECTPLANTYPECODE_GETDESCRIPTION(PP.PROSPECTPLANTYPECODEID) + ' - '
+ dbo.UFN_PROSPECTPLANSTATUSCODE_GETDESCRIPTION(PP.PROSPECTPLANSTATUSCODEID)
end,
LCI.OBJECTIVE,
LCI.ACTUALDATE,
NPI.ID,
NPI.OBJECTIVE,
NPI.EXPECTEDDATE,
PROMGR_NF.NAME,
PRIMGR_NF.NAME,
PC.KEYNAME
having
datediff(day,max(I.ACTUALDATE),@TODAY) >= @NUMBEROFDAYS
order by
PC.KEYNAME, PC_NF.NAME
else
begin
declare @IDS as table(ID uniqueidentifier);
insert into @IDS exec USP_ORGANIZATIONHIERARCHY_IDSET_POSITIONHOLDERS @ORGPOSITIONSSELECTIONID, @CURRENTAPPUSERID;
select
PC.ID,
PP.ID,
PC_NF.NAME,
case when PP.ID is null then '' else
dbo.UFN_PROSPECTPLANTYPECODE_GETDESCRIPTION(PP.PROSPECTPLANTYPECODEID) + ' - '
+ dbo.UFN_PROSPECTPLANSTATUSCODE_GETDESCRIPTION(PP.PROSPECTPLANSTATUSCODEID)
end,
LCI.OBJECTIVE,
LCI.ACTUALDATE,
NPI.ID,
NPI.OBJECTIVE,
NPI.EXPECTEDDATE,
PROMGR_NF.NAME,
PRIMGR_NF.NAME
from
dbo.CONSTITUENT PC
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(PC.ID) PC_NF
inner join dbo.PROSPECTDATERANGE PDR on PDR.CONSTITUENTID = PC.ID and
(PDR.DATEFROM <= @UPPERBOUND or PDR.DATEFROM is null) and
(PDR.DATETO >= @LOWERBOUND or PDR.DATETO is null)
left outer join dbo.PROSPECT P on P.ID=PC.ID
left outer join dbo.PROSPECTPLAN PP on PP.PROSPECTID=PC.ID
left outer join dbo.INTERACTION LCI on LCI.ID = dbo.UFN_PROSPECTPLAN_GETLASTSTEP(PP.ID)
left outer join dbo.INTERACTION NPI on NPI.ID = dbo.UFN_PROSPECTPLAN_GETNEXTSTEP(PP.ID)
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(P.PROSPECTMANAGERFUNDRAISERID) PROMGR_NF
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(PP.PRIMARYMANAGERFUNDRAISERID) PRIMGR_NF
left outer join dbo.INTERACTION I on I.PROSPECTPLANID = PP.ID
inner join dbo.ORGANIZATIONPOSITIONHOLDER OPH
on OPH.CONSTITUENTID = PP.PRIMARYMANAGERFUNDRAISERID and @TODAY between OPH.DATEFROM and coalesce(OPH.DATETO, @TODAY)
inner join @IDS as SELECTION on OPH.[ID] = SELECTION.[ID]
where
@ISSYSADMIN = 1 or
(
(
select count(*) from dbo.UFN_SITEID_MAPFROM_PROSPECTPLANID(PP.ID) as SITE
where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITE].[SITEID] or (SITEID is null and [SITE].[SITEID] is null)))
) > 0
and
(
select count(*) from dbo.UFN_SITEID_MAPFROM_CONSTITUENTID(PC.ID) as SITE
where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[SITE].[SITEID] or (SITEID is null and [SITE].[SITEID] is null)))
) > 0
and dbo.UFN_SECURITY_APPUSER_GRANTED_DATALIST_FORCONSTIT(@CURRENTAPPUSERID,
'D570639D-3513-4BC0-A279-173A9D3C9EFA', PC.ID) = 1
)
group by
PC.ID,
PP.ID,
PC_NF.NAME,
case when PP.ID is null then '' else
dbo.UFN_PROSPECTPLANTYPECODE_GETDESCRIPTION(PP.PROSPECTPLANTYPECODEID) + ' - '
+ dbo.UFN_PROSPECTPLANSTATUSCODE_GETDESCRIPTION(PP.PROSPECTPLANSTATUSCODEID)
end,
LCI.OBJECTIVE,
LCI.ACTUALDATE,
NPI.ID,
NPI.OBJECTIVE,
NPI.EXPECTEDDATE,
PROMGR_NF.NAME,
PRIMGR_NF.NAME,
PC.KEYNAME
having
datediff(day,max(I.ACTUALDATE),@TODAY) >= @NUMBEROFDAYS
order by
PC.KEYNAME, PC_NF.NAME
end
end