Как сделать тревел-политику так, чтобы она фиксировалась только как код, но не как нарушение?
Проблема и решение
Предположим, у нас есть тревел-политика, которая всегда будет нарушена, например, такого вида:
Единственное правило в политике: при цене авиабилета более 1 рубля фиксируем нарушение и ставим код нарушения в заказ:
Рассмотрим классический сценарий применения такого правила:
При поиске авиабилетов все варианты будут с нарушением:
Также это видно при выборе пассажира:
Мы видим это нарушение в деталях заказа:
И также видим автоматически зафиксированный код нарушения политики в списке кодов:
Предположим, что для каких-то целей мы хотим фиксировать нарушение по какой-то тревел-политики только при помощи кода, таким образом, чтобы факт нарушения не фиксировался, а просто устанавливался код в заказе. Для этого в редакторе тревел-политики есть специальный флаг “Не фиксировать в качестве нарушения”:
В этом случае любое нарушение данной политики будет зафиксировано только при помощи кода.
Если мы по некоторым политикам хотим фиксировать нарушения классическим способом, а по некоторым - нет, мы должны завести несколько справочников кодов, а также использовать суперпозицию тревел-политик.
При выборе данной политики на поисковой форме:
Мы видим, что на списке вариантов перелета она не фиксируется, как нарушенная:
Также при переходе на следующий шаг не будет показано предупреждение при выборе пассажира:
В деталях заказа нарушение также не будет зафиксировано:
Тем не менее, на этапе установки кодов мы увидим наш код нарушения:
Служебная информация
Источник задачи: https://corteos.megaplan.ru/event/1026461/card/
Реализация: http://ci.corteos.ru:7990/projects/JAV/repos/javelinprojectv3/pull-requests/7978/overview