USP_DATALIST_MKTSEGMENTWHITEMAIL
Displays a list of all white mail segments, by group.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEGMENTID | uniqueidentifier | IN | Segment |
@SOURCECODE | nvarchar(50) | IN | Source code |
@GROUPID | uniqueidentifier | IN | Group |
@SEGMENTCATEGORYCODEID | uniqueidentifier | IN | Category |
@INCLUDEINACTIVE | bit | IN | Include inactive |
@CURRENCYCODE | tinyint | IN | Currency |
@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. |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@INACTIVEFILTER | bit | IN |
Definition
Copy
CREATE procedure dbo.[USP_DATALIST_MKTSEGMENTWHITEMAIL]
(
@SEGMENTID uniqueidentifier = null,
@SOURCECODE nvarchar(50) = null,
@GROUPID uniqueidentifier = null,
@SEGMENTCATEGORYCODEID uniqueidentifier = null,
@INCLUDEINACTIVE bit = 0,
@CURRENCYCODE tinyint = 0,
@SITEFILTERMODE tinyint = 0,
@SITESSELECTED xml = null,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null,
@CURRENTAPPUSERID uniqueidentifier = null,
@INACTIVEFILTER bit = 0
)
as
set nocount on;
declare @NOW datetime = getdate();
declare @YESTERDAY datetime = dateadd(d, -1, @NOW);
declare @TOMORROW datetime = dateadd(d, 1, @NOW);
-- To maintain backwards compatibility, override the inactivefilter filter if INCLUDEINACTIVE is set
if @INCLUDEINACTIVE = 1
set @INACTIVEFILTER = null;
with [SEGMENTACTIVESTATUS] ([ID], [ISACTIVE]) as
(
select
[ID],
case when [MKTSEGMENTWHITEMAIL].[STATUSCODE] = 0 or ([MKTSEGMENTWHITEMAIL].[STATUSCODE] = 1
and @NOW between isnull([MKTSEGMENTWHITEMAIL].[ACTIVEFROM], @YESTERDAY)
and isnull(dateadd(d, 1, [MKTSEGMENTWHITEMAIL].[ACTIVETO]), @TOMORROW)) then 1 else 0 end as [ISACTIVE]
from dbo.[MKTSEGMENTWHITEMAIL]
)
select
[MKTSEGMENT].[ID],
dbo.[UFN_MKTSOURCECODE_BUILDCODE]([MKTSEGMENTWHITEMAIL].[ID], null, null) as [SOURCECODE],
[MKTSEGMENT].[NAME],
[MKTSEGMENTGROUP].[ID] as [GROUPID],
[MKTSEGMENTGROUP].[NAME] as [GROUPNAME],
[MKTSEGMENTCATEGORYCODE].[DESCRIPTION] as [SEGMENTCATEGORYCODE],
[SEGMENTACTIVESTATUS].[ISACTIVE] as [ACTIVE],
[MKTSEGMENTWHITEMAILCACHE].[RESPONDERS],
[MKTSEGMENTWHITEMAILCACHE].[RESPONSES],
case @CURRENCYCODE when 1 then [MKTSEGMENTWHITEMAILCACHE].[ORGANIZATIONTOTALGIFTAMOUNT] else [MKTSEGMENTWHITEMAILCACHE].[TOTALGIFTAMOUNT] end as [TOTALGIFTAMOUNT],
case @CURRENCYCODE when 1 then [MKTSEGMENTWHITEMAILCACHE].[ORGANIZATIONAVERAGEGIFTAMOUNT] else [MKTSEGMENTWHITEMAILCACHE].[AVERAGEGIFTAMOUNT] end as [AVERAGEGIFTAMOUNT],
[MKTSEGMENTWHITEMAILREFRESHPROCESS].[DATEREFRESHED],
[MKTSEGMENT].[DESCRIPTION],
[MKTSEGMENTWHITEMAILREFRESHPROCESS].[ID] as [SEGMENTWHITEMAILREFRESHPROCESSID],
case @CURRENCYCODE when 1 then dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]() else [MKTSEGMENT].[BASECURRENCYID] end as [BASECURRENCYID],
isnull([SITE].[NAME], '') as [SITE]
from dbo.[MKTSEGMENTWHITEMAIL]
inner join [SEGMENTACTIVESTATUS] on [SEGMENTACTIVESTATUS].[ID] = [MKTSEGMENTWHITEMAIL].[ID]
inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTWHITEMAIL].[ID]
inner join dbo.[MKTSEGMENTWHITEMAILREFRESHPROCESS] on [MKTSEGMENTWHITEMAILREFRESHPROCESS].[SEGMENTID] = [MKTSEGMENTWHITEMAIL].[ID]
left outer join dbo.[MKTSEGMENTWHITEMAILCACHE] on [MKTSEGMENTWHITEMAILCACHE].[ID] = [MKTSEGMENTWHITEMAIL].[ID]
left outer join dbo.[MKTGROUPSEGMENTS] on [MKTSEGMENT].[ID] = [MKTGROUPSEGMENTS].[SEGMENTID]
left outer join dbo.[MKTSEGMENTGROUP] on [MKTGROUPSEGMENTS].[SEGMENTGROUPID] = [MKTSEGMENTGROUP].[ID]
left outer join dbo.[MKTSEGMENTCATEGORYCODE] on [MKTSEGMENTCATEGORYCODE].[ID] = [MKTSEGMENT].[SEGMENTCATEGORYCODEID]
left outer join dbo.[SITE] on [SITE].[ID] = [MKTSEGMENT].[SITEID]
where
(@SEGMENTID is null or [MKTSEGMENT].[ID] = @SEGMENTID)
and (@SOURCECODE is null or dbo.[UFN_MKTSOURCECODE_BUILDCODE]([MKTSEGMENTWHITEMAIL].[ID], null, null) like @SOURCECODE + '%')
and (@GROUPID is null or [MKTSEGMENTGROUP].[ID] = @GROUPID)
and (@SEGMENTCATEGORYCODEID is null or [MKTSEGMENT].[SEGMENTCATEGORYCODEID] = @SEGMENTCATEGORYCODEID)
and (@INACTIVEFILTER is null
or (@INACTIVEFILTER = 0 and [SEGMENTACTIVESTATUS].[ISACTIVE] = 1)
or (@INACTIVEFILTER = 1 and [SEGMENTACTIVESTATUS].[ISACTIVE] = 0))
and (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[MKTSEGMENT].[SITEID] or (SITEID is null and [MKTSEGMENT].[SITEID] is null)))
and (@SITEFILTERMODE = 0 or [MKTSEGMENT].[SITEID] in (select [SITEID] from dbo.[UFN_SITE_BUILDDATALISTSITEFILTER](@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED)))
order by [MKTSEGMENTGROUP].[NAME], [MKTGROUPSEGMENTS].[SEQUENCE], [MKTSEGMENT].[NAME];
return 0;