UFN_GLACCOUNT_VERIFYFENXTPROJECTREQUIREDACCOUNT

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@ACCTSYSID uniqueidentifier IN
@ACCOUNTALIAS nvarchar(100) IN
@ACCOUNTNUMBER nvarchar(100) IN

Definition

Copy


  CREATE function dbo.UFN_GLACCOUNT_VERIFYFENXTPROJECTREQUIREDACCOUNT(@ACCTSYSID uniqueidentifier, @ACCOUNTALIAS nvarchar(100), @ACCOUNTNUMBER nvarchar(100))
  returns bit
  with execute as caller
  as
  begin
    declare @PROJECTMISSING bit;

    declare @PDACCOUNTSTRUCTURE_PROJECTSEGMENT table
      (PDACCOUNTSYSTEMID uniqueidentifier,
      LENGTH tinyint,
      STARTPOS tinyint,
      SEQUENCE integer,
      MAXSEQ integer,
      ISPROJECTSEGMENT tinyint);

    insert into @PDACCOUNTSTRUCTURE_PROJECTSEGMENT
    select distinct
      PDACCOUNTSYSTEM.ID as PDACCOUNTSYSTEMID,
      isnull(PDACCOUNTSTRUCTURE.LENGTH+1,0) as LENGTH,
      isnull((select sum(STRUCT2.LENGTH) + sum(case STRUCT2.SEPARATORCODE when 6 then 0 else 1 end)
              from dbo.PDACCOUNTSTRUCTURE as STRUCT2 where PDACCOUNTSTRUCTURE.PDACCOUNTSYSTEMID = STRUCT2.PDACCOUNTSYSTEMID and PDACCOUNTSTRUCTURE.SEQUENCE > STRUCT2.SEQUENCE),1) as STARTPOS,
      PDACCOUNTSTRUCTURE.SEQUENCE,
      (select max(STRUCT3.SEQUENCE) as MAXSEQ from dbo.PDACCOUNTSTRUCTURE as STRUCT3 where PDACCOUNTSTRUCTURE.PDACCOUNTSYSTEMID = STRUCT3.PDACCOUNTSYSTEMID) as MAXSEQ,
      ISNULL(PDACCOUNTSTRUCTURE.ISPROJECTSEGMENT, 0) as ISPROJECTSEGMENT
      from dbo.PDACCOUNTSYSTEM
      left join dbo.PDACCOUNTSTRUCTURE on PDACCOUNTSYSTEM.ID = PDACCOUNTSTRUCTURE.PDACCOUNTSYSTEMID and PDACCOUNTSTRUCTURE.ISPROJECTSEGMENT = 1;

    if exists (select 1 from dbo.GLACCOUNT
    inner join dbo.FENXTINTEGRATION on @ACCTSYSID = FENXTINTEGRATION.PDACCOUNTSYSTEMID
    inner join @PDACCOUNTSTRUCTURE_PROJECTSEGMENT as V1 on @ACCTSYSID = V1.PDACCOUNTSYSTEMID
    inner join dbo.FENXTACCOUNT on V1.PDACCOUNTSYSTEMID = FENXTACCOUNT.PDACCOUNTSYSTEMID 
    and isnull(nullif(@ACCOUNTALIAS,''),stuff(@ACCOUNTNUMBER,case when V1.ISPROJECTSEGMENT = 0 then V1.STARTPOS when V1.ISPROJECTSEGMENT = 1 and V1.STARTPOS = 1 then 1 else V1.STARTPOS - 1 end, V1.LENGTH,'')) = FENXTACCOUNT.ACCOUNTNUMBER
    where FENXTACCOUNT.PROJECTREQUIRED = 2
    and not exists (select 1 from dbo.PDACCOUNTSTRUCTURE
                    where V1.PDACCOUNTSYSTEMID = PDACCOUNTSTRUCTURE.PDACCOUNTSYSTEMID
                    and PDACCOUNTSTRUCTURE.ISPROJECTSEGMENT = 1)
            )
            set @PROJECTMISSING = 1;
            else
            set @PROJECTMISSING = 0;

  return @PROJECTMISSING;
  end