USP_REPORT_OPPORTUNITYPIPELINE
Returns the number of opportunities in each status by fundraiser.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@FUNDRAISERQUERYID | uniqueidentifier | IN | |
@ASKSTARTDATE | datetime | IN | |
@ASKENDDATE | datetime | IN | |
@DESIGNATIONQUERYID | uniqueidentifier | IN | |
@PROSPECTSTATUS | uniqueidentifier | IN | |
@PLANSTAGE | uniqueidentifier | IN | |
@PLANTYPE | uniqueidentifier | IN | |
@INCLUDEUNQUALIFIED | tinyint | IN | |
@INCLUDEQUALIFIED | tinyint | IN | |
@INCLUDERESPONSEPENDING | tinyint | IN | |
@INCLUDEACCEPTED | tinyint | IN | |
@INCLUDEREJECTED | tinyint | IN | |
@INCLUDECANCELED | tinyint | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_REPORT_OPPORTUNITYPIPELINE
(
@FUNDRAISERQUERYID uniqueidentifier = null,
@ASKSTARTDATE datetime = null,
@ASKENDDATE datetime = null,
@DESIGNATIONQUERYID uniqueidentifier = null,
@PROSPECTSTATUS uniqueidentifier = null,
@PLANSTAGE uniqueidentifier = null,
@PLANTYPE uniqueidentifier = null,
@INCLUDEUNQUALIFIED tinyint = null,
@INCLUDEQUALIFIED tinyint = null,
@INCLUDERESPONSEPENDING tinyint = null,
@INCLUDEACCEPTED tinyint = null,
@INCLUDEREJECTED tinyint = null,
@INCLUDECANCELED tinyint = null,
@CURRENTAPPUSERID uniqueidentifier = null
)
as
set nocount on;
declare @ISADMIN bit;
declare @APPUSER_IN_NONRACROLE bit;
declare @APPUSER_IN_NOSECGROUPROLE bit;
declare @APPUSER_IN_NONSITEROLE bit;
declare @APPUSER_IN_NOSITEROLE bit;
set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
set @APPUSER_IN_NONRACROLE = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID);
set @APPUSER_IN_NOSECGROUPROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID);
set @APPUSER_IN_NONSITEROLE = dbo.UFN_SECURITY_APPUSER_IN_NONSITEROLE(@CURRENTAPPUSERID);
set @APPUSER_IN_NOSITEROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SITE_ROLE(@CURRENTAPPUSERID);
begin try
select
CONSTITUENT.ID,
CONSTITUENT.KEYNAME,
CONSTITUENT.FIRSTNAME,
CONSTITUENT_NF.NAME,
OPPORTUNITY.STATUSCODE,
OPPORTUNITY.STATUS,
count(distinct OPPORTUNITY.ID) as STATUSCOUNT
from dbo.OPPORTUNITY
inner join dbo.PROSPECTPLAN
on OPPORTUNITY.PROSPECTPLANID = PROSPECTPLAN.ID
inner join dbo.PROSPECT
on PROSPECTPLAN.PROSPECTID = PROSPECT.ID
left join dbo.PROSPECTPLANSTATUSCODE
on PROSPECTPLAN.PROSPECTPLANSTATUSCODEID = PROSPECTPLANSTATUSCODE.ID
inner join dbo.V_OPPORTUNITYSOLICITOR OS on OS.OPPORTUNITYID = OPPORTUNITY.ID
inner join dbo.CONSTITUENT
on OS.FUNDRAISERID = CONSTITUENT.ID
left join dbo.UFN_IDSETREADER_GETRESULTS_GUID(@FUNDRAISERQUERYID) SELECTION
on OS.FUNDRAISERID = SELECTION.ID
left join dbo.PROSPECTPLANSITE
on PROSPECTPLAN.ID = PROSPECTPLANSITE.PROSPECTPLANID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTITUENT.ID) CONSTITUENT_NF
where
(@FUNDRAISERQUERYID is null or OS.FUNDRAISERID = SELECTION.ID) and
(
(OPPORTUNITY.ASKDATE is not null and OPPORTUNITY.ASKDATE between @ASKSTARTDATE and @ASKENDDATE) or
(OPPORTUNITY.ASKDATE is null and OPPORTUNITY.EXPECTEDASKDATE between @ASKSTARTDATE and @ASKENDDATE)
) and
(
@DESIGNATIONQUERYID is null or
exists
(
select
OPPORTUNITYDESIGNATION.ID
from dbo.OPPORTUNITYDESIGNATION
inner join dbo.UFN_IDSETREADER_GETRESULTS_GUID(@DESIGNATIONQUERYID) DESIGNATIONSELECTION
on OPPORTUNITYDESIGNATION.DESIGNATIONID = DESIGNATIONSELECTION.ID
where
OPPORTUNITYID = OPPORTUNITY.ID
)
) and
(@PROSPECTSTATUS is null or PROSPECT.PROSPECTSTATUSCODEID = @PROSPECTSTATUS) and
(@PLANSTAGE is null or PROSPECTPLAN.PROSPECTPLANSTATUSCODEID = @PLANSTAGE) and
(@PLANTYPE is null or PROSPECTPLAN.PROSPECTPLANTYPECODEID = @PLANTYPE) and
(@INCLUDEUNQUALIFIED = 1 or OPPORTUNITY.STATUSCODE <> 0) and
(@INCLUDEQUALIFIED = 1 or OPPORTUNITY.STATUSCODE <> 1) and
(@INCLUDERESPONSEPENDING = 1 or OPPORTUNITY.STATUSCODE <> 2) and
(@INCLUDEACCEPTED = 1 or OPPORTUNITY.STATUSCODE <> 3) and
(@INCLUDEREJECTED = 1 or OPPORTUNITY.STATUSCODE <> 4) and
(@INCLUDECANCELED = 1 or OPPORTUNITY.STATUSCODE <> 5) and
(dbo.UFN_SITEALLOWEDFORUSER(@CURRENTAPPUSERID, PROSPECTPLANSITE.SITEID) = 1) and
(@ISADMIN = 1 or
(
(@APPUSER_IN_NONRACROLE = 1 or
dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, CONSTITUENT.ID, @APPUSER_IN_NOSECGROUPROLE) = 1)
and
(@APPUSER_IN_NONSITEROLE = 1 or
dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT_BYSITE(@CURRENTAPPUSERID, CONSTITUENT.ID, @APPUSER_IN_NOSITEROLE) = 1)
)
)
group by
CONSTITUENT.ID,
CONSTITUENT.KEYNAME,
CONSTITUENT.FIRSTNAME,
CONSTITUENT_NF.NAME,
OPPORTUNITY.STATUSCODE,
OPPORTUNITY.STATUS
order by
CONSTITUENT.KEYNAME,
CONSTITUENT.FIRSTNAME,
OPPORTUNITY.STATUSCODE
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;