英国增值税制度从17.5%变为15%。您在代码中使用了哪些策略来存储增值税,以及更改将如何影响您的应用程序。您是否存储增值税历史记录,以便可以计算旧价格,还是将旧发票存储在单独的表格中?这是一个简单的配置设置,还是您将其设置为Bodge?储存增值税的理想方法是什么?
最佳答案
不要计算。储存它!
HMRC对于获得适当数量的增值税非常挑剔。在用户指南中模糊地指定了增值税计算的四舍五入,而将其留给未来的实施者来正确处理可能会带来麻烦。通过在输入发票/行项目时存储金额,可以避免此问题。
这似乎是浪费存储空间,并且违反了冗余原则,但是所涉及的存储空间很小,将来可以节省很多麻烦。当然,不用说,货币金额(甚至可能是带有小数部分的增值税率)也应存储为一个整数,以避免二进制分数表示舍入误差也蔓延。
中央价目表
您绝对应该使用中央速率存储。但是,我建议仅提供输入新发票时使用的当前默认费率。这些可以与开始和结束日期一起存储,以便在必要时进行自动转换。可以将每张发票(或发票行)的这些费率以及发票抬高时计算出的增值税金额存储在一起,以提供当时情况的绝对快照。
不要忘记也要适应不同的增值税率(例如,标准,降低,零税率,无增值税),并有可能与其他欧盟国家的增值税注册实体进行交易,在这些国家中,您可能需要对发票进行免增值税处理通常需要缴纳增值税。
您可能最终得到一个像这样的表(示例):
id |价格名称|增值税率|开始日期结束日期
-------------------------------------------------- --
1 |标准| 1750 | 1991年1月1日| 30/11/2008
2 |标准| 1500 | 2008年1月12日| 2009年12月31日
等等
上表仅是示例。增值税税率存储为“基本点”的整数(例如百分之一百分点),但确实假定增值税税率永远不会超过2个小数位。您显然可以用额外的列来扩展此名称,以缓解此问题,但似乎距离太远了!
关于database-design - 英国增值税从17.5%变为15%-这将如何影响您的代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/316757/