USP_DATALIST_ORGANIZATIONHIERARCHY
Returns a list of positions in the organization hierarchy.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_ORGANIZATIONHIERARCHY
(
@CURRENTAPPUSERID uniqueidentifier
)
as
set nocount on;
declare @CURRENTDATE datetime = getdate();
declare @ORGANIZATIONNAME nvarchar(100) = dbo.UFN_INSTALLATIONINFO_GETINSTALLATIONNAME();
declare @ORGANIZATIONID uniqueidentifier = 'C090DCA2-F496-4C0D-8775-BD01B92C7948';
select
1 [ISROOT],
@ORGANIZATIONID [ID],
null [PARENTID],
0 [SEQUENCE],
1 [USERHASSITEACCESS],
1 [ISVACANT],
@ORGANIZATIONNAME [POSITION],
'' [POSITIONHOLDER],
'' [BUSINESSUNIT]
union all
select
0 [ISROOT],
ORGANIZATIONHIERARCHY.ID,
coalesce(ORGANIZATIONHIERARCHY.PARENTID, @ORGANIZATIONID),
ORGANIZATIONHIERARCHY.SEQUENCE,
dbo.UFN_SITEALLOWEDFORUSER(@CURRENTAPPUSERID, ORGANIZATIONPOSITION.SITEID) [USERHASSITEACCESS],
case when ORGANIZATIONPOSITIONHOLDER.ID is null then 1 else 0 end [ISVACANT],
ORGANIZATIONPOSITION.NAME [POSITION],
CONSTITUENT.NAME [POSITIONHOLDER],
dbo.UFN_BUSINESSUNITCODE_GETDESCRIPTION(ORGANIZATIONPOSITION.BUSINESSUNITCODEID) [BUSINESSUNIT]
from
dbo.ORGANIZATIONHIERARCHY
inner join
dbo.ORGANIZATIONPOSITION on ORGANIZATIONPOSITION.ID = ORGANIZATIONHIERARCHY.ID
left outer join
dbo.ORGANIZATIONPOSITIONHOLDER on ORGANIZATIONPOSITIONHOLDER.POSITIONID = ORGANIZATIONPOSITION.ID
left outer join
dbo.CONSTITUENT on CONSTITUENT.ID = ORGANIZATIONPOSITIONHOLDER.CONSTITUENTID
where
(
-- only grab the active position holder
(ORGANIZATIONPOSITIONHOLDER.DATETO is null) or
(
(ORGANIZATIONPOSITIONHOLDER.DATEFROM is null or ORGANIZATIONPOSITIONHOLDER.DATEFROM < @CURRENTDATE) and
(@CURRENTDATE <= ORGANIZATIONPOSITIONHOLDER.DATETO)
)
)