代码之家  ›  专栏  ›  技术社区  ›  John K

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

  •  0
  • John K  · 技术社区  · 14 年前

    背景
    我有一个计划,为加拿大安大略省实施了两个“经典”税收:5%的消费税和8%的太平洋标准时间。在2010年7月初,该省大部分地区改用了13%的综合高铁税。 Effects and changes here 但这些不是这个问题的重点…

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

    因为我的编程是.NET,所以我将为解决方案设计环境。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Fadrian Sudaman    14 年前

    我将提出这两种解决方案:

    • 将税务计算定义为系统的插件,以便将来的更改将在插件库中本地化。将来的更改可能涉及更新插件库或更改配置文件。这对您的申请也很有用,以适应不同省份的税收计算变化。您可以构建一个简单的插件代码或在codeplex中查看mef
    • 引入一个纳税表,在该表中定义有关纳税和计算字段/公式的元数据信息。您可以进一步定义一种简单的特定于域的语言(如脚本),然后将其映射到代码字段/logics/intepretation以派生计算出的数量。您的主系统将加载纳税表并使用它来驱动所有的纳税计算。未来的更新可能会涉及到更新税务表文件。
        2
  •  0
  •   Mark Rushakoff    14 年前

    当它是一个简单的税率,如销售税时,你把税率定为一个常数(即 readonly decimal OntarioGST = 0.05M )并发送一个更新到您的程序与一个新的常数响应率变化。

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

    不管怎样,你都需要更新你的软件。实际上,您不能期望客户能够处理诸如“如果速率发生变化,您必须在配置文件中输入新速率”之类的问题。