USP_DATALIST_MKTCONTACT
List of all contacts in the system.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@SECURITYFEATUREID | uniqueidentifier | IN | |
@SECURITYFEATURETYPE | tinyint | IN | |
@RECIPROCALTYPECODEID | uniqueidentifier | IN | |
@PRIMARYONLY | bit | IN | |
@SITEFILTERMODE | tinyint | IN | |
@SITESSELECTED | xml | IN |
Definition
Copy
CREATE procedure [dbo].[USP_DATALIST_MKTCONTACT]
(
@CURRENTAPPUSERID uniqueidentifier = null,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = 0,
@RECIPROCALTYPECODEID uniqueidentifier = null,
@PRIMARYONLY bit = 0,
@SITEFILTERMODE tinyint = 0,
@SITESSELECTED xml = null
)
as
set nocount on;
select
[RELATIONSHIP].[RECIPROCALCONSTITUENTID] as [CONTACTID],
[RELATIONSHIP].[ID],
[CONTACT_NAME].[NAME] as [CONTACTNAME],
[VENDOR_NAME].[NAME] as [VENDORNAME],
[RELATIONSHIPTYPECODE].[DESCRIPTION] as [RELATIONSHIP],
isnull([CONTACTTYPECODE].[DESCRIPTION], '') as [CONTACTTYPE],
[RELATIONSHIP].[ISPRIMARYCONTACT],
dbo.[UFN_RELATIONSHIPJOBINFO_GETCURRENTJOBTITLE]([RELATIONSHIP].[ID]) as [POSITION],
(select count([R].[ID])
from dbo.[RELATIONSHIP] as [R]
inner join dbo.[VENDOR] as [V] on [V].[ID] = [R].[RELATIONSHIPCONSTITUENTID]
where [R].[ISCONTACT] = 1
and [R].[RECIPROCALCONSTITUENTID] = [RELATIONSHIP].[RECIPROCALCONSTITUENTID]) as [RELATIONSHIPCOUNT],
cast(0 as bit) as [USERWILLHAVEERRORONCONTACTPAGE], -- unused field, leave in for backwards compatibility
case when dbo.[UFN_APPUSER_ISSYSADMIN](@CURRENTAPPUSERID) = 1
then cast(1 as bit)
else
case when dbo.[UFN_SECURITY_APPUSER_GRANTED_DATALIST_IN_SYSTEMROLE](@CURRENTAPPUSERID, '5DF92861-001A-4B67-800F-D598F9CF334B') = 1 -- ContactInformation.DataList.xml
then
case when exists (select top 1 1
from dbo.[UFN_SITEID_MAPFROM_CONSTITUENTID]([CONTACT].[ID])
where dbo.[UFN_SECURITY_APPUSER_GRANTED_DATALIST_FORSITE](@CURRENTAPPUSERID, '5DF92861-001A-4B67-800F-D598F9CF334B', [SITEID]) = 1) -- ContactInformation.DataList.xml
then cast(1 as bit)
else cast(0 as bit)
end
else cast(0 as bit)
end
end as [USERHASFULLRIGHTSTOCONTACT],
stuff((select ', ' + [SITE].[NAME]
from dbo.[SITE]
inner join dbo.[CONSTITUENTSITE] on [CONSTITUENTSITE].[SITEID] = [SITE].[ID]
where [CONSTITUENTSITE].[CONSTITUENTID] = [CONTACT].[ID]
order by [SITE].[NAME]
for xml path(''), type
).value('.', 'varchar(max)') , 1, 2, '') as [SITES]
from dbo.[RELATIONSHIP]
inner join dbo.[RELATIONSHIPTYPECODE] on [RELATIONSHIPTYPECODE].[ID] = [RELATIONSHIP].[RECIPROCALTYPECODEID]
left outer join dbo.[CONTACTTYPECODE] on [CONTACTTYPECODE].[ID] = [RELATIONSHIP].[CONTACTTYPECODEID]
inner join dbo.[CONSTITUENT] as [CONTACT] on [CONTACT].[ID] = [RELATIONSHIP].[RECIPROCALCONSTITUENTID]
inner join dbo.[CONSTITUENT] as [VENDOR] on [VENDOR].[ID] = [RELATIONSHIP].[RELATIONSHIPCONSTITUENTID]
inner join dbo.[VENDOR] as [MKTVENDOR] on [MKTVENDOR].[ID] = [RELATIONSHIP].[RELATIONSHIPCONSTITUENTID]
outer apply dbo.[UFN_CONSTITUENT_DISPLAYNAME]([CONTACT].[ID]) as [CONTACT_NAME]
outer apply dbo.[UFN_CONSTITUENT_DISPLAYNAME]([VENDOR].[ID]) as [VENDOR_NAME]
where [RELATIONSHIP].[ISCONTACT] = 1
and (@RECIPROCALTYPECODEID is null or [RELATIONSHIP].[RECIPROCALTYPECODEID] = @RECIPROCALTYPECODEID)
and (@PRIMARYONLY = 0 or [RELATIONSHIP].[ISPRIMARYCONTACT] = @PRIMARYONLY)
and exists (select top 1 1
from dbo.[CONSTITUENT] as [C]
left join dbo.[CONSTITUENTSITE] on [CONSTITUENTSITE].[CONSTITUENTID] = [C].[ID]
where [C].[ID] = [CONTACT].[ID]
and
(
dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
or
exists(
select 1
from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID, @SECURITYFEATUREID, @SECURITYFEATURETYPE)
where
SITEID=CONSTITUENTSITE.SITEID
or
(
SITEID is null and CONSTITUENTSITE.SITEID is null
)
)
))
and exists (select top 1 1
from dbo.[CONSTITUENT] as [C]
left join dbo.[CONSTITUENTSITE] on [CONSTITUENTSITE].[CONSTITUENTID] = [C].[ID]
where [C].[ID] = [VENDOR].[ID]
and
(
dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
or
exists(
select 1
from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID, @SECURITYFEATUREID, @SECURITYFEATURETYPE)
where
SITEID=CONSTITUENTSITE.SITEID
or
(
SITEID is null and CONSTITUENTSITE.SITEID is null
)
)
))
and (@SITEFILTERMODE = 0
or exists (select top 1 1 from dbo.[CONSTITUENTSITE] with (nolock)
inner join dbo.[UFN_SITE_BUILDDATALISTSITEFILTER](@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) as [SITES] on [SITES].[SITEID] = [CONSTITUENTSITE].[SITEID]
where [CONSTITUENTSITE].[CONSTITUENTID] = [CONTACT].[ID]))
order by [CONTACT].[KEYNAME], [CONTACT].[FIRSTNAME], [CONTACT].[MIDDLENAME], [VENDOR].[KEYNAME], [RELATIONSHIPTYPECODE].[DESCRIPTION];
return 0;