USP_DATALIST_FUNDRAISINGMANAGERPROSPECTS
A datalist of prospects being managed by a given fundraiser.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@FUNDRAISERID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@SITEFILTERMODE | tinyint | IN | Sites |
@SITESSELECTED | xml | IN | |
@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. |
@INCLUDEHISTORICALPLANS | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_FUNDRAISINGMANAGERPROSPECTS
(
@FUNDRAISERID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@SITEFILTERMODE tinyint = 0,
@SITESSELECTED xml = null,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null,
@INCLUDEHISTORICALPLANS bit = 0
)
as
set nocount on;
declare @CURRENTDATEEARLIESTTIME datetime;
set @CURRENTDATEEARLIESTTIME= dbo.UFN_DATE_GETEARLIESTTIME(getdate());
select
[PROSPECTPLANSUMMARY].ID,
[PROSPECTPLANSUMMARY].LASTSTEP,
case
when exists (select top 1 ID from dbo.PROSPECTPLAN where PROSPECTID = PROSPECT.ID and ISACTIVE = 1) and
datediff(day,
(
select max(ACTUALDATE)
from dbo.PROSPECTPLAN PP
inner join dbo.INTERACTION I on I.PROSPECTPLANID = PP.ID
where PP.PROSPECTID = PROSPECT.ID
), getdate()) >= 90 then 'RES:warning'
else ''
end NORECENT,
[PROSPECTPLANSUMMARY].NEXTSTEP,
[PROSPECTPLANSUMMARY].NAME,
[PROSPECTPLANSUMMARY].KEYNAME,
[PROSPECTPLANSUMMARY].SITES,
'Prospect Manager' ROLE,
Cast(1 as bit) ISPROSPECTMANAGER,
null PROSPECTTEAMID,
PROSPECT.DATECHANGED,
PROSPECT.ID as [RSSID],
'Prospect manager' ASSIGNMENTTYPE,
case
when exists (select top 1 ID from dbo.PROSPECTPLAN where PROSPECTID = PROSPECT.ID and ISACTIVE = 1) then 1
when PROSPECTPLAN.ID is null then 1
else 0
end as ISACTIVE
from dbo.UFN_PROSPECTPLANSUMMARY() as [PROSPECTPLANSUMMARY]
inner join dbo.PROSPECT on [PROSPECTPLANSUMMARY].ID = PROSPECT.ID
left outer join dbo.PROSPECTPLAN on PROSPECTPLAN.PROSPECTID = PROSPECT.ID
where
PROSPECT.PROSPECTMANAGERFUNDRAISERID = @FUNDRAISERID and
(
PROSPECT.PROSPECTMANAGERENDDATE is null or
PROSPECT.PROSPECTMANAGERENDDATE >= @CURRENTDATEEARLIESTTIME
) and
(
--Only apply security/filtering if there's a plan
PROSPECTPLAN.ID is null or
(
(
select count(*)
from dbo.UFN_SITEID_MAPFROM_PROSPECTPLANID(PROSPECTPLAN.ID) as PROSPECTPLANSITE
where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[PROSPECTPLANSITE].[SITEID] or (SITEID is null and [PROSPECTPLANSITE].[SITEID] is null)))
) > 0
and
(
@SITEFILTERMODE = 0
or PROSPECTPLAN.ID in
(
select PROSPECTPLANSITE.PROSPECTPLANID
from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) SITEFILTER
inner join dbo.PROSPECTPLANSITE on PROSPECTPLANSITE.SITEID = SITEFILTER.SITEID
)
)
and (@INCLUDEHISTORICALPLANS = 1 or PROSPECTPLAN.ISACTIVE = 1)
)
)
union
select
[PROSPECTPLANSUMMARY].ID,
[PROSPECTPLANSUMMARY].LASTSTEP,
case
when exists (select top 1 ID from dbo.PROSPECTPLAN where PROSPECTID = [PROSPECTPLANSUMMARY].ID and ISACTIVE = 1) and
datediff(day,
(
select max(ACTUALDATE)
from dbo.PROSPECTPLAN PP
inner join dbo.INTERACTION I on I.PROSPECTPLANID = PP.ID
where PP.PROSPECTID = [PROSPECTPLANSUMMARY].ID
), getdate()) >= 90 then 'RES:warning'
else ''
end NORECENT,
[PROSPECTPLANSUMMARY].NEXTSTEP,
[PROSPECTPLANSUMMARY].NAME,
[PROSPECTPLANSUMMARY].KEYNAME,
[PROSPECTPLANSUMMARY].SITES,
TEAM.ROLEDESCRIPTION ROLE,
Cast(0 as bit) ISPROSPECTMANAGER,
TEAM.ID PROSPECTTEAMID,
TEAM.DATECHANGED,
TEAM.ID as [RSSID],
'Prospect team' ASSIGNMENTTYPE,
case
when exists (select top 1 ID from dbo.PROSPECTPLAN where PROSPECTID = [PROSPECTPLANSUMMARY].ID and ISACTIVE = 1) then 1
when PROSPECTPLAN.ID is null then 1
else 0
end as ISACTIVE
from dbo.UFN_PROSPECTPLANSUMMARY() as [PROSPECTPLANSUMMARY]
inner join dbo.V_PROSPECTTEAM TEAM on [PROSPECTPLANSUMMARY].ID = TEAM.PROSPECTID
left outer join dbo.PROSPECTPLAN on PROSPECTPLAN.PROSPECTID = TEAM.PROSPECTID
where
TEAM.MEMBERID = @FUNDRAISERID and
(TEAM.DATETO is null OR TEAM.DATETO >= GETDATE())
and
(
--Only apply security/filtering if there's a plan
PROSPECTPLAN.ID is null or
(
(
select count(*)
from dbo.UFN_SITEID_MAPFROM_PROSPECTPLANID(PROSPECTPLAN.ID) as PROSPECTPLANSITE
where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[PROSPECTPLANSITE].[SITEID] or (SITEID is null and [PROSPECTPLANSITE].[SITEID] is null)))
) > 0
and
(
@SITEFILTERMODE = 0
or PROSPECTPLAN.ID in
(
select PROSPECTPLANSITE.PROSPECTPLANID
from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) SITEFILTER
inner join dbo.PROSPECTPLANSITE on PROSPECTPLANSITE.SITEID = SITEFILTER.SITEID
)
)
and (@INCLUDEHISTORICALPLANS = 1 or PROSPECTPLAN.ISACTIVE = 1)
)
)
order by KEYNAME;