1、业务描述
明细分类账勾选显示对方科目时,关于本方科目和对方科目匹配逻辑如下:
本方科目和对方科目的关系是基于凭证的分录顺序及金额信息实时拆分得到的,该关系并不保存在后台。
2、系统逻辑
当不勾选“显示核算项目明细”且不勾选“显示对方核算项目”时:
首先将:
1. 首先,会将分录分为借贷两类。界面上借方正数分录、贷方负数分录放置到借方类,界面上贷方正数分录、借方负数分录放置到贷方类。
2. 第一层循环:基于以上分类,从上至下对每个分录在另外一个类别下找金额相同的分录,如果找到就互为对方。如果没有找到该分录将进入第二重循环找对方的逻辑。但是符合该条件,但是科目编码相同的,不会互为对方,这类分录直接进入第二个循环。
3. 第二层循环:基于第一层循环没有找到对方的分录,将按分录号从上至下在对方类别从上至下找对方扣减,直至本方扣减完毕。
举个例子: 凭证分录如下:
序号 | 科目 | 借 | 贷 |
1 | 存货 | 1100 |
|
2 | 存货 | -100 |
|
3 | 应交税费 | 90 |
|
4 | 应付账款 |
| 1090 |
5 | 应付账款 | 1090 |
|
6 | 银行存款 |
| 1090 |
第一步:分为借贷两大类 ,分录2借方-100重分类为贷方,金额改为正100。
序号 | 科目 | 借 | 贷 |
1 | 存货 | 1100 |
|
2 | 存货 |
| 100 |
3 | 应交税费 | 90 |
|
4 | 应付账款 |
| 1090 |
5 | 应付账款 | 1090 |
|
6 | 银行存款 |
| 1090 |
第二步:针对分录从上至下,在另外大类(借找贷)里面找金额相同的分录。(第一层循环)
1. 分录1,没有找到
2. 分录2,没有找到
3. 分类3,没有找到
4. 分录4,找到了,对方是分录5,但是分录5的科目编码和分录相同,同样不符合。
5. 分录5,找到分录6,分录5和分录6金额相同方向相反,且科目编码不同
6. 分录6,找到分录5
序号 | 科目 | 对方科目 | 借 | 贷 |
1 | 存货 |
| 1100 |
|
2 | 存货 |
|
| 100 |
3 | 应交税费 |
| 90 |
|
4 | 应付账款 |
|
| 1090 |
5 | 应付账款 | 分录6 | 1090 |
|
6 | 银行存款 | 分录5 |
| 1090 |
第三步:针对未找到对方的分录从上至下,在另外大类(借找贷)里面从上之下按金额相等做扣减。
1. 分录1,找到分录2扣减100,还剩余1000。
2. 分录1,找到分录4扣减1000,扣减完毕
2. 分录3,找到分录4扣减90,扣减完毕。
3. 分录2,找到分录6,扣减90,扣减完毕。
序号 | 科目 | 对方科目 | 借 | 贷 |
1 | 存货 | 分录2、分录4 | 1100 |
|
2 | 存货 | 分录1 |
| 100 |
3 | 应交税费 | 分录4 | 90 |
|
4 | 应付账款 | 分录1、分录3 |
| 1090 |
5 | 应付账款 | 分录6
| 1090 |
|
6 | 银行存款 | 分录5 |
| 1090 |
当勾选“显示核算项目明细”或“显示对方核算项目”时:逻辑同上,只是取明细记录直接取的辅助账信息。
3、注意
只显示分录和显示辅助账基于的明细数据对象不同,只显示分录是基于凭证分录数据,显示辅助是基于凭证辅助账数据。