UFN_DESIGNATION_BUILDNAME_BULK

Returns the names for designation records in the system.

Return

Return Type
table

Definition

Copy


CREATE function dbo.UFN_DESIGNATION_BUILDNAME_BULK ()
returns table
as
return (
    select DESIGNATION.ID
      ,convert(nvarchar(512), case 
          when (LEVEL5.[NAME] is not null)
            then isnull(LEVEL1.[NAME], '<Unspecified>') + ' \ ' + isnull(LEVEL2.[NAME], '<Unspecified>') + ' \ ' + isnull(LEVEL3.[NAME], '<Unspecified>') + ' \ ' + isnull(LEVEL4.[NAME], '<Unspecified>') + ' \ ' + LEVEL5.[NAME]
          when (LEVEL4.[NAME] is not null)
            then isnull(LEVEL1.[NAME], '<Unspecified>') + ' \ ' + isnull(LEVEL2.[NAME], '<Unspecified>') + ' \ ' + isnull(LEVEL3.[NAME], '<Unspecified>') + ' \ ' + LEVEL4.[NAME]
          when (LEVEL3.[NAME] is not null)
            then isnull(LEVEL1.[NAME], '<Unspecified>') + ' \ ' + isnull(LEVEL2.[NAME], '<Unspecified>') + ' \ ' + LEVEL3.[NAME]
          when (LEVEL2.[NAME] is not null)
            then isnull(LEVEL1.[NAME], '<Unspecified>') + ' \ ' + LEVEL2.[NAME]
          else LEVEL1.[NAME]
          end) as [NAME]
      ,case 
        when (DESIGNATIONLEVEL5ID is not null)
          then DESIGNATIONLEVEL4ID
        when (DESIGNATIONLEVEL4ID is not null)
          then DESIGNATIONLEVEL3ID
        when (DESIGNATIONLEVEL3ID is not null)
          then DESIGNATIONLEVEL2ID
        when (DESIGNATIONLEVEL2ID is not null)
          then DESIGNATIONLEVEL1ID
        else null
        end as PARENTDESIGNATIONLEVELID
      ,case 
        when (DESIGNATIONLEVEL5ID is not null)
          then COALESCE(CAST(DESIGNATIONLEVEL1ID as varchar(36)), '.') + COALESCE(CAST(DESIGNATIONLEVEL2ID as varchar(36)), '.') + COALESCE(CAST(DESIGNATIONLEVEL3ID as varchar(36)), '.') + COALESCE(CAST(DESIGNATIONLEVEL4ID as varchar(36)), '.') + COALESCE(CAST(DESIGNATIONLEVEL5ID as varchar(36)), '.')
        when (DESIGNATIONLEVEL4ID is not null)
          then COALESCE(CAST(DESIGNATIONLEVEL1ID as varchar(36)), '.') + COALESCE(CAST(DESIGNATIONLEVEL2ID as varchar(36)), '.') + COALESCE(CAST(DESIGNATIONLEVEL3ID as varchar(36)), '.') + COALESCE(CAST(DESIGNATIONLEVEL4ID as varchar(36)), '.')
        when (DESIGNATIONLEVEL3ID is not null)
          then COALESCE(CAST(DESIGNATIONLEVEL1ID as varchar(36)), '.') + COALESCE(CAST(DESIGNATIONLEVEL2ID as varchar(36)), '.') + COALESCE(CAST(DESIGNATIONLEVEL3ID as varchar(36)), '.')
        when (DESIGNATIONLEVEL2ID is not null)
          then COALESCE(CAST(DESIGNATIONLEVEL1ID as varchar(36)), '.') + COALESCE(CAST(DESIGNATIONLEVEL2ID as varchar(36)), '.')
        else COALESCE(CAST(DESIGNATIONLEVEL1ID as varchar(36)), '.')
        end as PATHID
      ,case 
        when (DESIGNATIONLEVEL5ID is not null)
          then COALESCE(CAST(DESIGNATIONLEVEL1ID as varchar(36)), '.') + COALESCE(CAST(DESIGNATIONLEVEL2ID as varchar(36)), '.') + COALESCE(CAST(DESIGNATIONLEVEL3ID as varchar(36)), '.') + COALESCE(CAST(DESIGNATIONLEVEL4ID as varchar(36)), '.')
        when (DESIGNATIONLEVEL4ID is not null)
          then COALESCE(CAST(DESIGNATIONLEVEL1ID as varchar(36)), '.') + COALESCE(CAST(DESIGNATIONLEVEL2ID as varchar(36)), '.') + COALESCE(CAST(DESIGNATIONLEVEL3ID as varchar(36)), '.')
        when (DESIGNATIONLEVEL3ID is not null)
          then COALESCE(CAST(DESIGNATIONLEVEL1ID as varchar(36)), '.') + COALESCE(CAST(DESIGNATIONLEVEL2ID as varchar(36)), '.')
        when (DESIGNATIONLEVEL2ID is not null)
          then COALESCE(CAST(DESIGNATIONLEVEL1ID as varchar(36)), '.')
        else null
        end as PARENTPATHID
      ,case 
        when (DESIGNATIONLEVEL5ID is not null)
          then 5
        when (DESIGNATIONLEVEL4ID is not null)
          then 4
        when (DESIGNATIONLEVEL3ID is not null)
          then 3
        when (DESIGNATIONLEVEL2ID is not null)
          then 2
        else 1
        end as level
      ,COALESCE(DESIGNATIONLEVEL5ID, DESIGNATIONLEVEL4ID, DESIGNATIONLEVEL3ID, DESIGNATIONLEVEL2ID, DESIGNATIONLEVEL1ID, null) DESIGNATIONLEVELID
      ,DESIGNATION.DESIGNATIONLEVELTYPEHIERARCHYITEMID
  ,DESIGNATION.ISREVENUEDESIGNATION
      ,case when DESIGNATION.SYSTEMGENERATED=1 then NULL else DESIGNATION.VANITYNAME end VANITYNAME
      ,DESIGNATION.DESIGNATIONLEVEL1ID ROOTDESIGNATIONLEVELID
      ,DESIGNATION.DESIGNATIONLEVEL1ID
      ,DESIGNATION.DESIGNATIONLEVEL2ID
      ,DESIGNATION.DESIGNATIONLEVEL3ID
      ,DESIGNATION.DESIGNATIONLEVEL4ID
      ,DESIGNATION.DESIGNATIONLEVEL5ID
      ,case when DESIGNATION.SYSTEMGENERATED=1 then NULL else DESIGNATION.USERID end USERID
      ,DESIGNATION.VSECATEGORYID
      ,DESIGNATION.VSESUBCATEGORYID
      ,
      --REVISIT is this logic valid for report codes?

      COALESCE(DESIGNATION.DESIGNATIONREPORT1CODEID, LEVEL5.DESIGNATIONREPORT1CODEID, LEVEL4.DESIGNATIONREPORT1CODEID, LEVEL3.DESIGNATIONREPORT1CODEID, LEVEL2.DESIGNATIONREPORT1CODEID, LEVEL1.DESIGNATIONREPORT1CODEID) as DESIGNATIONREPORT1CODEID
      ,COALESCE(DESIGNATION.DESIGNATIONREPORT2CODEID, LEVEL5.DESIGNATIONREPORT2CODEID, LEVEL4.DESIGNATIONREPORT2CODEID, LEVEL3.DESIGNATIONREPORT2CODEID, LEVEL2.DESIGNATIONREPORT2CODEID, LEVEL1.DESIGNATIONREPORT2CODEID) as DESIGNATIONREPORT2CODEID
      ,COALESCE(LEVEL5.SITEID, LEVEL4.SITEID, LEVEL3.SITEID, LEVEL2.SITEID, LEVEL1.SITEID) as DESIGNATIONLEVELSITEID
      ,DESIGNATION.DESIGNATIONUSECODEID
      ,DESIGNATION.ISACTIVE
      ,DESIGNATION.SYSTEMGENERATED
    from dbo.DESIGNATION
    left join dbo.DESIGNATIONLEVEL as LEVEL1 on DESIGNATION.DESIGNATIONLEVEL1ID = LEVEL1.ID
    left join dbo.DESIGNATIONLEVEL as LEVEL2 on DESIGNATION.DESIGNATIONLEVEL2ID = LEVEL2.ID
    left join dbo.DESIGNATIONLEVEL as LEVEL3 on DESIGNATION.DESIGNATIONLEVEL3ID = LEVEL3.ID
    left join dbo.DESIGNATIONLEVEL as LEVEL4 on DESIGNATION.DESIGNATIONLEVEL4ID = LEVEL4.ID
    left join dbo.DESIGNATIONLEVEL as LEVEL5 on DESIGNATION.DESIGNATIONLEVEL5ID = LEVEL5.ID
    )