USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTATION_2

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

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.
@CODE nvarchar(10) IN Code
@NAME nvarchar(100) IN Name
@DESCRIPTION nvarchar(255) IN Description
@SOURCECODEID uniqueidentifier IN Source code
@ITEMLIST xml IN Items
@CHANNELCODE tinyint IN Channel
@MAILDATE datetime IN Mail date
@HOUSEHOLDINGTYPECODE tinyint IN Householding

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTATION_2]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @CODE nvarchar(10),
  @NAME nvarchar(100),
  @DESCRIPTION nvarchar(255),
  @SOURCECODEID uniqueidentifier,
  @ITEMLIST xml,
  @CHANNELCODE tinyint,
  @MAILDATE datetime,
  @HOUSEHOLDINGTYPECODE tinyint
)
as
  set nocount on;

  declare @CURRENTDATE datetime;
  declare @OLDHOUSEHOLDINGTYPECODE tinyint;

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

    set @CURRENTDATE = getdate();

    select
      @OLDHOUSEHOLDINGTYPECODE = [HOUSEHOLDINGTYPECODE]
    from dbo.[MKTSEGMENTATION]
    where [ID] = @ID;

    /* Update the mailing fields */
    update dbo.[MKTSEGMENTATION] set
      [CODE] = @CODE,
      [NAME] = @NAME,
      [DESCRIPTION] = @DESCRIPTION,
      [SOURCECODEID] = @SOURCECODEID,
      [MAILDATE] = @MAILDATE,
      [HOUSEHOLDINGTYPECODE] = @HOUSEHOLDINGTYPECODE,
      [CHANGEDBYID] = @CHANGEAGENTID,
      [DATECHANGED] = @CURRENTDATE
    where [ID] = @ID;

    /* Save the sourcecode parts */
    exec dbo.[USP_MKTSOURCECODEPART_GETITEMLIST_UPDATEFROMXML] @ID, @ITEMLIST, @CHANGEAGENTID, @CURRENTDATE;

    /* If they changed the householding options, then clear the cache tables so the cache will get rebuilt the next time they want record counts. */
    if @HOUSEHOLDINGTYPECODE <> @OLDHOUSEHOLDINGTYPECODE
      exec dbo.[USP_MKTSEGMENTATION_CLEARCACHE] @ID, 1;

    --update the name on the plan item the mailings is from

    update 
      dbo.[MKTMARKETINGPLANITEM]
    set 
      [MKTMARKETINGPLANITEM].[NAME] = @NAME,
      [MKTMARKETINGPLANITEM].[CHANGEDBYID] = @CHANGEAGENTID,
      [MKTMARKETINGPLANITEM].[DATECHANGED] = @CURRENTDATE
    from 
      [MKTSEGMENTATION]
    where
      [MKTSEGMENTATION].[ID] = @ID and
      [MKTMARKETINGPLANITEM].[ID] = [MKTSEGMENTATION].[MARKETINGPLANITEMID];

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

  return 0;