UFN_FAFADDRESSBOOK_COMPANYMEMBERS_LIST

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@EVENTID uniqueidentifier IN
@CLIENTUSERID int IN

Definition

Copy



CREATE FUNCTION [dbo].[UFN_FAFADDRESSBOOK_COMPANYMEMBERS_LIST]
(
     @EVENTID        AS uniqueidentifier
    ,@CLIENTUSERID    AS INT
)
RETURNS TABLE
AS
RETURN
    WITH 
    -- Client user linked constituent id

    [CLIENTUSERCONSITUENTID]
    AS(
        SELECT    C.ID AS CONSTITUENTID, C.DATEADDED
        FROM    dbo.ClientUsers cu  (NOLOCK)
        INNER    JOIN dbo.BackOfficeSystemUsers bosu (NOLOCK)
        ON        cu.ID = bosu.ClientUsersID AND bosu.[current] = 1 AND cu.Deleted = 0  
        INNER    JOIN dbo.BackOfficeSystemPeople bosp (NOLOCK)
        ON        bosp.ID = bosu.BackofficePeopleID AND bosp.BackOfficeSystemID = 0  
        INNER    JOIN dbo.CONSTITUENT C (NOLOCK)
        ON        bosp.BackofficeRecordID = C.SEQUENCEID    
        WHERE  cu.ID = @CLIENTUSERID
    )
    ,[CURRENTEVENTEAMMEMBERS]
    AS
    (
        SELECT    
             TF.CONSTITUENTID
            ,TM.TEAMFUNDRAISINGTEAMID AS TEAMID, TM.DATEADDED, TFTC.CONSTITUENTID AS TEAMCAPTAINCONSTITUENTID
        FROM    [dbo].[TEAMFUNDRAISINGTEAMMEMBER] TM (NOLOCK)
        JOIN    [dbo].[TEAMFUNDRAISER] TF     (NOLOCK)                ON    TM.TEAMFUNDRAISERID = TF.ID
        JOIN    [dbo].[TEAMFUNDRAISINGTEAM] T (NOLOCK)                ON    TM.TEAMFUNDRAISINGTEAMID = T.ID        AND        TF.APPEALID = T.APPEALID
    JOIN     [dbo].[TEAMEXTENSION] TE          (NOLOCK)                  ON  T.ID= TE.TEAMFUNDRAISINGTEAMID    AND TE.TYPECODE= 2
        JOIN    [dbo].[EVENT] E               (NOLOCK)                ON  TF.APPEALID = E.APPEALID
        LEFT JOIN [dbo].[TEAMFUNDRAISINGTEAMCAPTAIN] TFTC (NOLOCK)  ON  TFTC.TEAMFUNDRAISINGTEAMID=T.ID AND TFTC.CONSTITUENTID = TF.CONSTITUENTID
        WHERE    E.ID = @EVENTID
    )
    ,[PREVIOUSEVENTEAMMEMBERS]
    AS
    (
        SELECT    
             TF.CONSTITUENTID
            ,TM.TEAMFUNDRAISINGTEAMID AS TEAMID, TM.DATEADDED, TFTC.CONSTITUENTID AS TEAMCAPTAINCONSTITUENTID
        FROM    [dbo].[TEAMFUNDRAISINGTEAMMEMBER] TM (NOLOCK)
        JOIN    [dbo].[TEAMFUNDRAISER] TF  (NOLOCK)            ON    TM.TEAMFUNDRAISERID = TF.ID
        JOIN    [dbo].[TEAMFUNDRAISINGTEAM] T (NOLOCK)        ON    TM.TEAMFUNDRAISINGTEAMID = T.ID AND        TF.APPEALID                 = T.APPEALID
    JOIN     [dbo].[TEAMEXTENSION] TE          (NOLOCK)      ON  T.ID= TE.TEAMFUNDRAISINGTEAMID    AND TE.TYPECODE= 2
        JOIN    [dbo].[EVENT] E (NOLOCK)                      ON    TF.APPEALID = E.APPEALID
        JOIN    [dbo].[EVENTEXTENSION] EE (NOLOCK)            ON    EE.PRIORYEAREVENTID    = E.ID
        LEFT JOIN [dbo].[TEAMFUNDRAISINGTEAMCAPTAIN] TFTC (NOLOCK)  ON TFTC.TEAMFUNDRAISINGTEAMID=T.ID AND TFTC.CONSTITUENTID = TF.CONSTITUENTID
        WHERE    EE.EVENTID = @EVENTID
    )
    -- Client user team id

    ,[CLIENTUSERTEAM]
    AS
    (
        SELECT    TEAMID
        FROM    [CURRENTEVENTEAMMEMBERS] T
        JOIN    [CLIENTUSERCONSITUENTID] C
        ON        T.CONSTITUENTID = C.CONSTITUENTID
    )
    -- FAF Address book contact related list

    ,[FAFADDRESSBOOKCONTACTS]
    AS
    (
        SELECT   A.ID AS CONTACTID
                ,A.FIRSTNAME
                ,A.LASTNAME
                ,A.CONSTITUENTID
                ,CASE 
                    WHEN CE.CONSTITUENTID IS NOT NULL THEN 'A'
                    WHEN PE.CONSTITUENTID IS NOT NULL THEN 'P'
                END AS [STATUS]
                ,CASE
                    WHEN CE.CONSTITUENTID IS NOT NULL THEN CE.DATEADDED
                    WHEN PE.CONSTITUENTID IS NOT NULL THEN PE.DATEADDED
                END AS [DATEADDED]

                ,CASE
                    WHEN CE.CONSTITUENTID=CE.TEAMCAPTAINCONSTITUENTID THEN 'y'
                    WHEN PE.CONSTITUENTID=PE.TEAMCAPTAINCONSTITUENTID THEN 'y'
                END AS [ISTEAMCAPTAIN] 
        ,CASE 
                    WHEN CE.TEAMCAPTAINCONSTITUENTID  IS NOT NULL THEN 'A'
                    WHEN PE.TEAMCAPTAINCONSTITUENTID  IS NOT NULL THEN 'P'
                END AS [TCSTATUS]

        FROM    [dbo].[ADDRESSBOOKFAF] A (NOLOCK)
        LEFT    JOIN [CURRENTEVENTEAMMEMBERS] CE        
        ON        A.CONSTITUENTID = CE.CONSTITUENTID
        --JOIN    [CLIENTUSERTEAM] CT

        --ON        CT.TEAMID = CE.TEAMID

        LEFT    JOIN [PREVIOUSEVENTEAMMEMBERS] PE        
        ON        A.CONSTITUENTID = PE.CONSTITUENTID
        --AND        CE.TEAMID = PE.TEAMID

        WHERE   A.CLIENTUSERSID in (select CLIENTUSERID from dbo.UFN_CLIENTUSERS_GETIDLISTBYCURRENTCLIENTUSERID(@CLIENTUSERID)) 
    AND 
    (
        CE.CONSTITUENTID IS NOT NULL OR PE.CONSTITUENTID IS NOT NULL
    )
    )
    SELECT * FROM  [FAFADDRESSBOOKCONTACTS];