首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在woocommerce开设多个税种时的税收舍入问题

在woocommerce开设多个税种时的税收舍入问题
EN

Stack Overflow用户
提问于 2017-11-12 17:59:54
回答 1查看 1.6K关注 0票数 1

在Wordpress 4.8.3的WooCommerce 3.2.3中,我对税额的四舍五入有一个问题。

当在购物车和结账页面中显示每个税种的总和时,都会用小数点正确地显示每一个税种的总和。

然而,在计算购物车总金额时,使用4个小数点值将税类和相加在一起,然后进行舍入。

这可能导致0,01四舍五入错误,如下面的示例所解释,如果您将项目小计与显示的税种总数相加,您将得到221,61欧元,而不是显示的221,62欧元。

例如(不征税的价格,不涉及航运):

产品XXX (属于19%税级):161,28欧元

产品YYY (属于7%税级):27,75欧元

产品项目小计= 189,03欧元

MwSt。19%,30,64欧元

MwSt。7% 1,94欧元

购物车总数:221,62欧元

问题是:

在将税类和加在一起计算购物车总数时,我如何强迫WooCommerce使用两个小数点来计算税类和?

设置:

  • 我们使用插件"woocommerce日耳曼化“版本1.9.5。在启用或不启用它时存在问题。
  • 我们使用一个航运计算器插件,并且问题存在于它和没有它。
  • 禁用所有插件,没有任何效果。
  • 用十七个主题测试,结果相同。
  • 该商店在德国,并出售给公司和私人客户,因此价格是不征税的。
  • 产品与19%或7%的税种有关。
  • 货币是使用2个小数位数的欧元。
  • “显示税收总额”设置为“分项”。
  • 价格是免税入帐的。
  • 价格是不征税的。

我理解在计算中使用4dp精度的理由,但在我们的用例中不需要它。

我在WC代码中添加了一些调试输出,并看到上面示例中的单个税类和以4个小数存储:

MwSt。19% 30 6432

MwSt。7% 1 9425

这里的税额小计是32,5857欧元,在计算购物车总额时,它被舍入为32,59欧元,而不是32,58欧元,造成了0,01的差额。

在寻找这个问题的解决方案时,我发现了许多不同的税务计算问题,但没有完全类似的用例。

我尝试过修改WooCommerce代码,但是我没有在WooCommerce中找到正确的位置,在那里我可以设置/编写精确的代码--计算使用2dp而不是4dp,但这可能不是最理想的解决方案。

注:如果我将“显示税收总额”设置为“总计”而不是“逐项”,则显示的税收小计为32,59欧元

在此设置中,购物车总额221,62欧元等于所列小计的总和,但客户要求将税金逐项显示。

很抱歉描述得太长了。根据我最近的经验,要正确解释税务计算有关的问题,似乎是有需要的。

有没有人建议解决这个问题?

非常感谢您的建议和时间!

麝香

EN

回答 1

Stack Overflow用户

发布于 2017-11-13 09:34:37

首先,您必须在Woocommerce…中搜索税收的计算方法。如果使用WooCommerce WC_Cart类代码,将看到 WC_Tax 类负责此…。

在源代码WC_Tax中,进行计算的方法是(使用相应的可用过滤器挂钩来更改计算__)。

  • 带有可用过滤器钩子woocommerce_calc_tax.的calc_tax()
  • 带有可用过滤器钩子woocommerce_calc_shipping_tax.的calc_shipping_tax()
  • 带有可用过滤器钩子woocommerce_tax_round.的round()
  • 带有可用过滤器钩子woocommerce_price_inc_tax_amount.的calc_inclusive_tax()
  • 带有可用过滤器钩子woocommerce_price_ex_tax_amount.的calc_exclusive_tax()
  • 也可能是其他一些…

下面是一个将.5行为更改为将四舍五入返回到的示例

代码语言:javascript
复制
add_filter( 'woocommerce_tax_round', 'euro_5cent_rounding' );
function euro_5cent_rounding( $in ) {
    return round( $in / 5, 2 ) * 5;
}

代码会出现在您的活动子主题或活动主题的function.php文件中(或者在任何插件文件中)。

由于您的问题非常具体且难以重现,因此您必须找到解决问题的诀窍--…。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47252087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档