USP_SEARCHLIST_FACULTY

Search for a faculty member.

Parameters

Parameter Parameter Type Mode Description
@KEYNAME nvarchar(100) IN Last name
@FIRSTNAME nvarchar(100) IN First name
@LOOKUPID nvarchar(100) IN Lookup ID
@CHECKNICKNAME bit IN Check nickname
@CHECKALTERNATELOOKUPIDS bit IN Check alternate lookup IDs
@INCLUDEDECEASED bit IN Include deceased
@INCLUDEINACTIVE bit IN Include inactive
@MAXROWS smallint IN Input parameter indicating the maximum number of rows to return.
@ONLYADVISORS bit IN Only Advisors
@ACADEMICCATALOGDEPARTMENTID uniqueidentifier IN Department

Definition

Copy


            CREATE procedure dbo.USP_SEARCHLIST_FACULTY
            (
                @KEYNAME nvarchar(100) = null,
                @FIRSTNAME nvarchar(100) = null,
                @LOOKUPID nvarchar(100) = null,
                @CHECKNICKNAME bit = null,
                @CHECKALTERNATELOOKUPIDS bit = null,
                @INCLUDEDECEASED bit = null,
                @INCLUDEINACTIVE bit = null,
                @MAXROWS smallint = 500,
                @ONLYADVISORS bit = 0,
                @ACADEMICCATALOGDEPARTMENTID uniqueidentifier = null
            )
            as
                set nocount on;

                select distinct top(@MAXROWS
                    dbo.CONSTITUENT.ID,
                    dbo.CONSTITUENT.LOOKUPID,
                    dbo.CONSTITUENT.NAME,

                    -- list of departments

                   (select stuff((select '; ' + dbo.UFN_ACADEMICCATALOGDEPARTMENT_GETUSERIDFORDUPESCHOOL(ACADEMICCATALOGDEPARTMENT.ID)
                       from dbo.FACULTYACADEMICCATALOGDEPARTMENT
                       join dbo.ACADEMICCATALOGDEPARTMENT on ACADEMICCATALOGDEPARTMENT.ID = FACULTYACADEMICCATALOGDEPARTMENT.ACADEMICCATALOGDEPARTMENTID
                       where FACULTYACADEMICCATALOGDEPARTMENT.FACULTYID = CONSTITUENT.ID
                       order by ACADEMICCATALOGDEPARTMENT.USERID
                       for xml path(''), type).value('.', 'nvarchar(max)'), 1, 2, '')) AS DEPARTMENTS

                from dbo.CONSTITUENT with (nolock)

                inner join dbo.FACULTY on FACULTY.ID = CONSTITUENT.ID
                left join dbo.DECEASEDCONSTITUENT on CONSTITUENT.ID = DECEASEDCONSTITUENT.ID
                left join dbo.FACULTYACADEMICCATALOGDEPARTMENT on FACULTYACADEMICCATALOGDEPARTMENT.FACULTYID = FACULTY.ID

                where
                    (@KEYNAME is null or (CONSTITUENT.KEYNAME like @KEYNAME + '%')) and
                    (
                        (@FIRSTNAME is null or (CONSTITUENT.FIRSTNAME like @FIRSTNAME + '%')) or
                        (@CHECKNICKNAME <> 0 and CONSTITUENT.NICKNAME like @FIRSTNAME + '%')
                    ) and
                    (@LOOKUPID is null or (CONSTITUENT.LOOKUPID like @LOOKUPID + '%' or
                        (@CHECKALTERNATELOOKUPIDS <> 0 and exists (
                            select id from ALTERNATELOOKUPID with (nolock)
                            where CONSTITUENTID = CONSTITUENT.ID and
                                ALTERNATELOOKUPID like @LOOKUPID + '%'
                        ))
                    ))  and
                    ((@INCLUDEDECEASED <> 0) or (DECEASEDCONSTITUENT.ID is null)) and
                    ((@INCLUDEINACTIVE <> 0) or (CONSTITUENT.ISINACTIVE = 0)) and
                    ((@ONLYADVISORS = 0) or (ISADVISOR = 1)) and
                    ((@ACADEMICCATALOGDEPARTMENTID is null) or (@ACADEMICCATALOGDEPARTMENTID = FACULTYACADEMICCATALOGDEPARTMENT.ACADEMICCATALOGDEPARTMENTID))

                order by CONSTITUENT.NAME, CONSTITUENT.LOOKUPID