USP_DATAFORMTEMPLATE_ADD_PARTICIPANT_EMAIL_TEMPLATE

The save procedure used by the add dataform template "Participant Email Template 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.
@EVENTID uniqueidentifier IN Event
@CLIENTUSERSID int IN Clientusers
@NAME nvarchar(255) IN Name
@DESCRIPTION nvarchar(512) IN Description
@CONTENTHTML nvarchar(max) IN Contenthtml
@CONTENTTEXT nvarchar(max) IN Contenttext
@SUBJECT nvarchar(255) IN Subject
@CONTACTTYPE nvarchar(255) IN Contacttype
@DELETED bit IN Deleted
@AVAILABLEASLETTER bit IN Available as letter
@FAFTASKID uniqueidentifier IN
@LASTDAYSENT datetime IN
@ISLETTER bit IN

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_PARTICIPANT_EMAIL_TEMPLATE
(
    @ID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier = null,
    @EVENTID uniqueidentifier,
    @CLIENTUSERSID int,
    @NAME nvarchar(255),
    @DESCRIPTION nvarchar(512) = '',
    @CONTENTHTML nvarchar(max) = '',
    @CONTENTTEXT nvarchar(max) = '',
    @SUBJECT nvarchar(255) = '',
    @CONTACTTYPE nvarchar(255) = '',
    @DELETED bit = 0,
    @AVAILABLEASLETTER bit = 0,
    @FAFTASKID uniqueidentifier = null,
    @LASTDAYSENT datetime = null,
    @ISLETTER bit = 0
)
as

set nocount on;

if @ID is null
    set @ID = newid()

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

declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()

DECLARE @TEMPLATECOUNT INT
DECLARE @TEMPLATE_TO_REMOVE uniqueidentifier


SET @TEMPLATECOUNT = ( SELECT COUNT(*) FROM PARTICIPANTEMAILTEMPLATE (NOLOCK)  WHERE FAFTASKID = @FAFTASKID and CLIENTUSERSID = @CLIENTUSERSID and EVENTID = @EVENTID )
IF @TEMPLATECOUNT > 75 -- keeping up to 75 records total
BEGIN
    -- Warnings off because records saved with old create template did not have column LASTDAYSENT
    SET ANSI_WARNINGS OFF
    SET @TEMPLATE_TO_REMOVE = 
    (
        SELECT top 1 id
    FROM PARTICIPANTEMAILTEMPLATE (NOLOCK)
    WHERE FAFTASKID = @FAFTASKID
        and CLIENTUSERSID = @CLIENTUSERSID 
        and EVENTID = @EVENTID
        and DATECHANGED = 
        ( 
        SELECT  MIN (DATECHANGED) 
        FROM PARTICIPANTEMAILTEMPLATE (NOLOCK)
        WHERE FAFTASKID = @FAFTASKID
            and CLIENTUSERSID = @CLIENTUSERSID 
            and EVENTID = @EVENTID
        )
    )
    if @TEMPLATE_TO_REMOVE is not null
    BEGIN
    DELETE PARTICIPANTEMAILTEMPLATE WHERE ID =@TEMPLATE_TO_REMOVE
    END    
END

begin try
    -- handle inserting the data
    insert into dbo.PARTICIPANTEMAILTEMPLATE
        (ID, EVENTID, CLIENTUSERSID, NAME, DESCRIPTION, CONTENTHTML, CONTENTTEXT, SUBJECT, CONTACTTYPE, DELETED, AVAILABLEASLETTER, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, FAFTASKID,  ISLETTER)
    values
        (@ID, @EVENTID, @CLIENTUSERSID, @NAME, @DESCRIPTION, @CONTENTHTML, @CONTENTTEXT, @SUBJECT, @CONTACTTYPE, @DELETED, @AVAILABLEASLETTER, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE, @FAFTASKID, @ISLETTER)
end try

begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
end catch

return 0