USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTMARKETINGLOCATION_2

The save procedure used by the edit dataform template "Marketing Location Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@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
@LOCATIONCOUNTRYID uniqueidentifier IN Country
@LOCATIONSTATEID uniqueidentifier IN State
@LOCATIONPOSTCODE nvarchar(12) IN ZIP
@LOCATIONCITY nvarchar(50) IN City
@LOCATIONADDRESSBLOCK nvarchar(150) IN Address
@VENDORID uniqueidentifier IN Vendor
@IMPRESSIONS int IN Impressions
@IMPRESSIONCALCULATIONMETHODCODE tinyint IN per
@GROUPS xml IN Assign this segment to the groups marked below
@ALLOWCODEUPDATE bit IN Allow code update?
@SITEID uniqueidentifier IN Site

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTMARKETINGLOCATION_2]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @QUERYVIEWCATALOGID uniqueidentifier,
  @NAME nvarchar(100),
  @DESCRIPTION nvarchar(255),
  @SEGMENTCATEGORYCODEID uniqueidentifier,
  @CODE nvarchar(10),
  @CODEVALUEID uniqueidentifier,
  @LOCATIONCOUNTRYID uniqueidentifier,
  @LOCATIONSTATEID uniqueidentifier,
  @LOCATIONPOSTCODE nvarchar(12),
  @LOCATIONCITY nvarchar(50),
  @LOCATIONADDRESSBLOCK nvarchar(150),
  @VENDORID uniqueidentifier,
  @IMPRESSIONS integer,
  @IMPRESSIONCALCULATIONMETHODCODE tinyint,
  @GROUPS xml,
  @ALLOWCODEUPDATE bit,
  @SITEID uniqueidentifier
)
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;

    -- save the segment

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

    select 
      @CURRENTDATE = [DATECHANGED]
    from dbo.[MKTSEGMENT] 
    where [ID] = @ID;

    update dbo.[MKTSEGMENTPASSIVE] set
      [VENDORID] = @VENDORID,
      [LOCATIONCOUNTRYID] = @LOCATIONCOUNTRYID,
      [LOCATIONSTATEID] = @LOCATIONSTATEID,
      [LOCATIONPOSTCODE] = @LOCATIONPOSTCODE,
      [LOCATIONCITY] = @LOCATIONCITY,
      [LOCATIONADDRESSBLOCK] = @LOCATIONADDRESSBLOCK,
      [IMPRESSIONS] = @IMPRESSIONS,
      [IMPRESSIONCALCULATIONMETHODCODE] = @IMPRESSIONCALCULATIONMETHODCODE,
      [CHANGEDBYID] = @CHANGEAGENTID,
      [DATECHANGED] = @CURRENTDATE
    where [ID] = @ID;

    delete from dbo.[MKTGROUPSEGMENTS] where [SEGMENTID] = @ID;

    insert into dbo.[MKTGROUPSEGMENTS]
    (
      [ID],
      [SEGMENTID],
      [SEGMENTGROUPID],
      [SEQUENCE],
      [ADDEDBYID],
      [CHANGEDBYID],
      [DATEADDED],
      [DATECHANGED]
    )
    select
      newid(),
      @ID,
      T.c.value('(SEGMENTGROUPID)[1]', 'uniqueidentifier'),
      T.c.value('(SEQUENCE)[1]', 'int'),
      @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;