UFN_QUERY_RESEARCHGROUPSBYRESEARCHGROUP
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@FAVORITESONLY | bit | IN | |
@MYLISTSONLY | bit | IN | |
@ACCESSEDONLY | bit | IN | |
@SITEFILTERMODE | tinyint | IN | |
@SITESSELECTED | xml | IN | |
@SECURITYFEATUREID | uniqueidentifier | IN | |
@SECURITYFEATURETYPE | tinyint | IN |
Definition
Copy
CREATE function [dbo].[UFN_QUERY_RESEARCHGROUPSBYRESEARCHGROUP]
(
@CURRENTAPPUSERID uniqueidentifier = null,
@FAVORITESONLY bit = 0,
@MYLISTSONLY bit = 0,
@ACCESSEDONLY bit = 0,
@SITEFILTERMODE tinyint = 0,
@SITESSELECTED xml = null,
@SECURITYFEATUREID uniqueidentifier = 'c026c5ca-caa5-4c5d-9c26-0f55cae36a3a',
@SECURITYFEATURETYPE tinyint = 10
)
returns table
as
return
select
RG.ID as ID,
dbo.UFN_RESEARCHGROUP_USERCANMODIFY(RG.ID, @CURRENTAPPUSERID) as USERCANMODIFY,
case coalesce(FAV.RESEARCHGROUPID,'00000000-0000-0000-0000-000000000000')
when '00000000-0000-0000-0000-000000000000' then 0 else 1 end as FAVORITEBIT, --Favorites
case coalesce(FAV.RESEARCHGROUPID,'00000000-0000-0000-0000-000000000000')
when '00000000-0000-0000-0000-000000000000' then 'catalog:Blackbaud.AppFx.ProspectResearch.Catalog.dll,Blackbaud.AppFx.ProspectResearch.Catalog.favorites_gray_star_16.png'
else 'catalog:Blackbaud.AppFx.ProspectResearch.Catalog.dll,Blackbaud.AppFx.ProspectResearch.Catalog.favorites_blue_star_16.png'
end as FAVORITEPIC, --Favorites
RG.NAME as NAME,--List name
RG.NUMMEMBERS as RECORDS,--Records
RG.DESCRIPTION as DESCRIPTION, --Description
AU.USERNAME as OWNER,--Owner
dbo.UFN_RESEARCHGROUP_LASTWEALTHPOINTUPDATE(RG.ID) as LASTWEALTHPOINTUPDATE, --Last screening date
CA.USERNAME as ADDEDBY,--Added by
CAT.DESCRIPTION as CATEGORY,--Category
RG.DATEADDED as DATEADDED,--Date added
FUN.ID as FUNDRAISERID,
FUN.NAME as FUNDRAISERNAME, --Fundraiser
RG.LASTRE7SYNC, --Last RE7 sync date
RG.ALLOWREFRESH,
case when RG.NUMMEMBERS <= 500 and RG.NUMMEMBERS > 0 then 1 ELSE 0 end as CANASSIGNPROSPECTMANAGER,
case when (exists(SELECT top 1 1 FROM dbo.RESEARCHGROUPMEMBER RGM
inner join dbo.RE7INTEGRATIONCONSTITUENTMAP RE7MAP on RE7MAP.ID = RGM.CONSTITUENTID
where RGM.RESEARCHGROUPID = RG.ID)) then 1 else 0 end as ENABLESYNCRE7,
dbo.UFN_MAPPING_BUILDCONTEXTRECORDID(MAPENTITY.ID,RG.ID,null) as MAPCONTEXTID,
RG.LASTREFRESH,
VISIT.DATEACCESSED as LASTACCESSED,
(select
dbo.UDA_BUILDLIST(SITE.NAME)
FROM
dbo.SITE
inner join dbo.RESEARCHGROUPSITE ON RESEARCHGROUPSITE.SITEID = SITE.ID
where
RESEARCHGROUPSITE.RESEARCHGROUPID = RG.ID
) as SITES
--Primary Manager
--Researcher
from
dbo.RESEARCHGROUP RG
left join
dbo.APPUSER AU on AU.ID = RG.OWNERID
left join
dbo.CHANGEAGENT CA on CA.ID = RG.ADDEDBYID
left join
dbo.RESEARCHGROUPCATEGORYCODE CAT on CAT.ID = RG.CATEGORYCODEID
left join
dbo.RESEARCHGROUPFAVORITE FAV on FAV.RESEARCHGROUPID = RG.ID and FAV.APPUSERID = @CURRENTAPPUSERID
left join
dbo.CONSTITUENT FUN on FUN.ID = RG.FUNDRAISERID
left join
dbo.RESEARCHGROUPLASTVISITED VISIT on RG.ID = VISIT.RESEARCHGROUPID and VISIT.APPUSERID = @CURRENTAPPUSERID
left join
(select RESEARCHGROUPID, MAX(DATERETRIEVED) as DATERETRIEVED
from dbo.WPSEARCHHISTORY
where RESEARCHGROUPID is not null
group by RESEARCHGROUPID) SH on RG.ID = SH.RESEARCHGROUPID
outer apply
(select case when dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('6f77d512-d0d1-444f-9b46-b8603a6fe5f1')=1
then N'20F0E455-384C-4E63-B3C8-DAA6A238AD7F' else N'065A6FAB-669C-4032-B616-D57254F340AE' end as ID ) as MAPENTITY
where (isnull(@FAVORITESONLY, 0) = 0 or FAV.RESEARCHGROUPID is not null)
and (isnull(@MYLISTSONLY, 0) = 0 or RG.OWNERID = @CURRENTAPPUSERID)
and dbo.UFN_RESEARCHGROUP_USERCANACCESS(RG.ID, @CURRENTAPPUSERID) = 1
and (isnull(@ACCESSEDONLY, 0) = 0 or VISIT.RESEARCHGROUPID is not null)
and dbo.UFN_RESEARCHGROUP_USERHASSITEACCESS(RG.ID,@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) = 1
and
(--Apply user-defined site filtering
@SITEFILTERMODE = 0
or
exists (select ID from dbo.RESEARCHGROUPSITE RGS
inner join dbo.UFN_SITE_BUILDDATALISTSITEFILTER(@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) S on S.SITEID = RGS.SITEID
where RGS.RESEARCHGROUPID = RG.ID)
)