USP_DATALIST_MKTMEMBERSHIPMAILINGS

Displays a list of all membership renewal efforts.

Parameters

Parameter Parameter Type Mode Description
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@SEGMENTATIONID uniqueidentifier IN Segmentation ID
@ACTIVESTATUS bit IN Status
@MAILDATEFROM datetime IN From
@MAILDATETO datetime IN To
@SHOWUNSCHEDULED bit IN Include membership renewal efforts with no date
@SITEFILTERMODE tinyint IN Sites
@SITESSELECTED xml IN Sites selected
@SECURITYFEATUREID uniqueidentifier IN Input parameter indicating the ID of the feature to use for site security checking.
@SECURITYFEATURETYPE tinyint IN Input parameter indicating the type of the feature to use for site security checking.

Definition

Copy


CREATE procedure dbo.[USP_DATALIST_MKTMEMBERSHIPMAILINGS]
(
  @CURRENTAPPUSERID uniqueidentifier = null,
  @SEGMENTATIONID uniqueidentifier = null,
  @ACTIVESTATUS bit = null,
  @MAILDATEFROM datetime = null,
  @MAILDATETO datetime = null,
  @SHOWUNSCHEDULED bit = 1,
  @SITEFILTERMODE tinyint = 0,
  @SITESSELECTED xml = null,
  @SECURITYFEATUREID uniqueidentifier = null,
  @SECURITYFEATURETYPE tinyint = null  
)
as
  set nocount on;

  declare @CURRENTDATE as datetime = dbo.UFN_DATE_GETEARLIESTTIME(getdate());

  if @SHOWUNSCHEDULED is null
    set @SHOWUNSCHEDULED = 1;

  select
    [MKTSEGMENTATION].[ID],
    [MKTMEMBERSHIPMAILINGTEMPLATE].[NAME] as [TEMPLATE],
    [MKTSEGMENTATION].[DATEADDED] as [PROCESSDATE],
    [MKTSEGMENTATION].[IDINTEGER],
    [MKTSEGMENTATION].[CODE],
    [MKTSEGMENTATION].[NAME],
    [MKTSEGMENTATION].[MAILDATE],
    [MKTSEGMENTATION].[ACTIVE],
    [MKTSEGMENTATION].[DESCRIPTION],
    [SITE].[NAME] as [SITE],
    case
      --The "GETEARLIESTTIME" date function has been inlined here for performance (the part with "cast(@DATE as date)")...

      when cast([MKTSEGMENTATION].[DATEADDED] as date) = dateadd(day, 0, @CURRENTDATE) then 'Today'
      when cast([MKTSEGMENTATION].[DATEADDED] as date) = dateadd(day, -1, @CURRENTDATE) then 'Yesterday'
      when [MKTSEGMENTATION].[DATEADDED] >= dateadd(day, -6, @CURRENTDATE) then 'Last week'             
      when [MKTSEGMENTATION].[DATEADDED] >= dateadd(day, -13, @CURRENTDATE) then 'Two weeks ago'
      when [MKTSEGMENTATION].[DATEADDED] >= dateadd(day, -20, @CURRENTDATE) then 'Three weeks ago'
      when [MKTSEGMENTATION].[DATEADDED] >= dateadd(day, -30, @CURRENTDATE) then 'Last month'
      else 'Older'
    end [PROCESSDATETEXT],
    case
      --The "GETEARLIESTTIME" date function has been inlined here for performance (the part with "cast(@DATE as date)")...

      when cast([MKTSEGMENTATION].[DATEADDED] as date) = dateadd(day, 0, @CURRENTDATE) then 0
      when cast([MKTSEGMENTATION].[DATEADDED] as date) = dateadd(day, -1, @CURRENTDATE) then 1
      when [MKTSEGMENTATION].[DATEADDED] >= dateadd(day, -6, @CURRENTDATE) then 2             
      when [MKTSEGMENTATION].[DATEADDED] >= dateadd(day, -13, @CURRENTDATE) then 3
      when [MKTSEGMENTATION].[DATEADDED] >= dateadd(day, -20, @CURRENTDATE) then 4
      when [MKTSEGMENTATION].[DATEADDED] >= dateadd(day, -30, @CURRENTDATE) then 5
      else 6
    end [PROCESSDATEORDER]
  from dbo.[MKTSEGMENTATION]
  left outer join dbo.[MKTMEMBERSHIPMAILINGPROCESSSEGMENTATION] on [MKTMEMBERSHIPMAILINGPROCESSSEGMENTATION].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
  left outer join dbo.[MKTMEMBERSHIPMAILINGPROCESSSTATUS] on [MKTMEMBERSHIPMAILINGPROCESSSTATUS].[ID] = [MKTMEMBERSHIPMAILINGPROCESSSEGMENTATION].[MEMBERSHIPMAILINGPROCESSSTATUSID]
  left outer join dbo.[MKTMEMBERSHIPMAILINGPROCESS] on [MKTMEMBERSHIPMAILINGPROCESS].[ID] = [MKTMEMBERSHIPMAILINGPROCESSSTATUS].[PARAMETERSETID] 
  left outer join dbo.[MKTMEMBERSHIPMAILINGTEMPLATE] on [MKTMEMBERSHIPMAILINGPROCESS].[MEMBERSHIPMAILINGTEMPLATEID] = [MKTMEMBERSHIPMAILINGTEMPLATE].[ID]
  left outer join dbo.[SITE] on [SITE].[ID] = [MKTSEGMENTATION].[SITEID]
  where (@SEGMENTATIONID is null or @SEGMENTATIONID = [MKTSEGMENTATION].[ID])
  and (@ACTIVESTATUS is null or @ACTIVESTATUS = [MKTSEGMENTATION].[ACTIVE])
  and (@MAILDATEFROM is null or ([MKTSEGMENTATION].[MAILDATE] is not null and [MKTSEGMENTATION].[MAILDATE] >= @MAILDATEFROM) or (@SHOWUNSCHEDULED = 1 and [MKTSEGMENTATION].[MAILDATE] is null))
  and (@MAILDATETO is null or ([MKTSEGMENTATION].[MAILDATE] is not null and [MKTSEGMENTATION].[MAILDATE] <= @MAILDATETO) or (@SHOWUNSCHEDULED = 1 and [MKTSEGMENTATION].[MAILDATE] is null))
  and (@SHOWUNSCHEDULED = 1 or (@SHOWUNSCHEDULED = 0 and [MKTSEGMENTATION].[MAILDATE] is not null))
  and [MKTSEGMENTATION].[MAILINGTYPECODE] = 2  -- membership

  and (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[MKTSEGMENTATION].[SITEID] or (SITEID is null and [MKTSEGMENTATION].[SITEID] is null)))
  and (@SITEFILTERMODE = 0 or [MKTSEGMENTATION].[SITEID] in (select [SITEID] from dbo.[UFN_SITE_BUILDDATALISTSITEFILTER](@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED)))
  order by [MKTSEGMENTATION].[NAME];

  return 0;