USP_EMAILTEMPLATE_ADDUPDATE
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PKID | int | INOUT | |
@UserID | int | IN | |
@ClientsID | int | IN | |
@Name | nvarchar(92) | IN | |
@Description | nvarchar(255) | IN | |
@ContentHTML | ntext | IN | |
@RecipientListsXML | nvarchar(4000) | IN | |
@ContentText | ntext | IN | |
@FromAddress | nvarchar(255) | IN | |
@FromDisplayName | nvarchar(255) | IN | |
@Subject | nvarchar(4000) | IN | |
@Priority | int | IN | |
@ReplyAddress | nvarchar(255) | IN | |
@ReturnReceipt | bit | IN | |
@ReturnReceiptAddress | nvarchar(255) | IN | |
@ForwardDSN | bit | IN | |
@ForwardDSNAddress | nvarchar(255) | IN | |
@GUID | uniqueidentifier | INOUT | |
@Type | tinyint | IN | |
@DataSourceID | int | IN | |
@ClientSitesID | int | IN | |
@AppealID | int | IN | |
@ExportDefinitionID | uniqueidentifier | IN | |
@EmailAddressTypeID | uniqueidentifier | IN | |
@IsExcludeInactiveRecipient | bit | IN | |
@InactiveRecipientFromMonths | int | IN | |
@AlternateSubject | nvarchar(255) | IN |
Definition
Copy
CREATE PROCEDURE [dbo].[USP_EMAILTEMPLATE_ADDUPDATE]
(
@PKID int OUTPUT,
@UserID int,
@ClientsID int,
@Name nvarchar(92),
@Description nvarchar(255),
@ContentHTML ntext,
@RecipientListsXML nvarchar(4000),
@ContentText ntext,
@FromAddress nvarchar(255),
@FromDisplayName nvarchar(255),
@Subject nvarchar(4000),
@Priority int,
@ReplyAddress nvarchar(255),
@ReturnReceipt bit,
@ReturnReceiptAddress nvarchar(255),
@ForwardDSN bit,
@ForwardDSNAddress nvarchar(255),
@GUID uniqueidentifier OUTPUT,
@Type tinyint,
@DataSourceID int,
@ClientSitesID int,
@AppealID int = null,
@ExportDefinitionID uniqueidentifier = null,
@EmailAddressTypeID uniqueidentifier = null,
@IsExcludeInactiveRecipient bit = 0,
@InactiveRecipientFromMonths int = 0,
@AlternateSubject nvarchar(255) = null
)
AS
BEGIN TRANSACTION
IF (@PKID<=0)
BEGIN
INSERT INTO [dbo].EmailTemplate
(
ClientsID,
[Name],
[Description],
OwnerID,
ContentHTML,
ContentText,
FromAddress,
FromDisplayName,
Subject,
Priority,
ReplyAddress,
ReturnReceipt,
ReturnReceiptAddress,
ForwardDSN,
ForwardDSNAddress,
Type,
DataSourceID,
ClientSitesID,
AppealID,
ExportDefinitionID,
EmailAddressTypeID,
IsExcludeInactiveRecipient,
InactiveRecipientFromMonths,
AlternateSubject
)
VALUES
(
@ClientsID,
@Name,
@Description,
@UserID,
@ContentHTML,
@ContentText,
@FromAddress,
@FromDisplayName,
@Subject,
@Priority,
@ReplyAddress,
@ReturnReceipt,
@ReturnReceiptAddress,
@ForwardDSN,
@ForwardDSNAddress,
@Type,
@DataSourceID,
@ClientSitesID,
@AppealID,
@ExportDefinitionID,
@EmailAddressTypeID,
@IsExcludeInactiveRecipient,
@InactiveRecipientFromMonths,
@AlternateSubject
)
SELECT @PKID = @@Identity
SELECT @GUID = [GUID] FROM [dbo].EmailTemplate WHERE [ID] = @PKID
EXEC spAuditThis @UserID, 1, @GUID, 14
END
ELSE
BEGIN
UPDATE [dbo].[EmailTemplate]
SET
ClientsID=@ClientsID,
[Name]=@Name,
[Description]=@Description,
ContentHTML=@ContentHTML,
ContentText=@ContentText,
FromAddress=@FromAddress,
FromDisplayName=@FromDisplayName ,
Subject=@Subject ,
Priority=@Priority ,
ReplyAddress=@ReplyAddress ,
ReturnReceipt=@ReturnReceipt ,
ReturnReceiptAddress=@ReturnReceiptAddress ,
ForwardDSN=@ForwardDSN,
ForwardDSNAddress=@ForwardDSNAddress,
Type=@Type,
DataSourceID=@DataSourceID,
ClientSitesID=@ClientSitesID,
AppealID=@AppealID,
ExportDefinitionID=@ExportDefinitionID,
EmailAddressTypeID = @EmailAddressTypeID,
IsExcludeInactiveRecipient = @IsExcludeInactiveRecipient,
InactiveRecipientFromMonths = @InactiveRecipientFromMonths,
AlternateSubject=@AlternateSubject
WHERE ID=@PKID
SELECT @GUID=[GUID] FROM [dbo].[EmailTemplate] WHERE [ID] = @PKID
EXEC spAuditThis @UserID, 2, @GUID, 14
if @ExportDefinitionID is not null
update dbo.EXPORTDEFINITION
set LOCKFIELDS = 1
where ID = @ExportDefinitionID
END
/*if this is an existing newsletter, no sense deleting/readding the link*/
if @Type <> 2 or not exists(select * from EmailTemplate_EmailList where EmailTemplateID = @PKID)
begin
/* Update the default recipients table... */
DECLARE @idoc int
EXEC sp_xml_preparedocument @idoc OUTPUT, @RecipientListsXML
DELETE FROM [dbo].EmailTemplate_EmailList WHERE EmailTemplateID = @PKID
INSERT EmailTemplate_EmailList (EmailTemplateID, EmailListID) SELECT @PKID, EmailListId FROM OPENXML (@idoc, '/root/RecipLists', 1)
WITH ( EmailListID int ) /* listid is an XML attribute defined in the source-code that generates the XML document parameter... */
EXEC sp_xml_removedocument @idoc
end
COMMIT TRANSACTION