改变计划逻辑以适应新的零售税法

时间:2010-07-23 00:04:34

标签: c# .net vb.net specifications

背景
我有一个计划已经为加拿大安大略省实施了两项“经典”税:5%消费税和8%PST。在2010年7月初,该省大部分转为一项13%的HST税。 Effects and changes here但这些不是这个问题的主要内容......

问题
什么是最佳实践和良好的解决方案,以便轻松适应零售税的未来变化?税收变化经常发生。我确信有很多SO用户都有很好的经验。

因为我的编程是.NET,所以我会为解决方案提供这种环境。

2 个答案:

答案 0 :(得分:2)

我会建议这两个解决方案:

  • 将税收计算定义为系统的插件,以便将来的更改将在插件库中进行本地化。未来的更改可能涉及更新插件库或更改配置文件。这对于您的应用程序来说也很有用,可以适应不同省份的税收计算变化。您可以构建一个简单的插件代码或在CodePlex中查看MEF
  • 引入税表,您可以在其中定义有关税收和计算字段/表格的元数据信息。您可以更进一步,定义一个简单的特定于域的语言(如脚本),然后映射到您的代码字段/逻辑/解释,以获得计算的数量。您的主系统将加载税表并使用它来驱动所有税收计算。未来的更新有望涉及更新税表文件。

答案 1 :(得分:0)

当它是一个简单的税率,例如销售税时,您将费率放在一个常数(即readonly decimal OntarioGST = 0.05M)中,并使用新的常量向您的程序发送更新,以响应费率变化。

对于更复杂的税收,您可以应用strategy pattern并替换算法作为回应。

无论哪种方式,您都需要推出软件更新。您无法真实地期望您的客户能够处理诸如“如果费率发生变化,您必须在配置文件中输入新费率”之类的内容。