USP_MKTACKNOWLEDGEMENTMAILINGTEMPLATE_DELETE

Executes the "Marketing Acknowledgement 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_MKTACKNOWLEDGEMENTMAILINGTEMPLATE_DELETE]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier
)
as
  set nocount on;

  declare @PARAMETERSETID uniqueidentifier;

  begin try
    select
      @PARAMETERSETID = [ID]
    from dbo.[MKTACKNOWLEDGEMENTMAILINGPROCESS]
    where [ACKNOWLEDGEMENTMAILINGTEMPLATEID] = @ID;

    /* Check if the process is currently running and if we can delete it */
    exec dbo.[USP_BUSINESSPROCESS_PARAMETERSETCANBEDELETED] 'MKTACKNOWLEDGEMENTMAILINGPROCESSSTATUS', @PARAMETERSETID;

    /* If we are deleting a template and records have not been marked Acknowledged for runs in the template, */
    /* then clear the revenue letter records so they will be picked up in another subsequent template run.   */
    if dbo.[UFN_MKTACKNOWLEDGEMENTMAILINGTEMPLATE_UNACKNOWLEDGEDREVENUEEXISTS](@ID) = 1
      begin
        declare @STATUSID uniqueidentifier;
        declare TEMPLATESTATUSCURSOR cursor local fast_forward for
          select [MKTACKNOWLEDGEMENTMAILINGPROCESSSTATUS].[ID]
          from dbo.[MKTACKNOWLEDGEMENTMAILINGPROCESSSTATUS]
          inner join dbo.[MKTACKNOWLEDGEMENTMAILINGPROCESS] on [MKTACKNOWLEDGEMENTMAILINGPROCESS].[ID] = [MKTACKNOWLEDGEMENTMAILINGPROCESSSTATUS].[PARAMETERSETID]
          inner join dbo.[MKTACKNOWLEDGEMENTMAILINGPROCESSSEGMENTATION] on [MKTACKNOWLEDGEMENTMAILINGPROCESSSEGMENTATION].[ACKNOWLEDGEMENTMAILINGPROCESSSTATUSID] = [MKTACKNOWLEDGEMENTMAILINGPROCESSSTATUS].[ID]
          where [MKTACKNOWLEDGEMENTMAILINGPROCESS].[ACKNOWLEDGEMENTMAILINGTEMPLATEID] = @ID
          and [MKTACKNOWLEDGEMENTMAILINGPROCESSSEGMENTATION].[ACKNOWLEDGEDATE] is null
          union
          select distinct [MKTACKNOWLEDGEMENTMAILINGPROCESSSTATUS].[ID]
          from dbo.[V_MKTREVENUELETTER]
          inner join dbo.[MKTACKNOWLEDGEMENTMAILINGPROCESSSTATUS] on [V_MKTREVENUELETTER].[MKTACKNOWLEDGEMENTMAILINGPROCESSSTATUSID] = [MKTACKNOWLEDGEMENTMAILINGPROCESSSTATUS].[ID]
          inner join dbo.[MKTACKNOWLEDGEMENTMAILINGPROCESS] on [MKTACKNOWLEDGEMENTMAILINGPROCESS].[ID] = [MKTACKNOWLEDGEMENTMAILINGPROCESSSTATUS].[PARAMETERSETID]
          where [MKTACKNOWLEDGEMENTMAILINGPROCESS].[ACKNOWLEDGEMENTMAILINGTEMPLATEID] = @ID
          and [V_MKTREVENUELETTER].[ACKNOWLEDGEDATE] is null;

        open TEMPLATESTATUSCURSOR;
        fetch next from TEMPLATESTATUSCURSOR into @STATUSID;

        while (@@FETCH_STATUS = 0)
        begin
          --Clear results for each status record that has unacknowledged revenue...

          exec dbo.[USP_RECORDOPERATION_MKTACKNOWLEDGEMENTMAILINGPROCESSCLEARRESULTS] @STATUSID, @CHANGEAGENTID;

          fetch next from TEMPLATESTATUSCURSOR into @STATUSID;
        end

        close TEMPLATESTATUSCURSOR;
        deallocate TEMPLATESTATUSCURSOR;
      end

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

    /* Delete the template's process */
    exec dbo.[USP_BUSINESSPROCESSINSTANCE_DELETE] '1F72BAD2-F10A-4F43-9210-AB3B5CBBB576', @PARAMETERSETID, @CHANGEAGENTID;

    /* Delete the acknowledgement mailing template */
    exec dbo.[USP_MKTACKNOWLEDGEMENTMAILINGTEMPLATE_DELETEBYID_WITHCHANGEAGENTID] @ID, @CHANGEAGENTID;
  end try

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

  return 0;