V_OPPORTUNITYSOLICITOR
Fields
Field | Field Type | Null | Description |
---|---|---|---|
OPPORTUNITYID | uniqueidentifier | ||
FUNDRAISERID | uniqueidentifier | yes | |
FUNDRAISERTYPECODE | int |
Definition
Copy
CREATE view dbo.V_OPPORTUNITYSOLICITOR
as
with OPPORTUNITYSOLICITOR_CTE as
(
select
OPPORTUNITYSOLICITOR.OPPORTUNITYID as OPPORTUNITYID,
case
OPPORTUNITYSOLICITOR.FUNDRAISERTYPECODE
when 0
then PROSPECTPLAN.PRIMARYMANAGERFUNDRAISERID
when 1
then PROSPECTPLAN.SECONDARYMANAGERFUNDRAISERID
when 2
then SECONDARYFUNDRAISER.FUNDRAISERID
end as FUNDRAISERID,
OPPORTUNITYSOLICITOR.FUNDRAISERTYPECODE as FUNDRAISERTYPECODE
from
dbo.OPPORTUNITYSOLICITOR
inner join
dbo.OPPORTUNITY on OPPORTUNITY.ID = OPPORTUNITYSOLICITOR.OPPORTUNITYID
inner join
dbo.PROSPECTPLAN on PROSPECTPLAN.ID = OPPORTUNITY.PROSPECTPLANID
left join
dbo.SECONDARYFUNDRAISER on SECONDARYFUNDRAISER.ID = OPPORTUNITYSOLICITOR.SECONDARYSOLICITORID
where
(OPPORTUNITYSOLICITOR.FUNDRAISERTYPECODE = 0 and (PROSPECTPLAN.PRIMARYMANAGERENDDATE is null or PROSPECTPLAN.PRIMARYMANAGERENDDATE > getdate())) or
(OPPORTUNITYSOLICITOR.FUNDRAISERTYPECODE = 1 and (PROSPECTPLAN.SECONDARYMANAGERENDDATE is null or PROSPECTPLAN.SECONDARYMANAGERENDDATE > getdate())) or
(OPPORTUNITYSOLICITOR.FUNDRAISERTYPECODE = 2 and (SECONDARYFUNDRAISER.DATETO is null or SECONDARYFUNDRAISER.DATETO > getdate()))
),
OPPORTUNITY_CTE as
(
select
OPPORTUNITY.ID,
PROSPECTPLAN.ID as PROSPECTPLANID
from
dbo.OPPORTUNITY
inner join
dbo.PROSPECTPLAN on PROSPECTPLAN.ID = OPPORTUNITY.PROSPECTPLANID
where
OPPORTUNITY.ID not in (select OPPORTUNITYID from OPPORTUNITYSOLICITOR_CTE)
)
--Primary managers on opportunities with no selected solicitors
select
OPPORTUNITY.ID as OPPORTUNITYID,
PROSPECTPLAN.PRIMARYMANAGERFUNDRAISERID as FUNDRAISERID,
0 as FUNDRAISERTYPECODE
from
dbo.PROSPECTPLAN
inner join
OPPORTUNITY_CTE OPPORTUNITY on OPPORTUNITY.PROSPECTPLANID = PROSPECTPLAN.ID
where
PROSPECTPLAN.PRIMARYMANAGERFUNDRAISERID is not null and
(PROSPECTPLAN.PRIMARYMANAGERENDDATE is null or PROSPECTPLAN.PRIMARYMANAGERENDDATE > getdate())
union all
--Secondary managers on opportunities with no selected solicitors
select
OPPORTUNITY.ID as OPPORTUNITYID,
PROSPECTPLAN.SECONDARYMANAGERFUNDRAISERID as FUNDRAISERID,
1 as FUNDRAISERTYPECODE
from
dbo.PROSPECTPLAN
inner join
OPPORTUNITY_CTE OPPORTUNITY on OPPORTUNITY.PROSPECTPLANID = PROSPECTPLAN.ID
where
PROSPECTPLAN.SECONDARYMANAGERFUNDRAISERID is not null and
(PROSPECTPLAN.SECONDARYMANAGERENDDATE is null or PROSPECTPLAN.SECONDARYMANAGERENDDATE > getdate())
union all
--Secondary fundraisers on opportunities with no selected solicitors
select
OPPORTUNITY.ID as OPPORTUNITYID,
SECONDARYFUNDRAISER.FUNDRAISERID as FUNDRAISERID,
2 as FUNDRAISERTYPECODE
from
dbo.SECONDARYFUNDRAISER
inner join
OPPORTUNITY_CTE OPPORTUNITY on OPPORTUNITY.PROSPECTPLANID = SECONDARYFUNDRAISER.PROSPECTPLANID
where
SECONDARYFUNDRAISER.DATETO is null or SECONDARYFUNDRAISER.DATETO > getdate()
union all
--All selected solicitors
select
OPPORTUNITYID,
FUNDRAISERID,
FUNDRAISERTYPECODE
from
OPPORTUNITYSOLICITOR_CTE