You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »


Правила договоров состоят из условий и действий.

При применении договора к определенному продукту происходит проверка указанных полей продукта и сопоставление этих данных с условиями, внесенными в правило. В случае, если условия, указанные в правиле, удовлетворены, выполняются действия, указанные в правиле. Например, в качестве действия может быть указано начислить комиссию или сбор. Каждое правило привязывается к определенному типу продуктов, поэтому если вы хотите создать два одинаковых правила для железнодорожных и авиабилетов, нужно создать два правила с привязкой к разным продуктам в поле «Применить к».

Одно правило может содержать несколько условий и несколько действий. В таком случае для выполнения действий продукт должен удовлетворять всем перечисленным условиям.

Действия используются в основном для вычисления комиссии или сбора для продукта, который удовлетворил условиям правила.

Теперь рассмотрим процесс применения договора.

При формировании маски продукта из обменного файла, связанные договоры действуют автоматически, еще до того, как пользователь увидел новый продукт в списке.

Когда договор применяется к продукту, начинается проверка правил, указанных в договоре.

Очень важно запомнить следующие принципы:

  • Правила договора проверяются строго в том порядке, в котором они расположены в списке правил, начиная с первого, верхнего в списке.
  • Комиссия одной категории не может быть применена к одному продукту дважды. То же касается сборов, скидок и т.п. При этом, если сбор и комиссия по какой-то причине имеют одну категорию, для продукта будет рассчитана и сбор, и комиссия.
  • Если для продукта выполнилось правило, это не означает, что работа договора останавливается. Напротив, продукт продолжает проверяться на соответствие условиям правил, далее следующих в списке. Это означает, что на один продукт может быть выставлено неограниченное количество комиссий, сборов и т.п., но лишь в том случае, если каждая комиссия или сбор принадлежат к различным категориям.
Действия правила 1Действия правила 2
Установить сбор категории "A"Установить комиссию категории "Б"
Установить сбор категории "A"

Правило 1 стоит выше Правила 2 и применяется первым. Второе правило, хотя и подходит по условиям, вообще не будет применено, хотя может показаться логичным, что второе правило выполнится частично, установив комиссию. Таким образом, если в результате действия одного правила был рассчитан сбор одной категории, все правила, даже если они включают еще какие-то действия помимо расчета комиссии этой же категории, не будут применены.

Рассмотрим действие этих принципов на примере. В качестве образца выступает продукт типа «Авиабилет», содержащий, помимо прочих, следующие данные:

Название поляЗначение
Владелец бланкаSU
Класс бронированияJ

Пример правила, в котором указаны условия: услуга должна содержать владельца бланка с кодом «SU», и при этом класс бронирования услуги должен соответствовать значению «J»:

Как видно, оба условия соответствуют данным, указанным в услуге. Продукт удовлетворил всем условиям правила, и это означает, что услуга успешно проходит проверку, и действия, описанные в этом правиле, будут применены к услуге. В случае, если хотя бы одно из условий правила не удовлетворено, проверка будет считаться не пройденной, и ни одно действие не будет применено.

Добавим в наш договор еще одно правило, следующее за первым:

Если мы применим договор с этими двумя правилами к нашему продукту, работа договора будет построена следующим образом. Договор проверяет продукт на соответствие условиям первого правила. Условия удовлетворены и на авиабилет выставилась фиксированная комиссия в 300 рублей.

Далее договор проверяет продукт на соответствие условиям второго правила. Как мы видим, продукт удовлетворяет также и условиям второго правила.

Так как в обоих правилах в качестве действия назначено выставление комиссии одной и той же категории, действие второго правила, исходя из третьего принципа, не может быть выполнено.

Однако, если бы комиссии в этих правилах входили в разные категории комиссий, то для авиабилета была бы рассчитаны обе комиссии, общей суммой в 550 рублей.

А теперь поменяем правила в нашем договоре в списке и снова применим этот договор к воображаемому продукту. Оба правила, как прежде, содержат действия по расчету комиссий одной и той же категории.

Теперь для билета будет рассчитана только одна комиссия в размере 250 рублей. Однако, совершенно очевидно, что агентство рассчитывало получить с этого билета 300 рублей. Ошибка в том, что правило с более мягкими условиями было расположено выше правила с более строгими условиями. Так как невозможно начислить две комиссии одинаковой категории для одного продукта, агентство рискует потерять 50 рублей.

Исходя из вышеперечисленных принципов работы правил, следует сделать вывод, что правила с более строгими условиями в списке правил должны располагаться выше правил с более мягкими условиями.

Кроме того, при настройке правил стоит помнить, к каким категориям принадлежат используемые вами комиссии, сборы и т.п.

Условия

Под условием нужно понимать совокупность трех величин:

  • Свойство Это поле, непосредственно получаемое с маски билета, либо вычисляемое на основе значений нескольких полей. Оно может быть строкой, числом, коллекцией строк и т. д.
  • Логическое условие Это элемент из списка вида «равно», «не равно», «содержит» и т.д. Список логических условий может быть различным для разных свойств.
  • Значение Это число (строка и т.д.), которому должно быть равно (либо не равно) свойство. Для некоторых условий можно вводить множество значений через запятую.

Достаточно большое число свойств представляет собой коллекцию строк или элементов списка (например, классы обслуживания, ограничения на форму оплаты). В качестве Значения указывается строковое значение, либо несколько строковых значений, разделенных запятой, либо точкой с запятой. Если Свойство является элементом списка, то значение, либо набор значений предлагается выбрать из списка. С такими свойствами, как правило, используются следующие логическое условия:

  • Содержит - означает что один из элементов коллекции равен значению.
  • Не содержит - означает, что НИ один из элементов коллекции не равен значению.
  • Содержит только - означает, что в коллекции нет элемента, который бы ни был указан в списке значений.
  • Cодержит не только - означает, что в коллекции есть по крайней мере один элемент, который бы не указан в списке значений.
  • Cостоит из - когда все элементы коллекции присутствуют в списке Значений, и наоборот, все элементы из списка значений присутствуют в коллекции.
  • Равно -  значение будет равно хотя бы одному элементу из коллекции. Если же задан список значений, то хотя бы один элемент из этого списка должен совпадать с одним элементом из коллекции.
  • Не равно - означает, что значение не будет равно ни одному элементу из коллекции. Если же задан список значений, то ни один элемент из этого списка не должен совпадать ни с одним элементом из коллекции.

Также встречаются логические условия на даты (вылета, прилета, выписки). С такими свойствами, как правило, используются следующие условия:

  • внутри интервала Дата задана и находится внутри указанного интервала дат.
  • вне интервала Дата задана и находится вне указанного интервала дат.

Если начальная или конечная дата интервала не указана, то по этой дате сравнение не производится. Начальная дата округляется до начала соответствующего дня, конечная — до конца дня.

Действия

Действия правил применяются тогда, когда удовлетворены условия правила. Рассмотрим действия, доступные для большинства продуктов:

ДействияНазначение
Уст. комиссию (простую)Используется для установки комиссии.
Уст. сбор (простой)Используется для установки сбора.
Уст. сбор за оплатуИспользуется для установки сбора за оплату.
Уст. скидку (простую)Используется для установки скидки.

При использовании в одном правиле множества действий, первым будет выполнено действие наверху списка. Можно удалять, добавлять, и перемещать действия относительно друг друга в списке.

Добавление правила

Рассмотрим процесс создания нового правила.

Сначала необходимо открыть какую-нибудь группу правил в режиме редактирования и перейти на вкладку «Правила». Затем следует нажать кнопку «Добавить правило» с указанием типа продукта, для которого оно будет применено (авиабилеты, ж/д, отели и т д.) Откроется окно редактора правила. 

В разделе Параметры расположены сведения о правиле. Рассмотрим, для чего используется каждое из этих полей в таблице ниже.

ПолеНазначение
ИмяНазвание правила.
Период действияВ этих двух полях указывается период действия правила.
Не экспортироватьУказывает, будет ли правило экспортироваться при экспорте правил.
Сохранять при импортеУказывает, сохранится ли правило при импорте правил в этот договор.

В разделах Условия и Действия соответственно размещаются условия и действия правил. В нижней части окна находится строка комментария для правила. В нее можно ввести произвольный текст. 

  • No labels