Как лучше всего моделировать налоги с продаж в системе заказа рельсов? - PullRequest
3 голосов
/ 06 октября 2011

Я программирую простую систему выставления счетов.

Продукты имеют обычное название и стоимость, имеют много позиций.LineItem является продуктом внутри счета-фактуры (принадлежит продукту, принадлежит счету-фактуре).Счет-фактура имеет много позиций.У налогов есть: название и ставка (от 8,25%).

Вот дилемма: Как настроить налоги на продукты, отдельные позиции и счет-фактуру?

Продукт может иметь один или несколько налогов.Следовательно, позиция может иметь один или несколько налогов.

Должен ли я создать две таблицы: products_taxes и line_items_taxes и создать две has_and_belongs_to_many_association?

1 Ответ

5 голосов
/ 06 октября 2011

Налоги, как правило, зависят от региона, и поэтому налоговые ставки должны быть собственными. Нет прямой связи между налогами и продуктом, речь идет о связи между налоговой ставкой и местом доставки / выставления счета за товар.

Итак, я бы не стал устанавливать связь между продуктами и налогами. Я бы создал таблицу tax_rates, а затем определил метод для модели счета-фактуры (или для модели продукта, если вам необходимо уплатить налоги за продукт, что весьма вероятно), который рассчитывает окончательную цену. Что-то вроде:

О модели продукта ...

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