Podíval bych se na přidání sloupce do tabulky GroupQuoteItem, GroupQuoteItem.Priority. Tento sloupec by byl použit v dotazu, který určuje konečnou cenu. Pokud máte N slev se stejnou nejvyšší prioritou, budou se naskládat na sebe (na pořadí nezáleží, díky asociativitě násobení).
Pokud budou všechny tyto slevy s vysokou prioritou později odstraněny, mohou je nahradit slevy s nižší prioritou. To by vám mělo pomoci při nastavení poměrně složitých struktur slev.
Doufám, že vám to alespoň umožní začít.