USP_DATAFORMTEMPLATE_EDIT_MKTACKNOWLEDGEMENTMAILINGTEMPLATESEED

The save procedure used by the edit dataform template "Marketing Acknowledgement Template Seeds 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.
@SEEDS xml IN Seeds

Definition

Copy

CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTACKNOWLEDGEMENTMAILINGTEMPLATESEED]
(
  @ID uniqueidentifier,  /* Acknowledgement Mailing Template ID */
  @CHANGEAGENTID uniqueidentifier = null,
  @SEEDS xml
)
as
  set nocount on;

  declare @CURRENTDATE datetime;
  declare @SEEDID uniqueidentifier;
  declare @SELECTED bit;
  declare @MARKETINGACKNOWLEDGEMENTSEEDID uniqueidentifier;

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

    set @CURRENTDATE = GetDate();

    declare SEEDCURSOR cursor local fast_forward for
      select [ID], [SELECTED]
      from dbo.[UFN_MKTACKNOWLEDGEMENTMAILINGTEMPLATESEED_GETSEEDS_FROMITEMLISTXML](@SEEDS);

    open SEEDCURSOR;
    fetch next from SEEDCURSOR into @SEEDID, @SELECTED;

    while (@@FETCH_STATUS = 0)
    begin
      select @MARKETINGACKNOWLEDGEMENTSEEDID = [ID] 
      from dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATESEED] 
      where [ACKNOWLEDGEMENTMAILINGTEMPLATEID] = @ID and [SEEDID] = @SEEDID;

      if @SELECTED = 0
        begin
          if @MARKETINGACKNOWLEDGEMENTSEEDID is not null
            /* Not selected, so remove the smart query */
            exec dbo.[USP_MKTACKNOWLEDGEMENTMAILINGTEMPLATESEED_DELETEBYID_WITHCHANGEAGENTID] @MARKETINGACKNOWLEDGEMENTSEEDID, @CHANGEAGENTID;
        end
      else
        begin
          if @MARKETINGACKNOWLEDGEMENTSEEDID is null
            /* Selected, but not in the table yet */
            insert into dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATESEED] (
              [ID],
              [ACKNOWLEDGEMENTMAILINGTEMPLATEID],
              [SEEDID],
              [ADDEDBYID],
              [CHANGEDBYID],
              [DATEADDED],
              [DATECHANGED]
            ) values (
              NewID(),
              @ID,
              @SEEDID,
              @CHANGEAGENTID,
              @CHANGEAGENTID,
              @CURRENTDATE,
              @CURRENTDATE
            );
        end

      set @MARKETINGACKNOWLEDGEMENTSEEDID = null;
      fetch next from SEEDCURSOR into @SEEDID, @SELECTED;
    end;

    close SEEDCURSOR;
    deallocate SEEDCURSOR;
  end try

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

  return 0;