销售订单中的金额计算简要介绍原创
金蝶云社区-闫宇波
闫宇波
4人赞赏了该文章 1,208次浏览 未经作者许可,禁止转载编辑于2021年06月01日 11:03:43

销售标准产品中的金额计算涉及到的字段:

计量单位、基本数量、辅助数量、数量、单价、含税单价、税率、折扣方式、单位折扣(率)、金额、金额本位币、税额、税额本位币、
折扣额、价税合计、价税合计本位币、含税(表头)、税额(表头)、金额(表头)、金额本位币(表头)、价税总合计(表头)、价税总合计本位币(表头)

金额计算的时机:价格、数量、税率、结算币别、含税、折扣方式、折扣率、汇率、赠品等发生改变时可以触发金额计算


提供标准金额计算的类:kd.scmc.sm.business.helper.BillTplHelper

金额计算有两种方式:

一种是差额计算(对应的方法名 calculateAmount(DynamicObject bill, int[] rowIndexs, IDataModel model))
重新计算选定行的金额,算出与原有金额的差额,汇总累加到单头的总金额和价税合计
目前只支持存在IDataModel的场景进行重算


一种是全量计算(对应的方法名 calculateAmount4WholeBill(DynamicObject bill, IDataModel model))
每行金额重算,将行金额汇总累加到单头
支持存在IDataModel的金额计算场景,也支持实体对象DynamicObject的金额计算(例如botp过程中只能传入实体对象)


目前金额重算后金额、价税合计可以触发值改变监听事件(如果实际业务需要干预标准计算后的结果,可获取金额或加税合计的监听即可)


精度:
折扣额、价税合计、税额、金额 是按照结算币别的精度来处理   
价税合计(本位币)、税额(本位币)、金额(本位币) 是按照本位币的精度来处理
单价和含税单价 是统一按照10位来处理,数据库保存的精度也是10位(提高精度来解决计算中可能导致的尾差),但是前台展示的为结算币别的精度

反算:
由于某些客户习惯录入数量、金额反算单价,现在销售订单上打开【录入金额】复选框,即可支持根据物料明细分录的金额或价税合计反算价格。

金额反算的类为:kd.scmc.sm.business.helper.BackCalculationHelper

金额反算时机:数量、税率、结算币别、含税、折扣方式、折扣率、金额、价税合计、汇率、赠品等发生变化时可以触发金额反算



赞 4