USP_DATAFORMTEMPLATE_EDIT_LETTERCODE_4

The save procedure used by the edit dataform template "Revenue Letter Edit Form 2".

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.
@NAME nvarchar(100) IN Name
@DESCRIPTION nvarchar(255) IN Description
@IDSETREGISTERID uniqueidentifier IN Selection
@WORDFILE varbinary IN File
@WORDTEMPLATEFILENAME nvarchar(255) IN Word template
@DISPLAYEDFILENAME nvarchar(255) IN Word template
@QUERYVIEWID uniqueidentifier IN Output format
@FILECHANGED bit IN File changed?
@CUSTOMPARAMETERDATAFORMITEM xml IN
@EXPORTDEFINITIONID uniqueidentifier IN Export definition
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@SITES xml IN Sites

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_LETTERCODE_4
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @NAME nvarchar(100),
  @DESCRIPTION nvarchar(255),
  @IDSETREGISTERID uniqueidentifier,
  @WORDFILE varbinary(max),
  @WORDTEMPLATEFILENAME nvarchar(255),
  @DISPLAYEDFILENAME nvarchar(255),
  @QUERYVIEWID uniqueidentifier,
  @FILECHANGED bit,
  @CUSTOMPARAMETERDATAFORMITEM xml,
  @EXPORTDEFINITIONID uniqueidentifier,
  @CURRENTAPPUSERID uniqueidentifier,
  @SITES xml
)
as
  set nocount on;

  declare @CURRENTDATE datetime = getdate();

  begin try
    if @SITES is null and @CURRENTAPPUSERID is not null
      begin 
        if dbo.UFN_SITEREQUIREDFORUSER(@CURRENTAPPUSERID) = 1 
          begin
            raiserror('BBERR_LETTERCODESITE_SITEID', 13, 1);
            return 1;
          end
      end

    -- this must be enforced here now because the constraint that was enforcing it is no longer valid
    -- and because letters added via MarketingLetterCode.Add.xml require neither field
    if @QUERYVIEWID is null and @EXPORTDEFINITIONID is null
      raiserror('BBERR_LETTERCODEOUTPUT_OUTPUTFORMATOREXPORTDEFINITIONREQUIRED', 13, 1);
    if @QUERYVIEWID is not null and @EXPORTDEFINITIONID is not null
      raiserror('BBERR_LETTERCODEOUTPUT_OUTPUTFORMATOREXPORTDEFINITION_OUTPUTFORMAT_OR_EXPORTDEF', 13, 1);

    if @CHANGEAGENTID is null
      exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

    if len(cast(@CUSTOMPARAMETERDATAFORMITEM as nvarchar(max))) = 0
      set @CUSTOMPARAMETERDATAFORMITEM = null

    if @FILECHANGED = 1
      update dbo.LETTERCODE set
        NAME = @NAME,
        DESCRIPTION = @DESCRIPTION,
        IDSETREGISTERID = @IDSETREGISTERID,
        WORDTEMPLATEFILENAME = @WORDTEMPLATEFILENAME,
        WORDFILE = @WORDFILE,
        QUERYVIEWID = @QUERYVIEWID,
        CHANGEDBYID = @CHANGEAGENTID,
        DATECHANGED = @CURRENTDATE,
        CUSTOMPARAMETERDATAFORMITEM = @CUSTOMPARAMETERDATAFORMITEM,
        EXPORTDEFINITIONID = @EXPORTDEFINITIONID
      where ID = @ID;
    else
      update dbo.LETTERCODE set
        NAME = @NAME,
        DESCRIPTION = @DESCRIPTION,
        IDSETREGISTERID = @IDSETREGISTERID,
        QUERYVIEWID = @QUERYVIEWID,
        CHANGEDBYID = @CHANGEAGENTID,
        DATECHANGED = @CURRENTDATE,
        CUSTOMPARAMETERDATAFORMITEM = @CUSTOMPARAMETERDATAFORMITEM,
        EXPORTDEFINITIONID = @EXPORTDEFINITIONID
      where ID = @ID;

    exec dbo.USP_LETTERCODE_GETSITES_UPDATEFROMXML @ID, @SITES, @CHANGEAGENTID, @CURRENTDATE;
  end try

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

  return 0;