USP_DATAFORMTEMPLATE_EDIT_MKTMEMBERSHIPMAILINGTEMPLATERULE

The save procedure used by the edit dataform template "Membership Renewal Effort Template Rule 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.
@SEGMENTID uniqueidentifier IN Segment
@CODE nvarchar(10) IN Code
@TESTSEGMENTCODE nvarchar(10) IN Test segment
@PACKAGEID uniqueidentifier IN Package
@PACKAGECODE nvarchar(10) IN Package code
@RESPONSERATE decimal(5, 2) IN Response rate
@GIFTAMOUNT money IN Gift amount
@ASKLADDERID uniqueidentifier IN Ask ladder

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTMEMBERSHIPMAILINGTEMPLATERULE]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @SEGMENTID uniqueidentifier,
  @CODE nvarchar(10),
  @TESTSEGMENTCODE nvarchar(10),
  @PACKAGEID uniqueidentifier,
  @PACKAGECODE nvarchar(10),
  @RESPONSERATE decimal(5,2),
  @GIFTAMOUNT money,
  @ASKLADDERID uniqueidentifier
)
as
  set nocount on;

  declare @MEMBERSHIPMAILINGTEMPLATEID uniqueidentifier;
  declare @OLDSEGMENTID uniqueidentifier;
  declare @OLDCODE nvarchar(10);
  declare @OLDPACKAGEID uniqueidentifier;
  declare @SEQUENCE int;
  declare @CURRENTDATE datetime;

  begin try
    select
      @MEMBERSHIPMAILINGTEMPLATEID = [MEMBERSHIPMAILINGTEMPLATEID]
    from dbo.[MKTMEMBERSHIPMAILINGTEMPLATERULE]
    where [MKTMEMBERSHIPMAILINGTEMPLATERULE].[ID] = @ID;

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

    set @CURRENTDATE = getdate();

    /* save the segment */
    update 
      dbo.[MKTMEMBERSHIPMAILINGTEMPLATERULE] 
    set 
      [SEGMENTID] = @SEGMENTID,
      [CODE] = @CODE,
      [TESTSEGMENTCODE] = @TESTSEGMENTCODE,
      [PACKAGEID] = @PACKAGEID,
      [RESPONSERATE] = @RESPONSERATE,
      [GIFTAMOUNT] = @GIFTAMOUNT,
      [ASKLADDERID] = @ASKLADDERID,
      [CHANGEDBYID] = @CHANGEAGENTID,
      [DATECHANGED] = @CURRENTDATE
    where [ID] = @ID;

    /* update the package with the selected code */
    select
      @OLDCODE = coalesce([CODE], '')
    from 
      dbo.[MKTPACKAGE]
    where 
      [ID] = @PACKAGEID;

    if @OLDCODE <> @PACKAGECODE
      update 
        dbo.[MKTPACKAGE] 
      set
        [CODE] = @PACKAGECODE,
        [CHANGEDBYID] = @CHANGEAGENTID,
        [DATECHANGED] = @CURRENTDATE
      where 
        [ID] = @PACKAGEID;

    /* update the segment with the selected code */
    exec dbo.[USP_MKTSEGMENT_UPDATECODE] @SEGMENTID, @CODE, @CHANGEAGENTID;
  end try

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

  return 0;