У меня есть цитата, которая содержит элементы (хранить в таблице QuoteItem):
QuoteItemId, QuoteId, ItemId, количество и т. Д.
Теперь мне нужно иметь возможность создать группу выбранных элементов в цитате и применить скидку к ней.
Ну, это просто, я создаю еще две таблицы:
Group: GroupId, DiscountPercentage
GroupQuoteItem: GroupId, QuoteItemId
Допустим, у меня есть 30 пунктов в цитате.
Я сделал группу, которая содержит пункты 1-20 из цитаты, и я применил скидку на нее.
Теперь мне нужна другая группа, которая содержит позиции 10-30, проблема заключается в тех внутренних 10 товарах, мне нужно контролировать, должна ли скидка применяться на товары после другой скидки или она должна быть на базовой цене товаров.
Например, я собираюсь поговорить о пункте №. 15 в цитате: QuoteItem.Cost = 100
Я применил 1-ую скидку 10% = 90.
Теперь я хочу применить вторую скидку, мне нужно иметь возможность контролировать, должна ли скидка быть на 100 или на 90.
То же самое, когда у меня есть несколько групп скидок и когда я хочу применить сложную архитектуру скидок.
Любая помощь будет очень признательна.