USP_DATAFORMTEMPLATE_ADD_MICROSITEEMAILTEMPLATE

Parameters

Parameter Parameter Type Mode Description
@ID int INOUT
@CHANGEAGENTID uniqueidentifier IN
@NAME nvarchar(184) IN
@CONTEXTTYPECODE tinyint IN
@CONTEXTID uniqueidentifier IN

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_MICROSITEEMAILTEMPLATE
(
    @ID int = null output,
    @CHANGEAGENTID uniqueidentifier = null,
    @NAME nvarchar(184) = '',
    @CONTEXTTYPECODE tinyint = 0,
    @CONTEXTID uniqueidentifier = null
)
as

    set nocount on;

    if @ID is null
        set @ID = -1;

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

    declare @CURRENTDATE datetime = getdate();

    declare @DEFAULTEMAILTEMPLATEID int;

    select top 1
        @DEFAULTEMAILTEMPLATEID = EMAILTEMPLATEID
    from dbo.SHOPPINGCARTSETTINGS;

    declare @UserID int = 1;
    declare @ClientsID int;
    declare @Description nvarchar(255);
    declare @ContentHTML nvarchar(255);
    declare @ContentText nvarchar(255);
    declare @RecipientListsXML nvarchar(4000);
    declare @FromAddress nvarchar(255);
    declare @FromDisplayName nvarchar(255);
    declare @Subject nvarchar(255);
    declare @Priority int;
    declare @ReplyAddress nvarchar(255);
    declare @ReturnReceipt bit;
    declare @ReturnReceiptAddress nvarchar(255);
    declare @ForwardDSN bit;
    declare @ForwardDSNAddress nvarchar(255);
    declare @GUID uniqueidentifier = newID();
    declare @Type tinyint;
    declare @DataSourceID int;
    declare @ClientSitesID int;
    declare @AppealID int = null;
    declare @ExportDefinitionID uniqueidentifier = null;

    select
        @ClientsID = EmailTemplate.ClientsID,
        @FromAddress = EmailTemplate.FromAddress,
        @FromDisplayName = EmailTemplate.FromDisplayName,
        @Priority = EmailTemplate.Priority,
        @ReplyAddress = EmailTemplate.ReplyAddress,
        @ReturnReceipt = EmailTemplate.ReturnReceipt,
        @ReturnReceiptAddress = EmailTemplate.ReturnReceiptAddress,
        @ForwardDSN = EmailTemplate.ForwardDSN,
        @ForwardDSNAddress = EmailTemplate.ForwardDSNAddress,
        @Type = EmailTemplate.Type,
        @DataSourceID = EmailTemplate.DataSourceID,
        @ClientSitesID = EmailTemplate.ClientSitesID,
        @AppealID = EmailTemplate.AppealID,
        @ExportDefinitionID = EmailTemplate.ExportDefinitionID,
        @Subject = coalesce(EVENT.NAME, PROGRAM.NAME, MEMBERSHIPPROGRAM.NAME, LEVELPROGRAM.NAME + ' - ' + MEMBERSHIPLEVEL.NAME, DESIGNATION.VANITYNAME, COMBINATION.NAME, '')
    from dbo.EmailTemplate
    left outer join dbo.EVENT
        on EVENT.ID = @CONTEXTID
    left outer join dbo.PROGRAM
        on PROGRAM.ID = @CONTEXTID
    left outer join dbo.MEMBERSHIPPROGRAM
        on MEMBERSHIPPROGRAM.ID = @CONTEXTID
    left outer join dbo.MEMBERSHIPLEVEL
        on MEMBERSHIPLEVEL.ID = @CONTEXTID
    left outer join dbo.MEMBERSHIPPROGRAM LEVELPROGRAM
        on MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID = LEVELPROGRAM.ID
    left outer join dbo.DESIGNATION
        on DESIGNATION.ID = @CONTEXTID
    left outer join dbo.COMBINATION
        on COMBINATION.ID = @CONTEXTID
    where EmailTemplate.ID = @DEFAULTEMAILTEMPLATEID;

    begin try
        exec dbo.USP_EMAILTEMPLATE_ADDUPDATE
            @ID output,
            @UserID,
            @ClientsID,
            @Name,
            @Description,
            @ContentHTML,
            null,                -- RecipientsListsXML
            @ContentText,
            @FromAddress,
            @FromDisplayName,
            @Subject,
            @Priority,
            @ReplyAddress,
            @ReturnReceipt,
            @ReturnReceiptAddress,
            @ForwardDSN,
            @ForwardDSNAddress,
            @GUID,
            @Type,
            @DataSourceID,
            @ClientSitesID,
            @AppealID,
            @ExportDefinitionID;

        if @CONTEXTTYPECODE = 0
            insert into dbo.EVENT_MICROSITEEMAILTEMPLATE
                (ID, EVENTID, EMAILTEMPLATEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
            values
                (newID(), @CONTEXTID, @ID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

        if @CONTEXTTYPECODE = 1
            insert into dbo.PROGRAM_MICROSITEEMAILTEMPLATE
                (ID, PROGRAMID, EMAILTEMPLATEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
            values
                (newID(), @CONTEXTID, @ID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

        if @CONTEXTTYPECODE = 2
            insert into dbo.MEMBERSHIPPROGRAM_MICROSITEEMAILTEMPLATE
                (ID, MEMBERSHIPPROGRAMID, EMAILTEMPLATEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
            values
                (newID(), @CONTEXTID, @ID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

        if @CONTEXTTYPECODE = 3
            insert into dbo.MEMBERSHIPLEVEL_MICROSITEEMAILTEMPLATE
                (ID, MEMBERSHIPLEVELID, EMAILTEMPLATEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
            values
                (newID(), @CONTEXTID, @ID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

        if @CONTEXTTYPECODE = 4
            insert into dbo.DESIGNATION_MICROSITEEMAILTEMPLATE
                (ID, DESIGNATIONID, EMAILTEMPLATEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
            values
                (newID(), @CONTEXTID, @ID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

        if @CONTEXTTYPECODE = 5
            insert into dbo.COMBINATION_MICROSITEEMAILTEMPLATE
                (ID, COMBINATIONID, EMAILTEMPLATEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
            values
                (newID(), @CONTEXTID, @ID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
    end try

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

    return 0;