USP_MKTMEMBERSHIPMAILINGTEMPLATE_DELETE

Executes the "Membership Renewal Effort Template: Delete" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the ID of the record being deleted.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the delete.

Definition

Copy


CREATE procedure dbo.[USP_MKTMEMBERSHIPMAILINGTEMPLATE_DELETE]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier
)
as
  set nocount on;

  declare @PARAMETERSETID uniqueidentifier;

  begin try

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

    declare @CURRENTDATE datetime;
    set @CURRENTDATE = GetDate();

    update dbo.MKTMEMBERSHIPRENEWALEFFORTMAILINGPROCESS
        set MEMBERSHIPMAILINGPROCESSSTATUSID = null,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CURRENTDATE
    from dbo.MKTMEMBERSHIPRENEWALEFFORTMAILINGPROCESS RENEWALPROCESS
        inner join dbo.MKTMEMBERSHIPMAILINGPROCESSSTATUS 
            on MKTMEMBERSHIPMAILINGPROCESSSTATUS.ID = RENEWALPROCESS.MEMBERSHIPMAILINGPROCESSSTATUSID
        inner join dbo.MKTMEMBERSHIPMAILINGPROCESS 
            on MKTMEMBERSHIPMAILINGPROCESS.ID = MKTMEMBERSHIPMAILINGPROCESSSTATUS.PARAMETERSETID 
    where MKTMEMBERSHIPMAILINGPROCESS.MEMBERSHIPMAILINGTEMPLATEID = @ID

  -- Prevent template deletion from cascading to the sole membership renewal effort process for a membership program.

  declare @REPLACEMENTMAILINGTEMPLATEID uniqueidentifier = (
    select top 1 REPLACEMENTTEMPLATEAPPEAL.MEMBERSHIPMAILINGTEMPLATEID
    from dbo.MKTMEMBERSHIPMAILINGTEMPLATEAPPEAL ORIGINALTEMPLATEAPPEAL
      inner join dbo.APPEAL ORIGINALAPPEAL on ORIGINALAPPEAL.ID = ORIGINALTEMPLATEAPPEAL.APPEALSYSTEMID
      inner join dbo.APPEAL REPLACEMENTAPPEAL on REPLACEMENTAPPEAL.MEMBERSHIPPROGRAMID = ORIGINALAPPEAL.MEMBERSHIPPROGRAMID
      inner join dbo.MKTMEMBERSHIPMAILINGTEMPLATEAPPEAL REPLACEMENTTEMPLATEAPPEAL on (
        REPLACEMENTTEMPLATEAPPEAL.APPEALSYSTEMID = REPLACEMENTAPPEAL.ID
          and REPLACEMENTTEMPLATEAPPEAL.MEMBERSHIPMAILINGTEMPLATEID <> @ID
      )
    where ORIGINALTEMPLATEAPPEAL.MEMBERSHIPMAILINGTEMPLATEID = @ID
  );

  if @REPLACEMENTMAILINGTEMPLATEID is not null
  begin
    update dbo.MKTMEMBERSHIPRENEWALEFFORTPROCESS
    set MEMBERSHIPMAILINGTEMPLATEID = @REPLACEMENTMAILINGTEMPLATEID,
      CHANGEDBYID = @CHANGEAGENTID,
      DATECHANGED = getdate()
    where MEMBERSHIPMAILINGTEMPLATEID = @ID;
  end

    select
      @PARAMETERSETID = [ID]
    from 
      dbo.[MKTMEMBERSHIPMAILINGPROCESS]
    where 
      [MEMBERSHIPMAILINGTEMPLATEID] = @ID;

    /* Clean up the comm prefs related to activation */
    exec dbo.[USP_BUSINESSPROCESSCOMMPREF_DELETE] '22C3D75C-A956-4BFC-A5FD-4B866BAEF509', @PARAMETERSETID, @CHANGEAGENTID;

    exec dbo.[USP_BUSINESSPROCESS_PARAMETERSETCANBEDELETED] 'MKTMEMBERSHIPMAILINGPROCESSSTATUS', @PARAMETERSETID;

    exec dbo.[USP_BUSINESSPROCESSINSTANCE_DELETE] '854A7703-89D1-4EF7-A7C6-B8836A887092', @PARAMETERSETID, @CHANGEAGENTID;

    exec dbo.[USP_MKTMEMBERSHIPMAILINGTEMPLATE_DELETEBYID_WITHCHANGEAGENTID] @ID, @CHANGEAGENTID;
  end try

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

  return 0;