fnGetEmailsForUserByUserID

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@UserID int IN

Definition

Copy

CREATE FUNCTION [dbo].[fnGetEmailsForUserByUserID]
(
    @UserID int
)
RETURNS TABLE AS RETURN

SELECT
    er.[ID] ID,
    case t.type
    when 1 then t.[Name]
    else e.[Name]
    end
    as Name,
    e.subject,
    r.MessageDate,
    r.SentDate,
    r.OpenedDate,
    r.RecentDSNDate,
    r.RecentDSNCategory,
    r.ID EmailJobRecipientID
FROM dbo.Email e
INNER JOIN EmailJob j ON j.EmailID = e.[ID] and j.[Current] = 1 and e.deleted = 0
INNER JOIN EmailTemplate t on t.id = e.EmailTemplateID
INNER JOIN Email_Recipient er on er.EmailID = e.ID AND er.UserID = @UserID
LEFT OUTER JOIN EmailJob_Recipient r ON r.EmailRecipientID = er.ID AND r.[Current] = 1
where e.Type <> 15 and e.Type <> 9

UNION

SELECT
    er.[ID] ID,
    case t.type
    when 1 then t.[Name]
    else e.[Name]
    end
    as Name,
    e.subject,
    r.MessageDate,
    r.SentDate,
    r.OpenedDate,
    r.RecentDSNDate,
    r.RecentDSNCategory,
    r.ID EmailJobRecipientID
FROM dbo.Email e
INNER JOIN EmailJob j ON j.EmailID = e.[ID] and j.[Current] = 1 and e.deleted = 0
INNER JOIN EmailTemplate t on t.id = e.EmailTemplateID
INNER JOIN BackOfficeSystemUsers bosu on bosu.ClientUsersID = @UserID
INNER JOIN Email_Recipient er on er.EmailID = e.ID AND er.BackOfficeSystemPeopleID = bosu.BackOfficePeopleID
LEFT OUTER JOIN EmailJob_Recipient r ON r.EmailRecipientID = er.ID AND r.[Current] = 1
where e.Type <> 15 and e.Type <> 9