在铁路订购系统中建立销售税的最佳方法是什么

时间:2011-10-06 15:20:33

标签: ruby ruby-on-rails-3 associations

我正在编写一个简单的发票系统。

产品通常有:名称和成本,有很多行项目。
LineItem是发票内的产品(属于产品,属于发票) 发票有很多行项目 税收有:名称和费率(前8.25%)。

这就是困境:如何在产品,行项目和发票上设置税收?

产品可以有一个或多个税 因此,行项目可以包含一个或多个税。

我应该创建两个表:products_taxes和line_items_taxes并创建两个has_and_belongs_to_many_association?

1 个答案:

答案 0 :(得分:5)

税收通常是针对特定地区的,因此,税率确实应该是他们自己的事情。税收与​​产品之间没有直接关系,而是税率与物品运送/计费地点之间的关系。

所以,我不会在产品和税收之间建立任何关系。我将创建一个tax_rates表,然后在发票模型上定义一个方法(或者在产品模型上,如果您需要进行产品税,这很可能),以计算最终价格。类似的东西:

关于产品型号......

def calculate_final_price(tax_rate)
  price*(1+tax_rate.tax_percentage)
end