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;