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

leo*_*nel 3 ruby associations ruby-on-rails-3

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

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

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

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

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

jef*_*unt 5

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

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

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

def calculate_final_price(tax_rate)
  price*(1+tax_rate.tax_percentage)
end
Run Code Online (Sandbox Code Playgroud)