USP_DATAFORMTEMPLATE_ADD_LETTERCODE

The save procedure used by the add dataform template "Revenue Letter Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@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
@WORDTEMPLATEFILENAME nvarchar(255) IN Word template
@WORDFILE varbinary IN File
@QUERYVIEWID uniqueidentifier IN Output format
@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_ADD_LETTERCODE
(
  @ID uniqueidentifier = null output,
  @CHANGEAGENTID uniqueidentifier,
  @NAME nvarchar(100),
  @DESCRIPTION nvarchar(255) = null,
  @IDSETREGISTERID uniqueidentifier = null,
  @WORDTEMPLATEFILENAME nvarchar(255) = null,
  @WORDFILE varbinary(max) = null,
  @QUERYVIEWID uniqueidentifier = null,
  @CUSTOMPARAMETERDATAFORMITEM xml = null,
  @EXPORTDEFINITIONID uniqueidentifier = null,
  @CURRENTAPPUSERID uniqueidentifier = null,
  @SITES xml = null
)
as
  set nocount on;

  if @SITES is null
    begin 
      if dbo.UFN_SITEREQUIREDFORUSER(@CURRENTAPPUSERID) = 1 
        begin
          raiserror('BBERR_LETERCODESITE_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);

  declare @CURRENTDATE datetime = getdate();

  begin try
    if @ID is null
      set @ID = newid();

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

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

    insert into dbo.LETTERCODE(ID,NAME,DESCRIPTION,WORDTEMPLATEFILENAME,WORDFILE,QUERYVIEWID,IDSETREGISTERID,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED,CUSTOMPARAMETERDATAFORMITEM, EXPORTDEFINITIONID)
      values(@ID,@NAME,@DESCRIPTION,@WORDTEMPLATEFILENAME,@WORDFILE,@QUERYVIEWID,@IDSETREGISTERID,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE,@CUSTOMPARAMETERDATAFORMITEM, @EXPORTDEFINITIONID)

    if @SITES is not null
      exec dbo.USP_LETTERCODE_GETSITES_ADDFROMXML @ID, @SITES, @CHANGEAGENTID, @CURRENTDATE;

  end try

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

  return 0;