UFN_BANKACCOUNT_PAYMENT_COMBINEACCOUNTCODE

Combine the account code with segments of an account

Return

Return Type
nvarchar(100)

Parameters

Parameter Parameter Type Mode Description
@GLACCOUNTID uniqueidentifier IN
@ACCOUNTCODE nvarchar(30) IN

Definition

Copy


CREATE function dbo.UFN_BANKACCOUNT_PAYMENT_COMBINEACCOUNTCODE
(
  @GLACCOUNTID uniqueidentifier,
  @ACCOUNTCODE nvarchar(30)
)
returns nvarchar(100)
with execute as caller
as begin
  declare @ACCOUNT nvarchar(100) = ''

    if @GLACCOUNTID is not null
        select @ACCOUNT = @ACCOUNT + CASE WHEN VALUE.PDACCOUNTSTRUCTUREID = '90C72BDA-7994-401B-8A9F-7B36FA65D9FC' 
                            THEN @ACCOUNTCODE
                            ELSE VALUE.SHORTDESCRIPTION END + SUBSTRING(STRUCT.SEPARATOR, 0, 2)
        from dbo.PDACCOUNTSEGMENT SEG
        inner join dbo.PDACCOUNTSTRUCTURE STRUCT on SEG.PDACCOUNTSTRUCTUREID = STRUCT.ID
        inner join dbo.PDACCOUNTSEGMENTVALUE VALUE on SEG.PDACCOUNTSEGMENTVALUEID = VALUE.ID
        where SEG.GLACCOUNTID = @GLACCOUNTID
        order by STRUCT.SEQUENCE asc;
  else
        select @ACCOUNT = @ACCOUNT + ISNULL(CASE WHEN VALUE.PDACCOUNTSTRUCTUREID = '90C72BDA-7994-401B-8A9F-7B36FA65D9FC' 
           THEN NULL
           ELSE VALUE.SHORTDESCRIPTION END, @ACCOUNTCODE) + SUBSTRING(STRUCT.SEPARATOR, 0, 2)
    from dbo.PDACCOUNTSTRUCTURE STRUCT 
    left outer join dbo.PDACCOUNTSEGMENTMAPPING MAP on STRUCT.ID = MAP.PDACCOUNTSTRUCTUREID and MAP.ISDEFAULT = 1
    left outer join dbo.PDACCOUNTSEGMENTVALUE VALUE on MAP.PDACCOUNTSEGMENTVALUEID = VALUE.ID
    order by STRUCT.SEQUENCE asc;

  set @ACCOUNT = SUBSTRING(@ACCOUNT, 0, LEN(@ACCOUNT));

    return @ACCOUNT;
end