为基础资料启用销售订单的信用额度时,在新增销售订单时可以查看其信用额度,有时看到的数据可能跟我们自己人工手动统计的结果不太一致,那么本文就一起探究下销售订单信用额度的实际取数逻辑。
由于销售订单信用额度的公式中包含发票、收退款单、订单三类单据的数据,为避免篇幅过长,三类单据将分开描述,每一类单据通过一篇文档描述,本文将对销售订单信用额度公式中发票的选项展开描述。
1、销售订单信用额度的公式中,发票的选项包括:
+ 已审核发票金额
- 已审核的已收款发票金额
- 已审核的现销发票金额
+ 未审核发票金额
- 未审核的现销发票金额
如下图所示:
图1
2、在销售订单单据界面查询信用额度时,对应的查询语句如下,主要是查询表 ICCreditInstant 中的数据,然后根据我们勾选的公式进行加加减减。
图2
图3
3、表 ICCreditInstant 的数据最初是在启用信用额度时写入,通过查看启用信用额度的过程,可以了解每一类单据的信用额度写入的逻辑,因此我们主要研究启用信用额度的过程即可。
启用信用额度的过程实际上是执行存储过程 p_IC_InitCreditInstantData 的过程。
从图3的代码中可以看出,销售订单信用额度中发票选项的数据均来源于表 ICCreditInstant 中FGroup =3的记录。信用额度单据表 ICCreditBill 中FGroup =3 的单据包括:销售发票、其他应收单、费用发票。
图4
存储过程 p_IC_InitCreditInstantData 中关于销售发票的代码如下:
图5
图6
图7
图8
图9
4、已审核的发票金额
通过图3可以看出已审核的发票金额对应的是表ICCreditInstant 中 FGroup =3的记录中FMainAmtPara2 的数据。
表ICCreditInstant 中 FGroup =3的记录中FMainAmtPara2 的数据来源于图6、图9的代码。
图6代码的逻辑为:
供应链、应收模块的销售发票的未作废、已审核的销售发票的本位币价税合计、
调汇发票的调汇金额、
初始化销售发票的本位币剩余核销金额
图9代码的逻辑为:
已审核的其它应收单的本位币单据金额、
调汇其他应收单的调汇金额、
初始化其他应收单的本位币剩余核销金额
图10
图11
图10、图11可以看出供应链、应收模块的销售发票的未作废、已审核的销售发票的本位币价税合计为136540。
图11可以看出调汇发票的调汇金额为0。
图12
图13
图13可以看出初始化销售发票的本位币剩余核销金额为0。
图14
图14可以看出已审核的其它应收单的本位币单据金额为1010。
图14可以看出调汇其他应收单的调汇金额为0。
图15
图15可以看出初始化其他应收单的本位币剩余核销金额为0。
因此:客户002东方机电【已审核的发票金额】为136540 + 1010 = 137550。
查询表ICCreditInstant 中 FGroup =3的记录中FMainAmtPara2 的数据为137550。
图16
5、已审核的已收款发票金额
通过图3可以看出已审核的已收款发票金额对应的是表ICCreditInstant 中 FGroup =3的记录中FMainAmtPara3 的数据。
表ICCreditInstant 中 FGroup =3的记录中FMainAmtPara3 的数据来源于图6的代码。
图6代码的逻辑为:
供应链、应收模块的销售发票的未作废、已审核的销售发票的本位币已核销金额。
图9代码的逻辑为:
已审核的其它应收单的本位币核销金额。
图17
图17可以看出供应链、应收模块的销售发票的未作废、已审核的销售发票的本位币已核销金额为0。
图18
从图18可以看出已审核的其它应收单的本位币核销金额为0。
因此:客户002东方机电【已审核的已收款发票金额】为0。
查询表ICCreditInstant 中 FGroup =3的记录中FMainAmtPara3 的数据为0。
图19
6、已审核的现销发票金额
通过图3可以看出已审核的现销发票金额对应的是表ICCreditInstant 中 FGroup =3且FStatus =1的记录中FMainAmtPara2 的数据。
表ICCreditInstant 中 FGroup =3且FStatus =1的记录中FMainAmtPara2 的数据来源于图6的代码。
图6的代码的逻辑为:
供应链、应收模块的销售发票的未作废、已审核、销售类型为现销的销售发票的本位币价税合计、
销售类型为现销的调汇发票的调汇金额、
图20
从图20可以看出供应链、应收模块的销售发票的未作废、已审核、销售类型为现销的销售发票的本位币价税合计为0。
从图20可以看出销售类型为现销的调汇发票的调汇金额为0。
因此:客户002东方机电【已审核的现销发票金额】为0。
查询表ICCreditInstant 中 FGroup =3且FStatus =1的记录中FMainAmtPara2 的数据为0。
图21
7、未审核发票金额
通过图3可以看出未审核发票金额对应的是表ICCreditInstant 中 FGroup =3的记录中FMainAmtPara1 的数据。
表ICCreditInstant 中 FGroup =3的记录中FMainAmtPara1 的数据来源于图5、图8的代码。
图5代码的逻辑为:
供应链、应付管理模块的未作废、未审核的销售发票的本位币含税金额。
图8代码的逻辑为:
未审核的其他应收单的单据金额(本位币)。
图22
从图22可以看出供应链、应付管理模块的未作废、未审核的销售发票的本位币含税金额为0。
图23
从图23可以看出未审核的其他应收单的单据金额(本位币)为0。
因此:客户002东方机电【未审核发票金额】为0。
查询表ICCreditInstant 中 FGroup =3的记录中FMainAmtPara1 的数据为0。
图24
8、未审核的现销发票金额
通过图3可以看出未审核的现销发票金额对应的是表ICCreditInstant 中 FGroup =3且FStatus =1的记录中FMainAmtPara1 的数据。
表ICCreditInstant 中 FGroup =3且FStatus =1的记录中FMainAmtPara1 的数据来源于图5的代码。
图5代码的逻辑为:
供应链、应付管理模块的未作废、未审核、销售方式为现销的销售发票的本位币含税金额。
图25
从图25可以看出供应链、应付管理模块的未作废、未审核、销售方式为现销的销售发票的本位币含税金额为0。
因此:客户002东方机电【未审核的现销发票金额】为0。
查询表ICCreditInstant 中 FGroup =3且FStatus =1的记录中FMainAmtPara1 的数据为0。
图26
因此:客户002东方机电销售订单在发票选项上的额度为:
+ 已审核发票金额137550
- 已审核的已收款发票金额0
- 已审核的现销发票金额0
+ 未审核发票金额0
- 未审核的现销发票金额0
=137550
客户002的信用额度只勾选发票的选项,新增销售订单,录入客户002,查看信用,可以看到已用额度为137550。
图27
图28
到此,销售订单信用额度的发票选项逻辑就分析完了。
总结:销售订单信用额度公式中发票的选项相对来说,按照字面理解均可查询到对应的单据数据,需要注意的是,在手工统计对应的数据时,其他应收单应一起考虑在内。
推荐阅读