USP_DATAFORMTEMPLATE_ADD_CONSTITUENTLETTERBASIC

The save procedure used by the add dataform template "Constituent Letter Basic Add Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@LETTERNAME nvarchar(100) IN Letter name
@INCOMINGID nvarchar(37) IN Input parameter indicating the context ID for the record being added.
@CONSTITUENTID uniqueidentifier IN
@NAMEFORMATID uniqueidentifier IN Formatted name
@ADDRESSID uniqueidentifier IN Address
@LETTERFILE varbinary IN Letter
@LETTERFILENAME nvarchar(255) IN Letter
@INTERACTIONTYPECODEID uniqueidentifier IN Interaction type
@MAILDATE datetime IN Mail date
@COMMENT nvarchar(255) IN Comment
@LETTERTEMPLATEID uniqueidentifier IN Letter template
@UPLOADFILE bit IN
@INTERACTIONCATEGORYID uniqueidentifier IN Category
@INTERACTIONSUBCATEGORYID uniqueidentifier IN Subcategory

Definition

Copy

                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_CONSTITUENTLETTERBASIC
                    (
                        @ID uniqueidentifier = null output,
                        @CURRENTAPPUSERID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,    
                        @LETTERNAME nvarchar(100) = null,
                        @INCOMINGID nvarchar(37),
                        @CONSTITUENTID uniqueidentifier = null,
                        @NAMEFORMATID uniqueidentifier = null,
                        @ADDRESSID uniqueidentifier = null,
                        @LETTERFILE varbinary(max) = null,
                        @LETTERFILENAME nvarchar(255) = null,
                        @INTERACTIONTYPECODEID uniqueidentifier = null,
                        @MAILDATE datetime = null,
                        @COMMENT nvarchar(255) = null,
                        @LETTERTEMPLATEID uniqueidentifier = null,
                        @UPLOADFILE bit = null,
                        @INTERACTIONCATEGORYID uniqueidentifier = null,
                        @INTERACTIONSUBCATEGORYID uniqueidentifier = null
                    )
                    as
                        set nocount on;

                        declare @CURRENTDATE datetime;
                        set @CURRENTDATE = getdate();

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

                        declare @STATUSCODE tinyint;
                        set @STATUSCODE = 2;

                        if @UPLOADFILE = 0
                        begin
                            -- If the file isn't mergeable then just copy the file from the template library
                            select @LETTERFILE = LETTERFILE,
                                @LETTERFILENAME = LETTERFILENAME
                            from dbo.LETTERTEMPLATE
                            where ID = @LETTERTEMPLATEID;

                            declare @EXTENSION nvarchar(255);
                            declare @SPLITON nvarchar(1);

                            set @EXTENSION = @LETTERFILENAME;
                            set @SPLITON = '.';

                            while(charindex(@SPLITON, @EXTENSION) > 0)
                            begin
                                set @EXTENSION = substring(@EXTENSION, charindex(@SPLITON, @EXTENSION) + 1, len(@EXTENSION));
                            end

                            set @LETTERFILENAME = @LETTERNAME + @SPLITON + @EXTENSION;
                        end

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

                            insert into dbo.INTERACTION
                            (
                                ID,
                                CONSTITUENTID,
                                EXPECTEDDATE,
                                ACTUALDATE,
                                INTERACTIONTYPECODEID,
                                OBJECTIVE,
                                STATUSCODE,
                                COMMENT,
                                INTERACTIONSUBCATEGORYID,
                                ADDEDBYID,
                                CHANGEDBYID,
                                DATEADDED,
                                DATECHANGED
                            )
                            values
                            (
                                @ID,
                                @CONSTITUENTID,
                                @MAILDATE,
                                @MAILDATE,
                                @INTERACTIONTYPECODEID,
                                @LETTERNAME,
                                @STATUSCODE,
                                @COMMENT,
                                @INTERACTIONSUBCATEGORYID,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @CURRENTDATE
                            );

                            insert into dbo.INTERACTIONATTACHMENT
                            (
                                ID,
                                DATEENTERED,
                                TITLE,
                                [FILENAME],
                                [FILE],
                                INTERACTIONID,
                                ENTEREDBYAPPUSERID,
                                ADDEDBYID,
                                CHANGEDBYID,
                                DATEADDED,
                                DATECHANGED
                            )
                            values
                            (
                                newID(),
                                @MAILDATE,
                                @LETTERNAME,
                                @LETTERFILENAME,
                                @LETTERFILE,
                                @ID,
                                @CURRENTAPPUSERID,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @CURRENTDATE
                            );

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

                        return 0;