USP_DATALIST_CONSTITUENTINTERACTIONSDOCUMENTATION

This datalist returns all documentation for all of a constituent's interactions.

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@DOCUMENTATIONTYPECODE tinyint IN Documentation type
@TITLE nvarchar(50) IN Title
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@SITEFILTERMODE tinyint IN Sites
@SITESSELECTED xml IN
@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_CONSTITUENTINTERACTIONSDOCUMENTATION 
                (
                    @CONSTITUENTID uniqueidentifier = null,
                    @DOCUMENTATIONTYPECODE tinyint = null,
                    @TITLE nvarchar(50) = '',
                    @CURRENTAPPUSERID uniqueidentifier = null,
                    @SITEFILTERMODE tinyint = 0,
                    @SITESSELECTED xml = null,
                    @SECURITYFEATUREID uniqueidentifier = null,
                    @SECURITYFEATURETYPE tinyint = null
                )
                as
                    set nocount on;

                    select    
                        INTERACTIONNOTE.ID,
                        case when PROSPECTPLAN.ID is null
                            then 'FC892CA7-41AF-4F32-8D10-DAA1FDCB4A1D'
                            else '4EC56467-5BC9-4977-8B83-4FCD0AC3B9F9'
                        end as [VIEWFORMID],
                        INTERACTION.ID as INTERACTIONID,
                        INTERACTION.OBJECTIVE as INTERACTIONSUMMARY,
                        coalesce(PROSPECTPLAN.NAME, '') as PROSPECTPLANNAME,
                        0 as [DOCUMENTATIONTYPECODE],
                        null as [MEDIAURL],
                        null as [FILENAME],
                        null as [FILEFIELDID],
                        'Note' as [DOCUMENTATIONTYPE],
                        INTERACTIONNOTE.DATEENTERED,
                        INTERACTIONNOTETYPECODE.DESCRIPTION as [TYPE],
                        INTERACTIONNOTE.TITLE,
                        AUTHOR_NF.NAME,
                        coalesce(ADDEDBY_NF.NAME, APPUSER.USERNAME),
                        INTERACTION.ISINTERACTION  as [ISINTERACTION],
                        case when PROSPECTPLAN.ID is null
                            then 0
                            else 1
                        end as [ISSTEP]
                    from
                        dbo.INTERACTIONNOTE
                        inner join dbo.INTERACTION on INTERACTIONNOTE.INTERACTIONID = INTERACTION.ID
                        left join dbo.PROSPECTPLAN on INTERACTION.PROSPECTPLANID = PROSPECTPLAN.ID
                        left join dbo.INTERACTIONNOTETYPECODE on INTERACTIONNOTETYPECODE.ID = INTERACTIONNOTE.INTERACTIONNOTETYPECODEID
                        left join dbo.APPUSER on APPUSER.ID = INTERACTIONNOTE.ENTEREDBYAPPUSERID
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(APPUSER.CONSTITUENTID) ADDEDBY_NF
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(INTERACTIONNOTE.AUTHORID) AUTHOR_NF
                    where 
                        INTERACTION.CONSTITUENTID = @CONSTITUENTID and
                        (@DOCUMENTATIONTYPECODE is null or @DOCUMENTATIONTYPECODE = 0) and
                        (@TITLE = '' or INTERACTIONNOTE.TITLE like @TITLE + '%') and
                        (
                            select count(*
                            from dbo.UFN_SITEID_MAPFROM_INTERACTIONID(INTERACTION.ID) INTERACTIONSITE 
                            where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[INTERACTIONSITE].[SITEID] or (SITEID is null and [INTERACTIONSITE].[SITEID] is null)))
                        ) > 0 and
                        (
                            @SITEFILTERMODE = 0 or
                            (
                                INTERACTION.PROSPECTPLANID is null and
                                INTERACTION.ID in (
                                    select INTERACTIONSITE.INTERACTIONID
                                    from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) SITEFILTER
                                        inner join dbo.INTERACTIONSITE on INTERACTIONSITE.SITEID = SITEFILTER.SITEID
                                )
                            ) or
                            ( 
                                INTERACTION.PROSPECTPLANID is not null and
                                INTERACTION.PROSPECTPLANID in(
                                    select PROSPECTPLANSITE.PROSPECTPLANID
                                    from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) SITEFILTER
                                        inner join dbo.PROSPECTPLANSITE on PROSPECTPLANSITE.SITEID = SITEFILTER.SITEID
                                )
                            )
                        )

                    union all

                    select    
                        INTERACTIONMEDIALINK.ID,
                        case when PROSPECTPLAN.ID is null
                            then '7F956A38-C7BC-4FAA-B6B0-8618233268D6' 
                            else 'E7EB7C48-98D2-4EA3-8CB4-7305C3738592'
                        end as [VIEWFORMID],
                        INTERACTION.ID as INTERACTIONID,
                        INTERACTION.OBJECTIVE as INTERACTIONSUMMARY,
                        coalesce(PROSPECTPLAN.NAME, '') as PROSPECTPLANNAME,
                        1 as [DOCUMENTATIONTYPECODE],
                        INTERACTIONMEDIALINK.MEDIAURL,
                        null,
                        null,
                        'Media link' as [DOCUMENTATIONTYPE],
                        INTERACTIONMEDIALINK.DATEENTERED,
                        INTERACTIONMEDIALINKTYPECODE.DESCRIPTION as [TYPE],
                        INTERACTIONMEDIALINK.TITLE,
                        AUTHOR_NF.NAME,
                        coalesce(ADDEDBY_NF.NAME, APPUSER.USERNAME),
                        INTERACTION.ISINTERACTION  as [ISINTERACTION],
                        case when PROSPECTPLAN.ID is null
                            then 0
                            else 1
                        end as [ISSTEP]
                    from
                        dbo.INTERACTIONMEDIALINK
                        inner join dbo.INTERACTION on INTERACTIONMEDIALINK.INTERACTIONID = INTERACTION.ID
                        left join dbo.PROSPECTPLAN on INTERACTION.PROSPECTPLANID = PROSPECTPLAN.ID
                        left join dbo.INTERACTIONMEDIALINKTYPECODE on INTERACTIONMEDIALINKTYPECODE.ID = INTERACTIONMEDIALINK.INTERACTIONMEDIALINKTYPECODEID
                        left join dbo.APPUSER on APPUSER.ID = INTERACTIONMEDIALINK.ENTEREDBYAPPUSERID
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(APPUSER.CONSTITUENTID) ADDEDBY_NF
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(INTERACTIONMEDIALINK.AUTHORID) AUTHOR_NF
                    where 
                        INTERACTION.CONSTITUENTID = @CONSTITUENTID and
                        (@DOCUMENTATIONTYPECODE is null or @DOCUMENTATIONTYPECODE = 1) and
                        (@TITLE = '' or INTERACTIONMEDIALINK.TITLE like @TITLE + '%') and
                        (
                            select count(*
                            from dbo.UFN_SITEID_MAPFROM_INTERACTIONID(INTERACTION.ID) INTERACTIONSITE 
                            where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[INTERACTIONSITE].[SITEID] or (SITEID is null and [INTERACTIONSITE].[SITEID] is null)))
                        ) > 0 and
                        (
                            @SITEFILTERMODE = 0 or
                            (
                                INTERACTION.PROSPECTPLANID is null and
                                INTERACTION.ID in (
                                    select INTERACTIONSITE.INTERACTIONID
                                    from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) SITEFILTER
                                        inner join dbo.INTERACTIONSITE on INTERACTIONSITE.SITEID = SITEFILTER.SITEID
                                )
                            ) or
                            ( 
                                INTERACTION.PROSPECTPLANID is not null and
                                INTERACTION.PROSPECTPLANID in(
                                    select PROSPECTPLANSITE.PROSPECTPLANID
                                    from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) SITEFILTER
                                        inner join dbo.PROSPECTPLANSITE on PROSPECTPLANSITE.SITEID = SITEFILTER.SITEID
                                )
                            )
                        )

                    union all

                    select    
                        INTERACTIONATTACHMENT.ID,
                        case when PROSPECTPLAN.ID is null
                            then 'F1EE1C4A-7DA1-4EF1-9AD7-D8F8C7BEF250'
                            else '42BC386E-DAAB-4701-B29A-6BC90FB3894F'
                        end as [VIEWFORMID],
                        INTERACTION.ID as INTERACTIONID,
                        INTERACTION.OBJECTIVE as INTERACTIONSUMMARY,
                        coalesce(PROSPECTPLAN.NAME, '') as PROSPECTPLANNAME,
                        2 as [DOCUMENTATIONTYPECODE],
                        null,
                        INTERACTIONATTACHMENT.FILENAME,
                        'FILE',
                        'Attachment' as [DOCUMENTATIONTYPE],
                        INTERACTIONATTACHMENT.DATEENTERED,
                        INTERACTIONATTACHMENTTYPECODE.DESCRIPTION as [TYPE],
                        INTERACTIONATTACHMENT.TITLE,
                        AUTHOR_NF.NAME,
                        coalesce(ADDEDBY_NF.NAME, APPUSER.USERNAME),
                        INTERACTION.ISINTERACTION as [ISINTERACTION],
                        case when PROSPECTPLAN.ID is null
                            then 0
                            else 1
                        end as [ISSTEP]
                    from
                        dbo.INTERACTIONATTACHMENT
                        inner join dbo.INTERACTION on INTERACTIONATTACHMENT.INTERACTIONID = INTERACTION.ID
                        left join dbo.PROSPECTPLAN on INTERACTION.PROSPECTPLANID = PROSPECTPLAN.ID
                        left join dbo.INTERACTIONATTACHMENTTYPECODE on INTERACTIONATTACHMENTTYPECODE.ID = INTERACTIONATTACHMENT.INTERACTIONATTACHMENTTYPECODEID
                        left join dbo.APPUSER on APPUSER.ID = INTERACTIONATTACHMENT.ENTEREDBYAPPUSERID
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(APPUSER.CONSTITUENTID) ADDEDBY_NF
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(INTERACTIONATTACHMENT.AUTHORID) AUTHOR_NF
                    where 
                        INTERACTION.CONSTITUENTID = @CONSTITUENTID and
                        (@DOCUMENTATIONTYPECODE is null or @DOCUMENTATIONTYPECODE = 2) and
                        (@TITLE = '' or INTERACTIONATTACHMENT.TITLE like @TITLE + '%') and
                        (
                            select count(*
                            from dbo.UFN_SITEID_MAPFROM_INTERACTIONID(INTERACTION.ID) INTERACTIONSITE 
                            where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[INTERACTIONSITE].[SITEID] or (SITEID is null and [INTERACTIONSITE].[SITEID] is null)))
                        ) > 0 and
                        (
                            @SITEFILTERMODE = 0 or
                            (
                                INTERACTION.PROSPECTPLANID is null and
                                INTERACTION.ID in (
                                    select INTERACTIONSITE.INTERACTIONID
                                    from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) SITEFILTER
                                        inner join dbo.INTERACTIONSITE on INTERACTIONSITE.SITEID = SITEFILTER.SITEID
                                )
                            ) or
                            ( 
                                INTERACTION.PROSPECTPLANID is not null and
                                INTERACTION.PROSPECTPLANID in(
                                    select PROSPECTPLANSITE.PROSPECTPLANID
                                    from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED) SITEFILTER
                                        inner join dbo.PROSPECTPLANSITE on PROSPECTPLANSITE.SITEID = SITEFILTER.SITEID
                                )
                            )
                        )

                    order by
                        DATEENTERED desc;