UFN_MKTRECORDSOURCE_GETREQUIREDFIELDSSET

Returns whether or not all required fields are mapped for a given record source.

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@RECORDSOURCEID uniqueidentifier IN
@FIELDSTYPE tinyint IN

Definition

Copy


CREATE function dbo.[UFN_MKTRECORDSOURCE_GETREQUIREDFIELDSSET]
(
  @RECORDSOURCEID uniqueidentifier,
  @FIELDSTYPE tinyint = 0 -- 0 = All, 1 = Person, 2 = Gift, 3 = Appeal, 4 = Membership, 5 = Sponsorship

)
returns bit
as begin

  declare @ISBBEC bit;
  declare @FIELDSMAPPED bit;
  declare @PARENTTABLENAME nvarchar(255);
  declare @PEOPLEFIELDSMAPPED bit;
  declare @GIFTFIELDSMAPPED bit;
  declare @APPEALFIELDSMAPPED bit;
  declare @MEMBERSHIPFIELDSMAPPED bit;
  declare @SPONSORSHIPFIELDSMAPPED bit;
  declare @QUERYVIEWCATALOGID uniqueidentifier;

  set @ISBBEC = (case when dbo.[UFN_INSTALLEDPRODUCTS_PRODUCTIS]('BB9873D7-F1ED-430A-8AB4-F09F47056538') = 0 then 1 else 0 end);

  -- PEOPLE FIELDS --

  set @PEOPLEFIELDSMAPPED = 1;

  -- SEE IF WE ARE DEALING WITH CONSOLIDATED --

  select
    @QUERYVIEWCATALOGID = [ID]
  from dbo.[MKTCONSOLIDATEDQUERYVIEWSPEC]
  where [CONSOLIDATEDQUERYVIEWCATALOGID] = @RECORDSOURCEID;

  if @QUERYVIEWCATALOGID is null set @QUERYVIEWCATALOGID = @RECORDSOURCEID;

  -- GIFT FIELDS --

  select
    @PARENTTABLENAME = [Q].[OBJECTNAME]
  from dbo.[QUERYVIEWCATALOG] as [Q]
  inner join dbo.[MKTGIFTRECORDSOURCE] as [M] on [M].[QUERYVIEWCATALOGID] = [Q].[ID]
  where [M].[ID] = @QUERYVIEWCATALOGID;

  select
    @GIFTFIELDSMAPPED =
      (case when
        coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [APPEALSYSTEMIDFIELD]), '') = '' or
        coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [APPEALIDFIELD]), '') = '' or
        coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [APPEALDESCRIPTIONFIELD]), '') = '' or
        coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [AMOUNTFIELD]), '') = '' or
        coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [DONORIDFIELD]), '') = '' or
        coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [SOURCECODEFIELD]), '') = '' or
        coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [FINDERNUMBERFIELD]), '') = '' or
        coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [MAILINGIDFIELD]), '') = '' then 0 else 1 end)
  from
    dbo.[MKTGIFTRECORDSOURCE]
  where
    [MKTGIFTRECORDSOURCE].[ID] = @QUERYVIEWCATALOGID;

  -- APPEAL FIELDS --

  select
    @PARENTTABLENAME = [Q].[OBJECTNAME]
  from dbo.[QUERYVIEWCATALOG] as [Q]
  inner join dbo.[MKTAPPEALRECORDSOURCE] as [M] on [M].[QUERYVIEWCATALOGID] = [Q].[ID]
  where [M].[ID] = @QUERYVIEWCATALOGID;

  select @APPEALFIELDSMAPPED =
    (case when
      coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [APPEALIDFIELD]), '') = '' or
      coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [DESCRIPTIONFIELD]), '') = '' then 0 else 1 end)
  from
    [dbo].[MKTAPPEALRECORDSOURCE]
  where
    [MKTAPPEALRECORDSOURCE].[ID] = @QUERYVIEWCATALOGID;

  -- MEMBERSHIP FIELDS --

  if @ISBBEC = 1 
    begin
      select
        @PARENTTABLENAME = [Q].[OBJECTNAME]
      from dbo.[QUERYVIEWCATALOG] as [Q]
      inner join dbo.[MKTMEMBERSHIPRECORDSOURCE] as [M] on [M].[QUERYVIEWCATALOGID] = [Q].[ID]
      where [M].[ID] = @QUERYVIEWCATALOGID;

      select @MEMBERSHIPFIELDSMAPPED =
        (case when
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [MEMBERSHIPSYSTEMIDFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [MEMBERIDFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [GIVENBYIDFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [EXPIRATIONDATEFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [ISGIFTFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [JOINDATEFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [LASTRENEWEDONDATEFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [LEVELFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [PROGRAMFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [SENDRENEWALFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [STATUSFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [TERMFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [TYPEFIELD]), '') = '' then 0 else 1 end)
      from
        [dbo].[MKTMEMBERSHIPRECORDSOURCE]
      where
        [MKTMEMBERSHIPRECORDSOURCE].[ID] = @QUERYVIEWCATALOGID;
    end;

   -- SPONSORSHIP FIELDS --

  if @ISBBEC = 1 
    begin
      select
        @PARENTTABLENAME = [Q].[OBJECTNAME]
      from dbo.[QUERYVIEWCATALOG] as [Q]
      inner join dbo.[MKTSPONSORSHIPRECORDSOURCE] as [M] on [M].[QUERYVIEWCATALOGID] = [Q].[ID]
      where [M].[ID] = @QUERYVIEWCATALOGID;

      select @SPONSORSHIPFIELDSMAPPED =
        (case when
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [SPONSORSHIPSYSTEMIDFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [SPONSORIDFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [ACTIONFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [REASONFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [GIFTSPONSORSHIPFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [SPONSORSHIPOPPORTUNITYIDCHILDFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [SPONSORSHIPOPPORTUNITYIDPROJECTFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [SPONSORSHIPCHILDPROGRAMIDFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [SPONSORSHIPPROJECTPROGRAMIDFIELD]), '') = '' or
          coalesce((select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_NAME] = @PARENTTABLENAME and [COLUMN_NAME] = [SPONSORSHIPLOCATIONIDFIELD]), '') = '' then 0 else 1 end)
      from
        [dbo].[MKTSPONSORSHIPRECORDSOURCE]
      where
        [MKTSPONSORSHIPRECORDSOURCE].[ID] = @QUERYVIEWCATALOGID;
    end;  

  -- RETURN VALUE --

  if @FIELDSTYPE = 0
    set @FIELDSMAPPED = (case when @PEOPLEFIELDSMAPPED = 0 or @GIFTFIELDSMAPPED = 0 or @APPEALFIELDSMAPPED = 0 or (@ISBBEC = 1 and @MEMBERSHIPFIELDSMAPPED = 0) then 0 else 1 end)
  else if @FIELDSTYPE = 1
    set @FIELDSMAPPED = @PEOPLEFIELDSMAPPED
  else if @FIELDSTYPE = 2
    set @FIELDSMAPPED = @GIFTFIELDSMAPPED
  else if @FIELDSTYPE = 3
    set @FIELDSMAPPED = @APPEALFIELDSMAPPED
  else if @FIELDSTYPE = 4
    set @FIELDSMAPPED = @MEMBERSHIPFIELDSMAPPED
  else if @FIELDSTYPE = 5
    set @FIELDSMAPPED = @SPONSORSHIPFIELDSMAPPED  

  return @FIELDSMAPPED;
end