英国增值税制度从17.5%变为15%.您在代码中使用了哪些策略来存储增值税,以及更改将如何影响您的应用程序.您是否存储了大桶的历史记录,以便您可以计算旧价格,还是将旧发票存储在单独的表格中?它是一个简单的配置设置,还是你提出它?存储增值税的理想方式是什么?
HMRC对于获得适当数额的增值税非常挑剔.在用户指南中有点模糊地指定了增值税计算的四舍五入,并且将其留给未来的实施者以使其正确可能会遇到麻烦.通过在输入发票/订单项时存储金额,可以避免此问题.
这似乎是浪费存储和违反冗余原则,但涉及的存储量很小,并且可以在将来节省很多麻烦.当然,不言而喻,货币金额(以及可能甚至包含小数部分的增值税税率)应存储为乘以整数,以避免二进制小数表示舍入误差.
您应该绝对使用中央费率存储.但是,我建议这只提供输入新发票时使用的当前默认费率.这些可以与开始日期和结束日期一起存储,以便在必要时进行自动转换.可以为每张发票(或发票行)存储这些费率以及发票开具时计算的增值税金额,以提供当时情况的绝对快照.
不要忘记也适应不同的增值税税率(例如标准,减税,零税率,无增值税)以及在其他欧盟国家与增值税注册实体进行交易的可能性,在这些国家,您可能需要无增值税的发票.通常需要缴纳增值税.
您最终可能会得到一个这样的表(示例):
id | Rate name | VAT rate | Start date | End date --------------------------------------------------- 1 | Standard | 1750 | 01/01/1991 | 30/11/2008 2 | Standard | 1500 | 01/12/2008 | 31/12/2009 etc
上表只是一个例子.增值税税率存储为"基点"的整数(例如百分之一个百分点),但确实假设增值税税率永远不会超过2个小数位.你可以用一个额外的列来扩展它来解决这个问题,但这似乎可能是一个太过分了!
我建议的存储基于百分比的利率/利息的方法是:
你应该有一个'VAT_param'表
利率| 自(日期)|生效 有效期(日期)
我相信,
" 任何可以计算的东西 都不应该保存"
特别是在需要根据其他人的百分比计算价值的情况下(如税收,利息等).不要让时空权衡躲避你.你以后会花时间在太空上祝福自己.
然后,应根据发票日期,根据期间的有效汇率整齐计算增值税.它会
确保最少的冗余(请不要谈论旧桌子或新桌子......如果利率每年变化一次,你会在几年后开始拉头)
有一个集中的单枢轴来控制速率.您的VAT_param表.