USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTGENERATE_PRELOAD

The load procedure used by the edit dataform template "Segment Generate Add Form"

Parameters

Parameter Parameter Type Mode Description
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@QUERYVIEWCATALOGID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@RECORDTYPEID uniqueidentifier INOUT Record type
@SMARTQUERIESEXIST bit INOUT Smart queries exist
@CODEISREQUIRED bit INOUT Code is required
@SEGMENTPARTDEFINITIONID uniqueidentifier INOUT Segment part definition ID
@SEGMENTTYPECODE tinyint INOUT Segment type code
@RECORDSOURCEID uniqueidentifier INOUT Record source ID
@AUTOINCREMENTCODE bit INOUT Auto increment
@SITEID uniqueidentifier INOUT Site
@SITEREQUIRED bit INOUT Site required?
@RECORDTYPE nvarchar(50) INOUT
@SELECTIONTYPEMASK int INOUT

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTGENERATE_PRELOAD]
(
  @CURRENTAPPUSERID uniqueidentifier,
  @QUERYVIEWCATALOGID uniqueidentifier,
  @RECORDTYPEID uniqueidentifier = null output,
  @SMARTQUERIESEXIST bit = null output,
  @CODEISREQUIRED bit = null output,
  @SEGMENTPARTDEFINITIONID uniqueidentifier = null output,
  @SEGMENTTYPECODE tinyint = null output,
  @RECORDSOURCEID uniqueidentifier = null output,
  @AUTOINCREMENTCODE bit = null output,
  @SITEID uniqueidentifier = null output,
  @SITEREQUIRED bit = null output,
  @RECORDTYPE nvarchar(50) = null output,
  @SELECTIONTYPEMASK int = null output
)
as
  set nocount on;

  set @SMARTQUERIESEXIST = dbo.[UFN_MKTSELECTION_SMARTQUERIESEXIST](1);

  select
    @RECORDTYPEID = [QUERYVIEWCATALOG].[RECORDTYPEID],
    @RECORDTYPE = [RECORDTYPE].[NAME]
  from dbo.[QUERYVIEWCATALOG]
  inner join dbo.[RECORDTYPE] on [RECORDTYPE].[ID] = [QUERYVIEWCATALOG].[RECORDTYPEID]
  where [QUERYVIEWCATALOG].[ID] = @QUERYVIEWCATALOGID;

  set @SITEID = dbo.[UFN_APPUSER_DEFAULTSITEFORUSER](@CURRENTAPPUSERID);
  set @SITEREQUIRED = dbo.[UFN_SITEREQUIREDFORUSERONFEATURE](@CURRENTAPPUSERID, 'EEBBFE86-27FB-4DA7-88D8-15508F6FC16C', 1);

  set @CODEISREQUIRED = (case when exists(
                            select top 1 1
                            from dbo.[MKTSEGMENTLIST]
                            inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[CURRENTSEGMENTLISTID] = [MKTSEGMENTLIST].[ID]
                            where [MKTSEGMENTLIST].[QUERYVIEWCATALOGID] = @QUERYVIEWCATALOGID)
                         then 1 else 0 end);

  --Get the segment part definition ID for the segment source code part...

  -- See whether or not the segment source code type is set to auto-increment.

  select 
    @SEGMENTPARTDEFINITIONID = [ID],
    @AUTOINCREMENTCODE = [AUTOINCREMENTVALUE]
  from dbo.[MKTSOURCECODEPARTDEFINITION] where [ITEMTYPECODE] = 1;

  /***********************************************************/
  /* Figure out what type of segments we are dealing with... */
  /***********************************************************/
  --Check if we have a record source...

  select top 1
    @RECORDSOURCEID = [MKTRECORDSOURCE].[ID],
    @SEGMENTTYPECODE = 1,
    @SELECTIONTYPEMASK = 1
  from dbo.[MKTRECORDSOURCE]
  inner join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[ID] = [MKTRECORDSOURCE].[ID]
  left join dbo.[RECORDTYPECOMPATIBILITYMAP] on [RECORDTYPECOMPATIBILITYMAP].[RECORDTYPE1ID] = [QUERYVIEWCATALOG].[RECORDTYPEID]
  where ([QUERYVIEWCATALOG].[RECORDTYPEID] = @RECORDTYPEID or [RECORDTYPECOMPATIBILITYMAP].[RECORDTYPE2ID] = @RECORDTYPEID)
  and dbo.[UFN_MKTRECORDSOURCE_VALIDFORPRODUCT]([MKTRECORDSOURCE].[ID]) = 1;

  if @RECORDSOURCEID is null
    --Check if we have a list...

    select
      @RECORDSOURCEID = [MKTSEGMENT].[QUERYVIEWCATALOGID],
      @SEGMENTTYPECODE = 2,
      @SELECTIONTYPEMASK = 1
    from dbo.[MKTSEGMENTLIST]
    inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[CURRENTSEGMENTLISTID] = [MKTSEGMENTLIST].[ID]
    where [MKTSEGMENTLIST].[QUERYVIEWCATALOGID] = @QUERYVIEWCATALOGID;

  if @RECORDSOURCEID is null
    --Check if we have a gift record source...

    select top 1
      @RECORDSOURCEID = [MKTGIFTRECORDSOURCE].[ID],
      @SEGMENTTYPECODE = 3,
      @SELECTIONTYPEMASK = 2
    from dbo.[MKTGIFTRECORDSOURCE]
    inner join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[ID] = [MKTGIFTRECORDSOURCE].[QUERYVIEWCATALOGID]
    left join dbo.[RECORDTYPECOMPATIBILITYMAP] on [RECORDTYPECOMPATIBILITYMAP].[RECORDTYPE1ID] = [QUERYVIEWCATALOG].[RECORDTYPEID]
    where ([QUERYVIEWCATALOG].[RECORDTYPEID] = @RECORDTYPEID or [RECORDTYPECOMPATIBILITYMAP].[RECORDTYPE2ID] = @RECORDTYPEID)
    and dbo.[UFN_MKTRECORDSOURCE_VALIDFORPRODUCT]([MKTGIFTRECORDSOURCE].[ID]) = 1;

  if @RECORDSOURCEID is null
    --Check if we have a membership record source...

    select top 1
      @RECORDSOURCEID = [MKTMEMBERSHIPRECORDSOURCE].[ID],
      @SEGMENTTYPECODE = 4,
      @SELECTIONTYPEMASK = 4
    from dbo.[MKTMEMBERSHIPRECORDSOURCE]
    inner join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[ID] = [MKTMEMBERSHIPRECORDSOURCE].[QUERYVIEWCATALOGID]
    left join dbo.[RECORDTYPECOMPATIBILITYMAP] on [RECORDTYPECOMPATIBILITYMAP].[RECORDTYPE1ID] = [QUERYVIEWCATALOG].[RECORDTYPEID]
    where ([QUERYVIEWCATALOG].[RECORDTYPEID] = @RECORDTYPEID or [RECORDTYPECOMPATIBILITYMAP].[RECORDTYPE2ID] = @RECORDTYPEID)
    and dbo.[UFN_MKTRECORDSOURCE_VALIDFORPRODUCT]([MKTMEMBERSHIPRECORDSOURCE].[ID]) = 1;

  if @RECORDSOURCEID is null
    --Check if we have a sponsorship record source...

    select top 1
      @RECORDSOURCEID = [MKTSPONSORSHIPRECORDSOURCE].[ID],
      @SEGMENTTYPECODE = 5,
      @SELECTIONTYPEMASK = 8
    from dbo.[MKTSPONSORSHIPRECORDSOURCE]
    inner join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[ID] = [MKTSPONSORSHIPRECORDSOURCE].[QUERYVIEWCATALOGID]
    left join dbo.[RECORDTYPECOMPATIBILITYMAP] on [RECORDTYPECOMPATIBILITYMAP].[RECORDTYPE1ID] = [QUERYVIEWCATALOG].[RECORDTYPEID]
    where ([QUERYVIEWCATALOG].[RECORDTYPEID] = @RECORDTYPEID or [RECORDTYPECOMPATIBILITYMAP].[RECORDTYPE2ID] = @RECORDTYPEID)
    and dbo.[UFN_MKTRECORDSOURCE_VALIDFORPRODUCT]([MKTSPONSORSHIPRECORDSOURCE].[ID]) = 1;

  if @RECORDSOURCEID is null
    --Check if we have a consolidated list...

    select
      @RECORDSOURCEID = [ID],
      @SEGMENTTYPECODE = 1,
      @SELECTIONTYPEMASK = 1
    from dbo.[MKTCONSOLIDATEDQUERYVIEWSPEC]
    where [CONSOLIDATEDQUERYVIEWCATALOGID] = @QUERYVIEWCATALOGID
    and dbo.[UFN_MKTRECORDSOURCE_VALIDFORPRODUCT]([ID]) = 1;

  return 0;