USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTTIMESLOT

The save procedure used by the add dataform template "Time Slot Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@QUERYVIEWCATALOGID uniqueidentifier IN Record source
@NAME nvarchar(100) IN Name
@DESCRIPTION nvarchar(255) IN Description
@SEGMENTCATEGORYCODEID uniqueidentifier IN Category
@CODE nvarchar(10) IN Code
@CODEVALUEID uniqueidentifier IN Source code part definition value
@PARENTMEDIAOUTLETSEGMENTID uniqueidentifier IN Media outlet
@SCHEDULESTARTTIME time IN Start time
@SCHEDULEENDTIME time IN End time
@SCHEDULEDURATIONHOURS int IN Duration (hours)
@SCHEDULEDURATIONMINUTES int IN Duration (minutes)
@SCHEDULEDURATIONSECONDS int IN Duration (seconds)
@IMPRESSIONS int IN Impressions
@IMPRESSIONCALCULATIONMETHODCODE tinyint IN per
@GROUPS xml IN Assign this segment to the groups marked below
@SITEID uniqueidentifier IN Site

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENTTIMESLOT]
(
  @ID uniqueidentifier = null output,
  @CHANGEAGENTID uniqueidentifier = null,    
  @QUERYVIEWCATALOGID uniqueidentifier = null,
  @NAME nvarchar(100),
  @DESCRIPTION nvarchar(255) = '',
  @SEGMENTCATEGORYCODEID uniqueidentifier = null,
  @CODE nvarchar(10) = '',
  @CODEVALUEID uniqueidentifier = null,
  @PARENTMEDIAOUTLETSEGMENTID uniqueidentifier = null,
  @SCHEDULESTARTTIME time(0) = null,
  @SCHEDULEENDTIME time(0) = null,
  @SCHEDULEDURATIONHOURS integer = 0,
  @SCHEDULEDURATIONMINUTES integer = 0,
  @SCHEDULEDURATIONSECONDS integer = 0,
  @IMPRESSIONS integer = 0,
  @IMPRESSIONCALCULATIONMETHODCODE tinyint = 0,
  @GROUPS xml = null,
  @SITEID uniqueidentifier = null
)
as
  set nocount on;

  declare @CURRENTDATE datetime;

  begin try
    if @ID is null set @ID = newid();

    if @CHANGEAGENTID is null  
      exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;

    set @CURRENTDATE = getdate();

    -- save the segment (segment type code 7 = time slot)

    exec dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSEGMENT]
      @ID,
      @CHANGEAGENTID,
      @QUERYVIEWCATALOGID,
      @NAME,
      @DESCRIPTION,
      @CODE,
      null,
      null,
      7,
      @SEGMENTCATEGORYCODEID,
      @CODEVALUEID,
      @SITEID;

    insert into dbo.[MKTSEGMENTPASSIVE]
    (
      [ID],
      [PARENTMEDIAOUTLETSEGMENTID],
      [SCHEDULESTARTTIME],
      [SCHEDULEENDTIME],
      [SCHEDULEDURATION],
      [IMPRESSIONS],
      [IMPRESSIONCALCULATIONMETHODCODE],
      [ADDEDBYID],
      [CHANGEDBYID],
      [DATEADDED],
      [DATECHANGED]
    )
    values
    (
      @ID,
      @PARENTMEDIAOUTLETSEGMENTID,
      @SCHEDULESTARTTIME,
      @SCHEDULEENDTIME,
      (@SCHEDULEDURATIONHOURS * 3600) + (@SCHEDULEDURATIONMINUTES * 60) + @SCHEDULEDURATIONSECONDS,
      @IMPRESSIONS,
      @IMPRESSIONCALCULATIONMETHODCODE,
      @CHANGEAGENTID,
      @CHANGEAGENTID,
      @CURRENTDATE,
      @CURRENTDATE
    );

    insert into dbo.[MKTGROUPSEGMENTS]
    (
      [ID],
      [SEGMENTID],
      [SEGMENTGROUPID],
      [SEQUENCE],
      [ADDEDBYID],
      [CHANGEDBYID],
      [DATEADDED],
      [DATECHANGED]
    )
    select
      newid(),
      @ID,
      T.c.value('(SEGMENTGROUPID)[1]', 'uniqueidentifier'),
      (select isnull(max([SEQUENCE]) + 1, 0) from dbo.[MKTGROUPSEGMENTS] where [SEGMENTGROUPID] = T.c.value('(SEGMENTGROUPID)[1]', 'uniqueidentifier')),
      @CHANGEAGENTID,
      @CHANGEAGENTID,
      @CURRENTDATE,
      @CURRENTDATE
    from @GROUPS.nodes('/GROUPS/ITEM') T(c)
    where T.c.value('(SEGMENTGROUPSELECTED)[1]', 'bit') = 1;
  end try

  begin catch
    exec dbo.[USP_RAISE_ERROR];
    return 1;
  end catch

  return 0;