USP_SEARCHLIST_MKTMAILINGHEIRARCHY

Search for activated marketing efforts through hierarchy.

Parameters

Parameter Parameter Type Mode Description
@NAME nvarchar(max) IN Name
@PLAN bit IN Marketing Plans
@APPEAL bit IN Appeals
@MAILING bit IN Marketing efforts
@MAXROWS smallint IN Input parameter indicating the maximum number of rows to return.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@SITEID uniqueidentifier IN Site

Definition

Copy


CREATE procedure dbo.USP_SEARCHLIST_MKTMAILINGHEIRARCHY
(
  @NAME nvarchar(max) = null,
  @PLAN bit = 1,
  @APPEAL bit = 1,
  @MAILING bit = 1,
  @MAXROWS smallint = 500,
  @CURRENTAPPUSERID uniqueidentifier = null,
  @SITEID uniqueidentifier = null
)
as
  set nocount on;

set @NAME = ('%' + @NAME + '%');

with [PLANS]([ID], [HIERARCHY], [IDTREE], [SITEID]) as
(
  select 
    [MKTMARKETINGPLANITEM].[ID], 
    convert(nvarchar(max), [MKTMARKETINGPLANITEM].[NAME]) as [HIERARCHY], 
    convert(nvarchar(max), [MKTMARKETINGPLANITEM].[ID]) as [IDTREE],
    [MKTMARKETINGPLAN].[SITEID]
  from 
    dbo.[MKTMARKETINGPLANITEM]
    inner join dbo.[MKTMARKETINGPLAN] on [MKTMARKETINGPLAN].[ID] = [MKTMARKETINGPLANITEM].[MARKETINGPLANID]
  where 
    [MKTMARKETINGPLANITEM].[PARENTMARKETINGPLANITEMID] is null
    and dbo.[UFN_SITEALLOWEDFORUSER](@CURRENTAPPUSERID, [MKTMARKETINGPLAN].[SITEID]) = 1
  union all
  select 
    [MKTMARKETINGPLANITEM].[ID], 
    convert(nvarchar(max),[PLANS].[HIERARCHY] + '\' + [MKTMARKETINGPLANITEM].[NAME]) as [HIERARCHY], 
    convert(nvarchar(max),[PLANS].[IDTREE] + '\' + convert(nvarchar(36),[MKTMARKETINGPLANITEM].[ID])),
    [MKTMARKETINGPLAN].[SITEID]
  from 
    dbo.[MKTMARKETINGPLANITEM]
    inner join [PLANS] on [MKTMARKETINGPLANITEM].[PARENTMARKETINGPLANITEMID] = [PLANS].[ID]
    inner join dbo.[MKTMARKETINGPLAN] on [MKTMARKETINGPLAN].[ID] = [MKTMARKETINGPLANITEM].[MARKETINGPLANID]
  where
    dbo.[UFN_SITEALLOWEDFORUSER](@CURRENTAPPUSERID, [MKTMARKETINGPLAN].[SITEID]) = 1
)
select [ID], [HIERARCHY], [TYPE], [SITE], [SITEID]
from (
  select 
    'PLANITEM|' + convert(nvarchar(36),[P1].[ID]) as [ID], 
    [P1].[HIERARCHY],
    'Marketing plan' as [TYPE],
    dbo.[UFN_TRANSLATIONFUNCTION_SITE_GETNAME]([P1].[SITEID]) as [SITE],
    [P1].[SITEID]
  from [PLANS] as [P1]
  where [P1].[ID] in 
    (select 
       [P1].[ID] 
     from 
       [PLANS] [P2] 
     where 
       [P2].[ID] in (select [MARKETINGPLANITEMID] from dbo.[MKTSEGMENTATION] where [MARKETINGPLANITEMID] is not null and [ACTIVE] = 1) 
       and charindex(convert(varchar(36),[P1].[ID]),[P2].[IDTREE]) > 0
    ) 
  and @PLAN = 1

  union all

  select 
    'MARKETING EFFORT|' + convert(nvarchar(36),[MKTSEGMENTATION].[ID]), 
    convert(nvarchar(max),[MKTSEGMENTATIONACTIVATE].[APPEALDESCRIPTION] + '\' + [MKTSEGMENTATION].[NAME]),
    'Marketing Effort',
    dbo.[UFN_TRANSLATIONFUNCTION_SITE_GETNAME]([MKTSEGMENTATION].[SITEID]) as [SITE],
    [MKTSEGMENTATION].[SITEID]
  from dbo.[MKTSEGMENTATIONACTIVATE]
  inner join dbo.[MKTSEGMENTATION] on [MKTSEGMENTATIONACTIVATE].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
  where @MAILING = 1
  and [MKTSEGMENTATION].[MAILINGTYPECODE] <> 4
  and [MKTSEGMENTATION].[ACTIVE] = 1
  and dbo.[UFN_SITEALLOWEDFORUSER](@CURRENTAPPUSERID, [MKTSEGMENTATION].[SITEID]) = 1
  and [MKTSEGMENTATION].[COMMUNICATIONTYPECODE] = 0

  union all

  select distinct 
    'APPEAL|' + [MKTSEGMENTATIONACTIVATE].[APPEALID],
    [MKTSEGMENTATIONACTIVATE].[APPEALDESCRIPTION],
    'Appeal',
    dbo.UFN_TRANSLATIONFUNCTION_SITE_GETNAME([MKTSEGMENTATION].[SITEID]) as [SITE],
    [MKTSEGMENTATION].[SITEID]
  from dbo.[MKTSEGMENTATIONACTIVATE]
  inner join dbo.[MKTSEGMENTATION] on [MKTSEGMENTATION].[ID] = [MKTSEGMENTATIONACTIVATE].[SEGMENTATIONID]
  where @APPEAL = 1
  and [MKTSEGMENTATION].[MAILINGTYPECODE] <> 4
  and [MKTSEGMENTATION].[ACTIVE] = 1
  and dbo.[UFN_SITEALLOWEDFORUSER](@CURRENTAPPUSERID, [MKTSEGMENTATION].[SITEID]) = 1
  and [MKTSEGMENTATION].[COMMUNICATIONTYPECODE] = 0
) as [RESULT]
where ([HIERARCHY] like @NAME  or @NAME is null)
  and ([SITEID] = @SITEID or @SITEID is null)
order by [HIERARCHY];

  return 0;