1

我有一系列包含或不包含增值税的产品。我总是想向客户显示包含增值税的价格,所以我有一个标志,说明价格是否包含增值税。目前我在 PHP 中添加了增值税,这意味着排序是一些问题,因为 MySQL 会根据基本价格进行排序,有时增值税会使结果无序。

我想要的是在 MySQL 查询中自动将增值税添加到价格中。我怎样才能做到这一点?

我的产品表如下所示:

product_id, product_dayprice, product_weekprice, product_includevat

product_includevat 只是一个布尔值,即 1 或 0...增值税存储为 PHP 变量

我的排序代码看起来像这样,旨在将价格为 0 的产品放在最后

CASE product_daypriceWHEN 0 then 40000 ELSE product_dayprice END
4

2 回答 2

3

如果那product_include_vat是一个布尔字段,那么它就像

SELECT product_weekprice + (product_weekprice * vat_rate * product_includevat)

如果 includevat 字段为假,它将计算为整数 0,并且您的增值税在乘法中被清零。

于 2012-10-04T20:17:21.383 回答
0

您不应该在每一步都动态计算增值税。计算一次,并保存所有数据,例如 netto 和 VAT 作为单独的值,或 brutto 和 netto,或 brutto 和 VAT。

为什么要冗余?一:添加价格时的四舍五入错误。二:即使增值税税率发生变化,某些数据在商品售出后也必须是永久的。这对于您的当前价格数据库无效,但对于您的客户历史记录,您必须知道销售时包含多少增值税。如果您每次都重新计算,并且增值税率增加,您将向税务局支付太多费用。

于 2012-10-04T21:32:17.557 回答