USP_DATAFORMTEMPLATE_VIEW_APPEALPROFILEREPORT_SECTIONSHAVEDATA

The load procedure used by the view dataform template "Appeal Profile Sections Have Data"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@HASBENEFITS bit INOUT Has benefits
@HASDESIGNATIONS bit INOUT Has designations
@HASGIFTHISTORY bit INOUT Has gift history
@HASMAILINGS bit INOUT Has mailings
@HASSOLICITORS bit INOUT Has solicitors
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_APPEALPROFILEREPORT_SECTIONSHAVEDATA
(
  @ID uniqueidentifier,
  @HASBENEFITS bit = null output,
  @HASDESIGNATIONS bit = null output,
  @HASGIFTHISTORY bit = null output,
  @HASMAILINGS bit = null output,
  @HASSOLICITORS bit = null output,
  @DATALOADED bit =  0 output
)
as
  set nocount on;

  if exists (
    select 
      APPEALBENEFITDETAIL.ID
    from dbo.APPEALBENEFIT
    inner join dbo.APPEALBENEFITDETAIL
    on APPEALBENEFIT.ID = APPEALBENEFITDETAIL.APPEALBENEFITID
    inner join dbo.BENEFIT
    on APPEALBENEFITDETAIL.BENEFITID = BENEFIT.ID
    where APPEALBENEFIT.APPEALID = @ID)
  begin
    select @HASBENEFITS = 1;
  end

  if exists (
    select
      DESIGNATION.ID
    from dbo.DESIGNATION
    inner join dbo.APPEALDESIGNATION
    on DESIGNATION.ID = APPEALDESIGNATION.DESIGNATIONID
    where APPEALID = @ID)
  begin
    select @HASDESIGNATIONS = 1;
  end

  if exists (
    select
      REVENUE.ID
    from dbo.REVENUE
    inner join dbo.CONSTITUENT
    on REVENUE.CONSTITUENTID = CONSTITUENT.ID
    inner join dbo.REVENUESPLIT
    on REVENUE.ID = REVENUESPLIT.REVENUEID
    inner join dbo.DESIGNATION
    on REVENUESPLIT.DESIGNATIONID = DESIGNATION.ID
    where 
    (REVENUE.TRANSACTIONTYPECODE = 1 or --Pledge
    (REVENUE.TRANSACTIONTYPECODE = 0 and REVENUESPLIT.APPLICATIONCODE in (0,1,3))) and --Payment (Gift or Recurring gift payment)
    REVENUE.APPEALID = @ID)
  begin
    select @HASGIFTHISTORY = 1;
  end

  if exists (
    select *
    from dbo.[MKTSEGMENTATIONACTIVATE]
    inner join dbo.[MKTSEGMENTATION] on [MKTSEGMENTATIONACTIVATE].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
    where [MKTSEGMENTATIONACTIVATE].[APPEALSYSTEMID] = cast(@ID as nvarchar(36))
    and [MKTSEGMENTATIONACTIVATE].[RECORDSOURCEID] = 'DFB4B8C1-5E9A-4C14-ACE3-01C096B53BA0')
  begin
    select @HASMAILINGS = 1;
  end

  if exists (
    select
      TEAMFUNDRAISINGTEAM.ID
    from
    dbo.TEAMFUNDRAISINGTEAM
    where TEAMFUNDRAISINGTEAM.APPEALID = @ID

    union all

    select 
      TEAMFUNDRAISER.ID
    from 
    dbo.TEAMFUNDRAISER
    inner join dbo.CONSTITUENT
    on TEAMFUNDRAISER.CONSTITUENTID = CONSTITUENT.ID
    left join TEAMFUNDRAISINGTEAMMEMBER
    on TEAMFUNDRAISER.ID = TEAMFUNDRAISINGTEAMMEMBER.TEAMFUNDRAISERID
    left join TEAMFUNDRAISINGTEAMCAPTAIN
    on TEAMFUNDRAISINGTEAMMEMBER.TEAMFUNDRAISINGTEAMID = TEAMFUNDRAISINGTEAMCAPTAIN.TEAMFUNDRAISINGTEAMID
    and CONSTITUENT.ID = TEAMFUNDRAISINGTEAMCAPTAIN.CONSTITUENTID
    where TEAMFUNDRAISER.APPEALID = @ID
    -- Exclude captains from this section since they will be returned below.
    and TEAMFUNDRAISINGTEAMCAPTAIN.ID is null

    union all

    select 
      TEAMFUNDRAISINGTEAMCAPTAIN.ID
    from 
    dbo.TEAMFUNDRAISINGTEAMCAPTAIN
    inner join dbo.CONSTITUENT
    on TEAMFUNDRAISINGTEAMCAPTAIN.CONSTITUENTID = CONSTITUENT.ID
    -- Include for APPEALID
    inner join dbo.TEAMFUNDRAISINGTEAM
    on TEAMFUNDRAISINGTEAMCAPTAIN.TEAMFUNDRAISINGTEAMID = TEAMFUNDRAISINGTEAM.ID
    -- Include to get goal
    left join dbo.TEAMFUNDRAISER
    on TEAMFUNDRAISER.CONSTITUENTID = CONSTITUENT.ID
    and TEAMFUNDRAISER.APPEALID = TEAMFUNDRAISINGTEAM.APPEALID
    where TEAMFUNDRAISINGTEAM.APPEALID = @ID)
  begin
    select @HASSOLICITORS = 1;
  end

  select @DATALOADED = 1;

  return 0;