Я снова к тому, что программировать не надо.
Если хочется накопительную скидку, то программировать придется.
НО. Программировать не новый вид скидки. А программировать алгоритм, который автоматически изменяет группу скидок у клиента. Например, группу общих скидок.
Таким образом, должно получится:
1. несколько групп общей скидки или скидки по строке.
2. периодически запускается задание, которое
3. по заданному алгоритму автоматически изменяет группу скидок у клиентов
Таким образом, программирование минимизиурется. Программировать стоит только то, что действительно отличает данное предприятие от других.