USP_DATAFORMTEMPLATE_EDIT_MKTMEMBERSHIPMAILINGTEMPLATESEED

The save procedure used by the edit dataform template "Membership Renewal Effort 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_MKTMEMBERSHIPMAILINGTEMPLATESEED]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @SEEDS xml
)
as
  set nocount on;

  declare @CURRENTDATE datetime;
  declare @SEEDID uniqueidentifier;
  declare @SELECTED bit;
  declare @MARKETINGMEMBERSHIPSEEDID 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_MKTMEMBERSHIPMAILINGTEMPLATESEED_GETSEEDS_FROMITEMLISTXML](@SEEDS);

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

    while (@@FETCH_STATUS = 0)
    begin
      select 
        @MARKETINGMEMBERSHIPSEEDID = [ID] 
      from 
        dbo.[MKTMEMBERSHIPMAILINGTEMPLATESEED] 
      where 
        [MEMBERSHIPMAILINGTEMPLATEID] = @ID 
      and 
        [SEEDID] = @SEEDID;

      if @SELECTED = 0
        begin
          if @MARKETINGMEMBERSHIPSEEDID is not null
            exec dbo.[USP_MKTMEMBERSHIPMAILINGTEMPLATESEED_DELETEBYID_WITHCHANGEAGENTID] @MARKETINGMEMBERSHIPSEEDID, @CHANGEAGENTID;
        end
      else
        begin
          if @MARKETINGMEMBERSHIPSEEDID is null
            insert into dbo.[MKTMEMBERSHIPMAILINGTEMPLATESEED] 
            (
              [ID],
              [MEMBERSHIPMAILINGTEMPLATEID],
              [SEEDID],
              [ADDEDBYID],
              [CHANGEDBYID],
              [DATEADDED],
              [DATECHANGED]
            ) 
            values 
            (
              newid(),
              @ID,
              @SEEDID,
              @CHANGEAGENTID,
              @CHANGEAGENTID,
              @CURRENTDATE,
              @CURRENTDATE
            );
        end

      set @MARKETINGMEMBERSHIPSEEDID = 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;