USP_MKTMEMBERSHIPMAILINGTEMPLATEKPI_CLEARFIELDS

Clear any existing rows from the table, as well as all defaults, if specified.

Parameters

Parameter Parameter Type Mode Description
@MEMBERSHIPMAILINGTEMPLATEID uniqueidentifier IN
@CLEARDEFAULTS bit IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.[USP_MKTMEMBERSHIPMAILINGTEMPLATEKPI_CLEARFIELDS]
(
  @MEMBERSHIPMAILINGTEMPLATEID uniqueidentifier,
  @CLEARDEFAULTS bit,
  @CHANGEAGENTID uniqueidentifier = null
)
as
  set nocount on;

  declare @CURRENTDATE datetime;
  declare @ID uniqueidentifier;

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

    set @CURRENTDATE = getdate();

    --Deleting by cursor so the audit tables show correctly...

    declare KPICURSOR cursor local fast_forward for
      select [ID]
      from dbo.[MKTMEMBERSHIPMAILINGTEMPLATEKPI]
      where [MEMBERSHIPMAILINGTEMPLATEID] = @MEMBERSHIPMAILINGTEMPLATEID;

    open KPICURSOR;
    fetch next from KPICURSOR into @ID;

    while (@@FETCH_STATUS = 0)
      begin
        exec dbo.[USP_MKTMEMBERSHIPMAILINGTEMPLATEKPI_DELETEBYID_WITHCHANGEAGENTID] @ID, @CHANGEAGENTID;
        fetch next from KPICURSOR into @ID;
      end

    close KPICURSOR;
    deallocate KPICURSOR;

    --Reset all defaults if needed...

    if @CLEARDEFAULTS = 1
      begin
        declare DEFAULTCURSOR cursor local fast_forward for
          select [ID]
          from dbo.[MKTSEGMENTATIONACTIVATEDEFAULTKPI]
          where [MAILINGTYPECODE] = 2;

        open DEFAULTCURSOR;
        fetch next from DEFAULTCURSOR into @ID;

        while (@@FETCH_STATUS = 0)
          begin
            exec dbo.[USP_MKTSEGMENTATIONACTIVATEDEFAULTKPI_DELETEBYID_WITHCHANGEAGENTID] @ID, @CHANGEAGENTID;
            fetch next from DEFAULTCURSOR into @ID;
          end

        close DEFAULTCURSOR;
        deallocate DEFAULTCURSOR;
      end
  end try

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

  return 0;