E commerce 税务引擎示例
我们为mac电脑创建了销售点软件,并希望改造我们的税务引擎。现在很简单,税收由名称、代码和税率组成,可以单独应用于每种产品。虽然这对一些人来说已经足够好了,但我们已经收到了很多处理更高级情况的请求。例如,美国市/县销售税、加拿大复合(叠加)税、法国生态税和纽约奢侈品税 我们已经确定了这些税收的大部分特征,并且倾向于基于规则引擎的实现。我们不必支持所有案例,但我们希望能够在需要时扩展它(以避免再次重写)E commerce 税务引擎示例,e-commerce,business-logic,rule-engine,E Commerce,Business Logic,Rule Engine,我们为mac电脑创建了销售点软件,并希望改造我们的税务引擎。现在很简单,税收由名称、代码和税率组成,可以单独应用于每种产品。虽然这对一些人来说已经足够好了,但我们已经收到了很多处理更高级情况的请求。例如,美国市/县销售税、加拿大复合(叠加)税、法国生态税和纽约奢侈品税 我们已经确定了这些税收的大部分特征,并且倾向于基于规则引擎的实现。我们不必支持所有案例,但我们希望能够在需要时扩展它(以避免再次重写) 我们正在寻找以前构建过类似的东西的人的建议,或者尝试以优雅的方式解决相同问题的项目示例。我推荐
我们正在寻找以前构建过类似的东西的人的建议,或者尝试以优雅的方式解决相同问题的项目示例。我推荐一组数据库表和联接 例如:
- 管辖范围:州、县、国家、城市等的列表
- 产品:显而易见
- 商店:您销售的地点列表
- StoreJudictionary(StoreID,JudictionId):商店所在的辖区列表 负责为客户收取税款
- ProductTaxCode(ProductID int,TaxCodeID int):用于征税的产品类型:基本型、豪华型等
- 辖区税收代码税率(辖区ID、税收代码ID、利率、税率类型):对于辖区和税收代码的每个适用组合,提供要应用的税率和税率类型(复合、简单等)
为了扩展塔伦特先生关于这一主题的回答,您还需要在辖区表中包括一些表示税收可能流向不同地方的方式 我的建议是使用数据库表来表示它们的用途(存储值),使用规则表示它们的用途(业务逻辑)。我当然不会把税率或司法管辖区列表等东西放在规则中——这些应该放在表格中。我将使用规则引擎来定义逻辑,该逻辑确定应用于哪些事务的速率。例如,如果我在网上从X州的一家公司购买了一套产品,这些产品从Y州运送到三个不同的地点,那么交易的哪些部分适用什么税率? 规则和数据库表的这种组合非常常见-规则确保您查找正确的内容,而表有助于报告等。例如,加州DMV通过车辆登记费做到了这一点——所有的各种费用都存储在一个数据库中,而确定哪种费用适用于哪种车辆的规则则在一个规则库中进行管理。 如果您尝试将所有内容都放在规则中,您将无法很好地报告,如果您尝试将所有内容放在数据库表中,您将得到几十个表来管理所有异常和角落案例。
JT好的观点。。。这并不是税的计算,但这是系统中的报告告诉用户支票寄往何处以及支票金额所需要的。