【EAS 科目对照】分配科目对照表提示“对照关系中的XX科目表XXX没有分配至下级财务组织,不需要分配对照关系”原创
金蝶云社区-叶梦琪
叶梦琪
12人赞赏了该文章 328次浏览 未经作者许可,禁止转载编辑于2023年01月12日 21:18:06


1、提示“对照关系中的XX科目表XXX没有分配至下级财务组织,不需要分配对照关系”校验逻辑如下:

SELECT DISTINCT c.fdestcompanyid companyid,CASE WHEN b.fid = e.faccounttableid THEN 1 ELSE 0 END usestatus FROM   t_bd_accounttable b
INNER JOIN t_bd_acct_contorl c ON c.faccounttableid = b.fid INNER JOIN t_org_company e ON e.fid = c.fdestcompanyid
WHERE  c.fsrccompanyid = '当前登录财务组织id' AND b.fid = '科目表id' AND c.fdestcompanyid IN (分配财务组织集合id)

执行该段SQL,没有查出数据,就会弹出上述的提示。


2、科目对照表分配与科目分配不同,不支持跨级直接分配,只能逐级分配,在待分配的下级财务组织列表中根据当前登录组织获取下级财务组织


3、原因:表T_BD_Acct_Contorl【会计科目表控制属性】有个字段 FSrcCompanyID 【上级财务组织】 取数逻辑不正确,没有按照科目逐级分配的逻辑

当分配科目时,在待分配的财务组织列表中勾选了[显示所有下级财务组织],并跨级直接分配科目后,前述表中字段 FSrcCompanyID 取的是科目分配时的登录组织,与科目分配和科目对照表分配的逐级分配逻辑不一致,导致分配科目对照表时就会提示“对照关系中的XX科目表XXX没有分配至下级财务组织,不需要分配对照关系”。


4、变通方案:后台修复数据

将表T_BD_Acct_Contorl【会计科目表控制属性】中的字段 FSrcCompanyID 【上级财务组织】 修改为当前登录组织id


---查询科目表id
SELECT FNUMBER,FNAME_L2,FID FROM T_BD_ACCOUNTTABLE

WHERE FNUMBER ='提示中对应科目表的编码' 


---查询目标财务组织的上级财务组织ID
SELECT  FNUMBER,FNAME_L2,FID AS 待分配下级财务组织ID, FPARENTID AS 上级财务组织ID
FROM T_ORG_COMPANY

WHERE FNUMBER in ('待分配的下级组织编码')  -----若有多个待分配的下级组织,可以在括号内添加下级组织编码,中间用逗号隔开,组织编码需要带单引号


---查询会计科目表控制属性中的【上级财务组织】字段是否为待分配的下级组织直接上级
SELECT  FACCOUNTTABLEID,FSRCCOMPANYID,FDESTCOMPANYID
FROM T_BD_Acct_Contorl
WHERE FACCOUNTTABLEID ='此处替换科目表ID'  

AND FDESTCOMPANYID in ( SELECT FID FROM T_ORG_COMPANY WHERE FNUMBER in ('待分配的下级组织编码')  )


----备份数据【修改数据前操作一次就行】
SELECT * INTO T_BD_Acct_Contorl_BK20230112 FROM T_BD_Acct_Contorl

SELECT * FROM  T_BD_Acct_Contorl_BK20230112


----修复待分配科目对照表下级财务组织的上级财务组织数据
UPDATE  T_BD_Acct_Contorl
SET   FSRCCOMPANYID ='此处替换正确的直接上级组织ID'   
WHERE  FACCOUNTTABLEID ='此处替换科目表ID'  ----科目表ID
AND FDESTCOMPANYID =( SELECT FID FROM T_ORG_COMPANY WHERE FNUMBER  in ('待分配的下级组织编码'))


图标赞 12
12人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0