Saya akan melihat ke dalam menambahkan kolom ke tabel GroupQuoteItem, GroupQuoteItem.Priority. Kolom ini akan digunakan dalam kueri yang menentukan harga akhir. Jika Anda memiliki N diskon dengan prioritas tertinggi yang sama, mereka akan ditumpuk di atas satu sama lain (urutan tidak masalah, berkat asosiatifitas perkalian).
Jika semua diskon berprioritas tinggi ini kemudian dihapus, diskon dengan prioritas lebih rendah dapat menggantikannya. Ini akan membantu Anda dalam menyiapkan struktur diskon yang cukup rumit.
Saya harap setidaknya memberi Anda tempat untuk memulai.