USP_CONDITIONALCONTENTRECIPIENT_BULK_ADD

The save procedure used by the add dataform template "ConditionalContentRecipient Add Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@EMAILJOBID int IN Input parameter indicating the context ID for the record being added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@EMAILLISTID int IN Email List ID

Definition

Copy


CREATE procedure dbo.USP_CONDITIONALCONTENTRECIPIENT_BULK_ADD

    @ID uniqueidentifier = null output,
    @EMAILJOBID int,
    @CHANGEAGENTID uniqueidentifier = null,
    @EMAILLISTID int = ''    
)
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()

begin try

    declare @ListOrigin int
    declare @DataSourceID int
    declare @UserImportID int

    select @DataSourceID = DataSourceID, @ListOrigin = Origin, @UserImportID = UserImportID
    from dbo.EmailList
    where ID = @EMAILLISTID

    if @ListOrigin = 0
    begin
        if @UserImportID > 0
        begin
            insert into dbo.CONDITIONALCONTENTRECIPIENT (EMAILJOBID, USERID, EMAILADDRESS, EMAILLISTID)
            select @EMAILJOBID, cu.ID, cu.Email, @EMAILLISTID 
            from
                (   select ClientUsersID
                    from [dbo].[UserImportMasterList] uiml
                    where UserImportID = @UserImportID
                  ) uiml                
            inner join [dbo].[clientusers] cu ON cu.ID = uiml.ClientUsersID
            where cu.[Deleted] = 0 AND cu.[active]=1 and Len(cu.Email) > 0
        end
        else 
        begin
            if @DataSourceID = 100
            begin
                --insert anonymous subscribers first

                insert into dbo.CONDITIONALCONTENTRECIPIENT (EMAILJOBID, BOSPID, USERID, EMAILLIST_SUBSCRIPTIONID, EMAILADDRESS, EMAILLISTID)
                select @EMAILJOBID, BACKOFFICESYSTEMPEOPLEID, USERID, ID, EMAILADDRESS, @EMAILLISTID
                from dbo.EmailList_Subscription
                where EMAILLISTID = @EMAILLISTID and HASOPTED=1 and USERID is null  and Len(EmailAddress) > 0

                --insert users now

                insert into dbo.CONDITIONALCONTENTRECIPIENT (EMAILJOBID, BOSPID, USERID, EMAILLIST_SUBSCRIPTIONID, EMAILADDRESS, EMAILLISTID)
                select @EMAILJOBID, case EL.BACKOFFICESYSTEMPEOPLEID when 0 then null else EL.BACKOFFICESYSTEMPEOPLEID end, CU.ID, EL.ID, CU.EMAIL, @EMAILLISTID from dbo.EmailList_Subscription EL
                inner join dbo.CLIENTUSERS CU on CU.ID = EL.USERID 
                where EMAILLISTID = @EMAILLISTID and HASOPTED=1 and Len(CU.EMAIL) > 0
            end
            else
            begin
                insert into dbo.CONDITIONALCONTENTRECIPIENT (EMAILJOBID, USERID, EMAILADDRESS, EMAILLISTID)
                select @EMAILJOBID, ID, Email, @EMAILLISTID from dbo.ClientUsers WHERE [Deleted] = 0 AND [active]=1 and LEN([Email]) > 0
            end
        end
    end
    else if @ListOrigin = 1
    begin
        insert into dbo.CONDITIONALCONTENTRECIPIENT (EMAILJOBID, EMAILLISTUPLOADMASTERLISTID, EMAILADDRESS, EMAILLISTID)
        select @EMAILJOBID, BB_XLISTRECORDID, EmailAddress, @EMAILLISTID  FROM EmailListUploadMasterList WHERE EmailListID = @EMAILLISTID  and Len(EmailAddress) > 0
    end
    else if @ListOrigin = 2
    begin
        insert into dbo.CONDITIONALCONTENTRECIPIENT (EMAILJOBID, BOSPID, USERID, EMAILADDRESS, EMAILLISTID)
        select @EMAILJOBID, elp.PeopleID, BOSU.ClientUsersID, elp.EmailAddress, @EMAILLISTID  FROM EmailList_People elp
        left outer join dbo.BackOfficeSystemUsers BOSU on BOSU.BackofficePeopleID = elp.ID    
        where EmailListID = @EMAILLISTID and Len(EmailAddress) > 0
    end 
    else if @ListOrigin = 3
    begin
        insert into dbo.CONDITIONALCONTENTRECIPIENT (EMAILJOBID, EMAILLIST_USERDEFINEDID, EMAILADDRESS, EMAILLISTID)
        select @EMAILJOBID, ID, EmailAddress, @EMAILLISTID FROM EmailList_UserDefined WHERE EmailListID = @EMAILLISTID and Len(EmailAddress) > 0
    end  
end try

begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
end catch

return 0