Исходя из прошлого опыта программежа под ERP-системы, помню, что налога на товар мало. Нужны группы налогов (например НДС+акциз+НСП+какой нить еще налог).
Как с точки зрения логики можно организовать.
1. Пользовательская Сущность "Налоги". Атрибуты "Название налога", "Процентная ставка", "режим расчета" (входит в сумму/накручивается сверху)
2. Пользовательская Сущность "Группы налогов". Родительская для сущности "Налоги". Она же основной объект для связи с сущностью "Продукт".
3. Системная Сущность "Бизнес-партнер". Атрибут "Применять налоги". значения "Везде/только в закупках/только в продажах/Не применять".
Как это работает на примере Счетов
1. В сущность Счет добавляем атрибут "Сумма налога"
2. В сущность Продукты для счета добавляем атрибут "% налога", "Сумма налога"
3. Теперь, при привязке Клиента к счету будем знать - считать налоги по этому счету или нет (атрибут "Применять налоги" сущности "Бизнес-Партнер"
4. При изменении кол-ва и/или цены на продукт рассчтиываем налоги для позиции, исходя из значения атрибута "режим расчета" для данного продукта
5. При сохранении Счета / Вызове ф-ии "пересчитать" - пересчитать сумму налога по Счету, просуммировав суммы налогов спецификации...
В принципе весь расчет делается с помощью веб-сервисов.
__________________
Победивший противника - силен, победивший себя - величественнен
|