首页 文章

Prestashop插件的税务计算问题

提问于
浏览
1

我正在构建一个Prestashop插件,我偶然发现了这个税务计算问题 .

程序流程如下:

一个人在电子商务网站下订单,订单被接受,订单详细信息,如商品,价格,税收,折扣等被发送到外部发票API服务 .

订单的示例可以是:

(这些价格包含税)

1x T恤20.64

1x运费125

1x折扣-18.58(在此特定测试案例中,产品折扣90%,数学简单20.64 * 0.90 = 18.58)

税后申请总额:127.06

这很好,但是,当我将详细信息发送到API时,订单将保存为以下内容:

(这些价格保存不含税,税率为25%)

1x T恤16.51

1x运送100

1折优惠-14

税后申请总额:128.14

如你所见,订单总数不是马赫,差异是1.08,我认为这是折扣和税收问题 .

值得注意的是,外部网站对发送的 Value 进行了自己的数学运算,例如产品,税收等 . 我不能影响外部发票网站进行计算的方式 . 我认为问题发生在不同平台上执行操作的顺序 .

还值得一提的是,当没有折扣存在时,代码可以正常工作 .

在发送值之前我该怎么做,以便我最终得到两个相同的值 .

1 回答

  • 2

    他们计算的总数确实是 (100 + 16.51 - 14) x 1.25 = 128.1375

    然而他们对无税折扣的计算是错误的, 18.58 / 1.25 = 14.864 不是 14 .

    是否有规则应将折扣舍入(或覆盖或上限)为整数值?

    折扣可能是非整数,意味着不同的税率

    如果不是这意味着他们将折扣除以 1.32714285714 ,从而考虑到折扣的_1686255税 . 这将是奇怪的,不太可能,因为再次添加折扣他们使用正常 25%

    检查您的prestashop文档,当地法律或其他任何内容,以确定这是否真实,以及该值是否为例如 33%32.7% 由于我对它们存储的税值进行了反向设计,因此可能会因舍入为2而扭曲小数点 .

    然后,要获得正确的结果,请将折扣替换为 discount * 1.32714285714 / 1.25 ,即将预期税率替换为他们应用的税率 .

    折扣四舍五入为整数

    如果无税折扣必须是一个整数,我们可以修改它,以便它也在我们这边,因为我猜最重要的是最终价格 . 因此,使用此算法发送最终将为整数的折扣:

    % get taxless prices
    price_notax = price / 1.25
    discount_notax = discount / 1.25
    
    % transfer decimal part of discount into price reduction
    discount_int = floor(discount_notax)
    price_compensated = price_notax - (discount_int - discount_notax)
    
    % re-add tax to get values to send 
    discount_send = discount_int * 1.25
    price_send = price_compensated * 1.25
    

    值的总和应该相同: price - discount == price_send - discount_send

    检查它是否不是Prestashop中的错误

    更新到最新版本,查找他们的错误跟踪器或联系他们 . 如果没有报告,请提交报告 .

    上面的解决方法之一现在可以使用,但是如果它是一个被修复的错误并且您使用第一个,那么您将再次收取错误的金额 .

相关问题