UFN_CONSTITUENT_GETCURRENTCONTACTS

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@RELATIONSHIPCONSTITUENTID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@DATAFORMINSTANCEID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_CONSTITUENT_GETCURRENTCONTACTS
(
    @RELATIONSHIPCONSTITUENTID uniqueidentifier,
    @CURRENTAPPUSERID uniqueidentifier = null,
    @DATAFORMINSTANCEID uniqueidentifier = null
)
returns table
as
return
  -- This function serves the ConstituentSummaryOrganizationContactsTile.View.xml, which limits the number of records returned.

  -- If you change the number of records returned here, you must also update the tile's UIModel to allow one less than the new limit.

    select top 501
        RELATIONSHIP.ID,
        NF.NAME as CONTACTNAME,
        CONTACTTYPECODE.DESCRIPTION as CONTACTTYPE,
        dbo.UFN_PHONE_GETINTERNATIONALNUMBER(PHONE.COUNTRYID, PHONE.NUMBER) as PHONENUMBER,
        PHONE.DONOTCALL,
        PHONE.ISCONFIDENTIAL,
        EMAILADDRESS.EMAILADDRESS,
        EMAILADDRESS.DONOTEMAIL,
        RELATIONSHIP.ISPRIMARYCONTACT,
        CONSTITUENT.KEYNAME,
        CONSTITUENT.FIRSTNAME,
        case 
            when (SYSADMIN.ISSYSADMIN = 1) then 1
            when
            (
                (dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORCONSTIT(@CURRENTAPPUSERID, @DATAFORMINSTANCEID, RELATIONSHIP.RECIPROCALCONSTITUENTID) = 1)
                and exists 
                (
                    select 1 
                    from dbo.CONSTITUENT 
                    left join dbo.CONSTITUENTSITE on CONSTITUENTSITE.CONSTITUENTID = CONSTITUENT.ID
                    where CONSTITUENT.ID = RELATIONSHIP.RECIPROCALCONSTITUENTID 
                    and dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORSITE(@CURRENTAPPUSERID, @DATAFORMINSTANCEID, CONSTITUENTSITE.SITEID) = 1
                )
            )
            then 1 else 0
        end as USERHASPERMISSIONTOVIEWCONTACT,
        CONSTITUENT.ISINACTIVE as CONTACTISINACTIVE,
        case when DECEASEDCONSTITUENT.ID is null then 0 else 1 end as CONTACTISDECEASED
    from
        dbo.RELATIONSHIP
        inner join dbo.CONSTITUENT on RELATIONSHIP.RECIPROCALCONSTITUENTID = CONSTITUENT.ID
        cross apply dbo.UFN_CONSTITUENT_DISPLAYNAME(RELATIONSHIP.RECIPROCALCONSTITUENTID) NF
        left join dbo.CONTACTTYPECODE on RELATIONSHIP.CONTACTTYPECODEID = CONTACTTYPECODE.ID 
        left join dbo.PHONE on RELATIONSHIP.ID = PHONE.RELATIONSHIPID
        left join dbo.EMAILADDRESS on RELATIONSHIP.ID = EMAILADDRESS.RELATIONSHIPID
        left join dbo.DECEASEDCONSTITUENT on DECEASEDCONSTITUENT.ID = CONSTITUENT.ID
        outer apply (select dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) as ISSYSADMIN) SYSADMIN
    where 
        RELATIONSHIP.RELATIONSHIPCONSTITUENTID = @RELATIONSHIPCONSTITUENTID
        and RELATIONSHIP.ISCONTACT = 1
        and (RELATIONSHIP.STARTDATE is null or RELATIONSHIP.STARTDATE <= dbo.UFN_DATE_GETEARLIESTTIME(getdate()))
        and    (RELATIONSHIP.ENDDATE is null or RELATIONSHIP.ENDDATE >= dbo.UFN_DATE_GETEARLIESTTIME(getdate()))