USP_MKTSEGMENTATIONACTIVATE_SAVEFIELD

Saves an activation source's information.

Parameters

Parameter Parameter Type Mode Description
@SEGMENTATIONID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@RECORDSOURCEID uniqueidentifier IN
@NORMALGIFTIDSETREGISTERID uniqueidentifier IN
@UNRESOLVEDGIFTIDSETREGISTERID uniqueidentifier IN
@APPEALSYSTEMID nvarchar(36) IN
@APPEALID nvarchar(100) IN
@APPEALDESCRIPTION nvarchar(255) IN

Definition

Copy


CREATE procedure dbo.[USP_MKTSEGMENTATIONACTIVATE_SAVEFIELD]
(
  @SEGMENTATIONID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,    
  @RECORDSOURCEID uniqueidentifier,
  @NORMALGIFTIDSETREGISTERID uniqueidentifier,
  @UNRESOLVEDGIFTIDSETREGISTERID uniqueidentifier,
  @APPEALSYSTEMID nvarchar(36),
  @APPEALID nvarchar(100),
  @APPEALDESCRIPTION nvarchar(255)
)
as
  set nocount on;

  declare @CURRENTDATE datetime;

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

    set @CURRENTDATE = getdate();

    if @APPEALSYSTEMID is null
      set @APPEALSYSTEMID = '';
    if @APPEALID is null
      set @APPEALID = '';
    if @APPEALDESCRIPTION is null
      set @APPEALDESCRIPTION = '';

    declare @APPEALLOCKED bit = 0;

    /* Get template locked appeal settings */  
    if exists(select top 1 1 from dbo.[MKTCOMMUNICATIONTEMPLATE] where [MKTSEGMENTATIONID] = @SEGMENTATIONID)
      begin

        select
          @APPEALLOCKED = [MKTCOMMUNICATIONTEMPLATEDEFAULT].[APPEALLOCKED]
        from dbo.[MKTCOMMUNICATIONTEMPLATE]
        inner join dbo.[MKTCOMMUNICATIONTEMPLATEDEFAULT] on [MKTCOMMUNICATIONTEMPLATEDEFAULT].[COMMUNICATIONTEMPLATEID] = [MKTCOMMUNICATIONTEMPLATE].[ID]
        where [MKTSEGMENTATIONID] = @SEGMENTATIONID;

      end

    /* Insert or update the appeal values for the record source */
    if exists(select [ID] from dbo.[MKTSEGMENTATIONACTIVATE] where [SEGMENTATIONID] = @SEGMENTATIONID and [RECORDSOURCEID] = @RECORDSOURCEID)
      update dbo.[MKTSEGMENTATIONACTIVATE] set
        [NORMALGIFTIDSETREGISTERID] = @NORMALGIFTIDSETREGISTERID,
        [UNRESOLVEDGIFTIDSETREGISTERID] = @UNRESOLVEDGIFTIDSETREGISTERID,
        [APPEALSYSTEMID] = case when @APPEALLOCKED = 1 then [APPEALSYSTEMID] else @APPEALSYSTEMID end,
        [APPEALID] = case when @APPEALLOCKED = 1 then [APPEALID] else @APPEALID end,
        [APPEALDESCRIPTION] = case when @APPEALLOCKED = 1 then [APPEALDESCRIPTION] else @APPEALDESCRIPTION end,
        [CHANGEDBYID] = @CHANGEAGENTID,
        [DATECHANGED] = @CURRENTDATE
      where [SEGMENTATIONID] = @SEGMENTATIONID 
      and [RECORDSOURCEID] = @RECORDSOURCEID;
    else
      insert into dbo.[MKTSEGMENTATIONACTIVATE] (
        [ID],
        [SEGMENTATIONID],
        [RECORDSOURCEID],
        [NORMALGIFTIDSETREGISTERID],
        [UNRESOLVEDGIFTIDSETREGISTERID],
        [APPEALSYSTEMID],
        [APPEALID],
        [APPEALDESCRIPTION],
        [ADDEDBYID],
        [DATEADDED],
        [CHANGEDBYID],
        [DATECHANGED]
      ) values (
        newid(),
        @SEGMENTATIONID,
        @RECORDSOURCEID,
        @NORMALGIFTIDSETREGISTERID,
        @UNRESOLVEDGIFTIDSETREGISTERID,
        @APPEALSYSTEMID,
        @APPEALID,
        @APPEALDESCRIPTION,
        @CHANGEAGENTID,
        @CURRENTDATE,
        @CHANGEAGENTID,
        @CURRENTDATE
      );
  end try

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

  return 0;