今天,我正在研究Magento税收计算是如何工作的,以理解“基于的税收计算方法”行为的不同之处。
我深入到Mage_Tax_Model_Sales_Total_Quote_Tax中,它实现了_unitBaseCalculation,_rowBaseCalculation,_totalBaseCalculation.中的所有方法。
我发现它们产生的结果完全一样。那么,他们为什么要经历实施这些问题的麻烦呢?
例如,单价计算很难计算单个单位的税额,然后将折扣额除以qty (如果在折扣后征税),然后将两者相减,然后再乘以数量……这只会带来舍入错误。
然而,行总数计算是最直观的(从行“小计”中提取价格)减去折扣金额(如果折扣后适用税收)。
而第三个只是第二个的聚合,立刻计算出来。
这只会给税务计算逻辑带来混乱和混淆。有人能解释一下为什么要这样做吗?
(舍入错误?向后兼容性?( TheDailyWTF奖候选人?)
编辑:对于Magento1.6和1.7的记录,这是正确的,不知道旧版本。
发布于 2012-08-14 13:01:25
我从:https://gist.github.com/2572772上找到了这个(艾伦·斯托姆似乎是这样)
这一特性的动机可能是个别的本地规则(或客户端请求),即如何计算税收,因为根据添加和四舍五入发生的时间,小数的加起来可能不同。THat说,我还没有通过代码来看看我的猜测是否正确,所以YMMV。其他需要考虑的领域,供今后研究。 每种模式如何运用购物车的价格规则和商店的大折扣?
对于购物车价格规则来说,将折扣额除以可能不会被报价项目数量所除以,从而引入一个舍入误差,最终的结果实际上是相同的过程,但在舍入时只有不同的“时间”和“地方”。
https://stackoverflow.com/questions/11952584
复制相似问题