spREINT_GetEmailRecipientsInfo

Parameters

Parameter Parameter Type Mode Description
@MaxRecords int IN
@DownloadStartpoint nvarchar(50) IN
@LastID int IN

Definition

Copy


CREATE procedure dbo.spREINT_GetEmailRecipientsInfo
(
@MaxRecords int,
@DownloadStartpoint nvarchar(50),
@LastID as int
)
as
begin

    create table #Result(ejrid int, updatedate datetime, emailid int, bospid int, reid int, userid int, ejrUpdatedate datetime)

      insert into #result(ejrid, updatedate, emailid, bospid, userid, reid, ejrUpdatedate)
      SELECT top(@MaxRecords) ejr.id,
      coalesce(EJRD.DONATIONDATE,ejr.updatedate) UpdateDate,
      ejr.emailid,
      ejr.backofficesystempeopleid,
      ejr.userid,
      bosp.backofficerecordid,
      coalesce(ejr.updatedate, EJRD.DONATIONDATE) EjrUpdateDate
      FROM dbo.emailjob_recipient ejr with (nolock)
      INNER JOIN dbo.backofficesystempeople BOSP ON ejr.BackOfficeSystemPeopleID = BOSP.ID and BOSP.BackOfficeSystemID = 0
      LEFT JOIN dbo.EMAILJOB_RECIPIENT_DONATED EJRD on ejr.ID = EJRD.EMAILJOBRECIPIENTID
      WHERE (BOSP.BackofficeRecordID <> 0 and ejr.UpdateDate >= @DownloadStartpoint and NOT (ejr.UpdateDate = @DownloadStartpoint and ejr.ID <= @LastID))
             or EJRD.ID is not null
      order by ejr.UpdateDate, ejr.ID

      delete from dbo.EMAILJOB_RECIPIENT_DONATED where EMAILJOBRECIPIENTID in (select ejrid from #Result)        

      SELECT r.ejrid id,
      r.reid AS "REID",
      e.name,
      r.emailID AS "EmailID",
      e.emailTemplateID AS "EmailTemplateID",
      e.subject,
      ejr.SentDate,
      case when ejr.DSNed =1 and  ejr.RecentDSNCategory <> 112 then 1 else 0 end AS "BOUNCED",
      case 
        when ejr.DSNed=1 and ejr.RecentDSNCategory= 2 then 'Hard - '+convert(nvarchar(1000),ejr.statusreport)
        when ejr.DSNed=1 and ejr.RecentDSNCategory= 108 then 'Previously marked as hard bounce - '+convert(nvarchar(1000),ejr.statusreport)
        when ejr.DSNed=1 and ejr.RecentDSNCategory= 109 then 'Previously marked as spam complaint - '+convert(nvarchar(1000),ejr.statusreport)
        when ejr.DSNed=1 and ejr.RecentDSNCategory = 112 then 'Spam complaint - '+convert(nvarchar(1000),ejr.statusreport)
        when ejr.DSNed=1 and ejr.RecentDSNCategory not in (2,108,109,112) then 'Soft - '+convert(nvarchar(1000),ejr.statusreport)
        else convert(nvarchar(1000),ejr.statusreport)
     end AS "BOUNCETEXT",
      ejr.Opened as "OPENED",
      r.UpdateDate,
      ejr.emailaddress,
      CASE WHEN exists (select * from stats where ejr.ID = stats.EmailJobRecipientID) THEN 1 ELSE 0 END as "ClickedThrough",
      CASE WHEN exists (select * FROM dbo.DonationTransactions dtran WHERE dtran.EmailJobRecipientID = ejr.id AND dtran.EmailID = e.id AND dtran.Status = 1)
      THEN 1
      ELSE 0
      END AS "Donated",
      '' AS "URL",
      e.ClientSitesID,
      case when ejr.DSNed =1 and  ejr.RecentDSNCategory = 112 then 1 else 0 end AS "SpamComplaint",
      ejr.Globaloptedout AS "OptedOut", r.EjrUpdateDate
      FROM #Result r
      INNER JOIN dbo.EmailJob_Recipient ejr with (nolock) on ejr.id = r.ejrid
      INNER JOIN dbo.email e ON e.id = ejr.EmailID
      ORDER BY r.UpdateDate, r.ejrID ASC

      drop table #result
end