UFN_OPPORTUNITY_GETSOLICITORS

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@OPPORTUNITYID uniqueidentifier IN
@ONLYSELECTED bit IN

Definition

Copy


CREATE function dbo.UFN_OPPORTUNITY_GETSOLICITORS
(
  @OPPORTUNITYID uniqueidentifier,
  @ONLYSELECTED bit = 0
)
returns table
as
return
  select
    OS.ID,
    OS.PLANFUNDRAISERID,
    NF.NAME as FUNDRAISERNAME,
    OS.FUNDRAISERTYPECODE,
    convert(bit, case when OS.ID is null then 0 else 1 end) as FUNDRAISERSELECTED
  from
  (
    select
      OPPORTUNITYSOLICITOR.ID,
      null as PLANFUNDRAISERID,
      0 as FUNDRAISERTYPECODE,
      PROSPECTPLAN.PRIMARYMANAGERFUNDRAISERID as CONSTITUENTID,
      OPPORTUNITY.ID as OPPORTUNITYID,
      PROSPECTPLAN.PRIMARYMANAGERENDDATE as PLANFUNDRAISERENDDATE
    from
      dbo.PROSPECTPLAN
      inner join dbo.OPPORTUNITY on PROSPECTPLAN.ID = OPPORTUNITY.PROSPECTPLANID
      left join dbo.OPPORTUNITYSOLICITOR on OPPORTUNITYSOLICITOR.OPPORTUNITYID = OPPORTUNITY.ID and OPPORTUNITYSOLICITOR.FUNDRAISERTYPECODE = 0
    where
      PROSPECTPLAN.PRIMARYMANAGERFUNDRAISERID is not null

    union all

    select
      OPPORTUNITYSOLICITOR.ID,
      null as PLANFUNDRAISERID,
      1 as FUNDRAISERTYPECODE,
      PROSPECTPLAN.SECONDARYMANAGERFUNDRAISERID as CONSTITUENTID,
      OPPORTUNITY.ID as OPPORTUNITYID,
      PROSPECTPLAN.SECONDARYMANAGERENDDATE as PLANFUNDRAISERENDDATE
    from
      dbo.PROSPECTPLAN
      inner join dbo.OPPORTUNITY on PROSPECTPLAN.ID = OPPORTUNITY.PROSPECTPLANID
      left join dbo.OPPORTUNITYSOLICITOR on OPPORTUNITYSOLICITOR.OPPORTUNITYID = OPPORTUNITY.ID and OPPORTUNITYSOLICITOR.FUNDRAISERTYPECODE = 1
    where
      PROSPECTPLAN.SECONDARYMANAGERFUNDRAISERID is not null

    union all

    select
      OPPORTUNITYSOLICITOR.ID,
      SECONDARYFUNDRAISER.ID as PLANFUNDRAISERID,
      2 as FUNDRAISERTYPECODE,
      SECONDARYFUNDRAISER.FUNDRAISERID as CONSTITUENTID,
      OPPORTUNITY.ID as OPPORTUNITYID,
      SECONDARYFUNDRAISER.DATETO as PLANFUNDRAISERENDDATE
    from
      dbo.SECONDARYFUNDRAISER
      inner join dbo.PROSPECTPLAN on PROSPECTPLAN.ID = SECONDARYFUNDRAISER.PROSPECTPLANID
      inner join dbo.OPPORTUNITY on PROSPECTPLAN.ID = OPPORTUNITY.PROSPECTPLANID
      left join dbo.OPPORTUNITYSOLICITOR on OPPORTUNITYSOLICITOR.OPPORTUNITYID = OPPORTUNITY.ID and OPPORTUNITYSOLICITOR.FUNDRAISERTYPECODE = 2 and OPPORTUNITYSOLICITOR.SECONDARYSOLICITORID = SECONDARYFUNDRAISER.ID
  ) as OS
  outer apply
    dbo.UFN_CONSTITUENT_DISPLAYNAME(OS.CONSTITUENTID) NF
  where
    OS.OPPORTUNITYID = @OPPORTUNITYID and
    (OS.PLANFUNDRAISERENDDATE is null or OS.PLANFUNDRAISERENDDATE > getdate()) and
    (coalesce(@ONLYSELECTED, 0) = 0 or OS.ID is not null);