UFN_PDACCOUNTSYSTEM_GETDEFAULTSYSTEMIDSFORUSER

Returns default accounting system ID for user.

Return

Return Type
uniqueidentifier

Parameters

Parameter Parameter Type Mode Description
@CURRENTAPPUSERID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_PDACCOUNTSYSTEM_GETDEFAULTSYSTEMIDSFORUSER
    (
        @CURRENTAPPUSERID uniqueidentifier
    )
    returns uniqueidentifier
    with execute as caller
    as begin
        declare @RESULT as uniqueidentifier = null
      if exists(select PDACCOUNTSYSTEMID from APPUSERACCOUNTSYSTEM T1 inner join UFN_PDACCOUNTSYSTEM_GETSYSTEMIDSFORUSER(@CURRENTAPPUSERID) T2 on T1.PDACCOUNTSYSTEMID = T2.ID where T1.APPUSERID = @CURRENTAPPUSERID)
        select @RESULT = PDACCOUNTSYSTEMID from APPUSERACCOUNTSYSTEM where APPUSERID = @CURRENTAPPUSERID  
      else
              select top 1 @RESULT = ID from 
              (
              select 
                  T1.ID as ID,T1.DATEADDED 
              from dbo.PDACCOUNTSYSTEM as T1
              inner join dbo.PDACCOUNTSYSTEMSITE as T2 on T1.ID = T2.PDACCOUNTSYSTEMID
              inner join dbo.UFN_SITESFORUSER(@CURRENTAPPUSERID) as T3 ON T3.SITEID=T2.SITEID
              where T1.ISBASICGL = 1
              union 
              select 
                  ID as ID,DATEADDED
              from dbo.PDACCOUNTSYSTEM
              where ISBASICGL = 1 and ISDEFAULT = 1 and (select count(*) from dbo.UFN_SITESFORUSER(@CURRENTAPPUSERID)) = 0
              union 
              select 
                  ID as ID,DATEADDED
              from dbo.PDACCOUNTSYSTEM
              where ISBASICGL = 1 and dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
              union 
              select 
                  ID as ID,DATEADDED
              from dbo.PDACCOUNTSYSTEM
              where ((select count(id) from SYSTEMROLEAPPUSER where SECURITYMODECODE = 0 and APPUSERID = @CURRENTAPPUSERID) > 0)        
                      )  AccountSystemTable order by DATEADDED

        return @RESULT
    end