我正在编写一个简单的发票系统。
产品通常有:名称和成本,有很多行项目。
LineItem是发票内的产品(属于产品,属于发票)
发票有很多行项目
税收有:名称和费率(前8.25%)。
这就是困境:如何在产品,行项目和发票上设置税收?
产品可以有一个或多个税 因此,行项目可以包含一个或多个税。
我应该创建两个表:products_taxes和line_items_taxes并创建两个has_and_belongs_to_many_association?
答案 0 :(得分:5)
税收通常是针对特定地区的,因此,税率确实应该是他们自己的事情。税收与产品之间没有直接关系,而是税率与物品运送/计费地点之间的关系。
所以,我不会在产品和税收之间建立任何关系。我将创建一个tax_rates表,然后在发票模型上定义一个方法(或者在产品模型上,如果您需要进行产品税,这很可能),以计算最终价格。类似的东西:
关于产品型号......
def calculate_final_price(tax_rate)
price*(1+tax_rate.tax_percentage)
end