Troglodit писал(а):При вводных, что скидки не суммируются, а выбираются максимальные
25% быть НИКАК не может.
Правила объединения в данном случае ни при чем, поскольку они работают только для скидок, применяемых на один и тот же объект (то есть по правилам объединяются все скидки на позицию и, отдельно, все скидки на чек). А вот комбинирование скидок на чек и позицию выполняется только либо начислением результата комбинации скидок на чек на результат применения комбинации скидок на позиции, либо его же, но только на позиции без скидок. Звучит достаточно сложно, но иначе формулировка будет не точной.
Фактически спор сейчас сводится к тому, что именно в случае суммовой скидки на чек, возможно два поведения алгоритма.
Вариант 1. Сначала вычисляется сумма всех позиций чека без скидок и уже не неё начисляется суммовая скидка (в абсолютном значении). В этом случае будет начислена полная сумма скидки (если не сработают ограничения по минимальным ценам).
Вариант 2. На все позиции чека производится попытка распределить суммовую скидку чека, но часть из них отбрасывается. В этом случае абсолютное значение скидки на чек будет меньше.
В случае процентной скидки на чек оба эти варианта работают одинаково.
Вот именно принцип работы алгоритма собираюсь поглядеть в исходниках, поскольку наизусть уже не помню сейчас. Отпишусь.