UFN_CORPORATION_GETSUBSIDIARIES
Returns a table containing all Constituent ID's for corporate subsidiaries below the given constituent in the corporate structure.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ORGANIZATIONID | uniqueidentifier | IN | |
@INCLUDEROOT | bit | IN |
Definition
Copy
create function dbo.UFN_CORPORATION_GETSUBSIDIARIES
(
@ORGANIZATIONID uniqueidentifier,
@INCLUDEROOT bit = 0
)
returns @SUBSIDIARIES table (ID uniqueidentifier, DEPTH integer)
begin
declare @LOOPLIMIT integer = 255;
declare @LOOPCOUNTER integer = 0;
insert into @SUBSIDIARIES
(ID, DEPTH)
values
(@ORGANIZATIONID, 0);
set @LOOPCOUNTER = 0
while (select count(ID) from dbo.ORGANIZATIONDATA where PARENTCORPID in (select ID from @SUBSIDIARIES where DEPTH = @LOOPCOUNTER)) > 0 and @LOOPCOUNTER < @LOOPLIMIT
begin
insert into @SUBSIDIARIES
(ID, DEPTH)
select
ORGANIZATIONDATA.ID,
@LOOPCOUNTER + 1
from dbo.ORGANIZATIONDATA
where ORGANIZATIONDATA.PARENTCORPID in (select ID from @SUBSIDIARIES where DEPTH = @LOOPCOUNTER)
and not exists(select top 1 ID from @SUBSIDIARIES s where s.ID = ORGANIZATIONDATA.ID )
set @LOOPCOUNTER = @LOOPCOUNTER + 1
end
if @INCLUDEROOT = 0
delete @SUBSIDIARIES
where ID = @ORGANIZATIONID;
return;
end