问题现象: | 在采购订单录入界面,输入两笔记录,含税单价相同,数量不同,系统自动计算的不含税单价却不相同。例如税率若为17,单价为4位小数位,金额位2位小数位。第一条记录数量:20,含税单价33.33,非含税单价28.487;第二条记录数量:17,含税单价33.33,非含税单价却为28.4871。经分析,第一条记录的非含税单价=ROUND(原币价税合计666.60/1.17,2)/20=28.487,第二条记录的非含税单价=ROUND(原币价税合计566.61/1.17,2)/17=28.4871。能否对“原币价税合计666.6/1.17/20”进行ROUND保留小数位以避免含税单价相同,而非含税单价不同的现象? |
问题原因: | 关于无税单价计算误差的问题,是由于计算无税单价时小数位的四舍五入先后顺序造成的,这样是为了保持“无税单价*数量=无税金额、无税金额*税率=税额、税额+无税金额=价税合计”等这些关系的平衡性。否则从单据界面上看(包括采购发票、到货单等单据)这些关系可能就不平衡了。 |
解决方案: | 采购单据中无税,含税单价的计算规则 如下: 数量=20;含税单价=33.33,此时含税金额=666.60 ,无税金额 =round(666.60/1.17,2)=569.74,因此无税单价=round(569.74/20,4)=28.4870; 而数量=17;含税单价=33.33,此时含税金额=566.61 ,无税金额 =round(566.61/1.17,2)=484.28,因此无税单价=round(484.28/17,4)=28.4871; 这是采购单据的统一计算规则,其目的是保证单据中数据项之间满足这种计算关系,所以在每一步计算的结果都会进行round计算,所以产生两次无税单价不同的问题。 |
相关补丁: | |
版本: | 8.52 |
模块: | 采购管理 |
产品: | U852----采购管理 |
问题名称: | 采购订单非含税单价问题 |
最后更新: | 2005-06-28 00:00:00 |