При создании скидок и надбавок вы указываете формулу расчета цены.
Система вычисляет ее в момент совершения заказа.
Для скидок значение должно быть отрицательным.
Формула может считаться в процентах от стоимости или в валюте.
Она может содержать параметры и функции.
В формуле вы можете использовать параметры бронирования.
Параметры нужно облачать в квадратные скобки.
Например: 100 * [PARAMETER].
Чтобы добавить параметры, нажмите Вставить параметр.
Далее выберите какой параметр хотите вставить в формулу.
Название присвоится автоматически, однако вы можете его изменить.
Параметр сразу вставится в формулу.
Параметры формулы — это число штук, а не цена.
Например, число забронированных билетов по детскому тарифу.
Для тарифов за весь ресурс параметр будет равен 1, если тариф использован в заказе.
Иначе параметр будет равен 0.
Числовые поля формы так и передаются в формулу — в виде числа.
Параметр флага примет значение 1, если он выбран на форме.
Иначе — 0.
Также вы можете использовать параметр [STEPS].
Он равен общему числу забронированных шагов.
Например, часов для почасовой аренды.
Более того вы можете задать такой параметр отдельно для каждого правила работы.
Эти параметры доступны, если тип ресурса — аренда.
Помимо обычных арифметических операций вы можете использовать функции.
Чтобы добавить функцию нажмите Вставить функцию.
Далее выберите из списка нужную.
Выбранная функция сразу вставится в формулу.

Список функций:
- Abs([X]) убирает минус у отрицательного числа.
Пример: Abs(-2) = 2.
- Ceiling([X]) округляет до целого числа в большую сторону.
Пример: Ceiling(7.23) = 8.
- Floor([X]) округляет до целого числа в меньшую сторону.
Пример: Floor(4.75) = 4.
- Max([X],[Y]) выбирает большее из двух чисел.
Пример: Max(7,8) = 8.
- Min([X],[Y]) выбирает меньшее из двух чисел.
Пример: Min(7,8) = 7.
- Pow([X],2) вычисляет первое число в степени второго.
Пример: Pow(3,2) = 9.
- Round([X],2) округляет число с указанием точности.
Пример: Round(3.4576,2) = 3.46.
- Sign([X]) для отрицательных чисел возвращает -1. Для положительных единицу.
Пример: Sign(-99) = -1.
- Sqrt([X],2) вычисляет квадратный корень.
Пример: Sqrt(4) = 2.
- Truncate([X]) обрезает дробную часть числа.
Пример: Truncate(15.7) = 15.
- if([CONDITION], [X], [Y]) вычисляет условие и возвращает [X], если оно верно.
Иначе возвращает [Y].
В условии можно использовать операции: >,>=,=,<,<=,<>, or, and.
Пример: if([STEPS] > 5, 100, 200) = 100 для шести интервалов.
- in([X], 1, 2, 3..) определяет входит ли число в последовательность. Результат можно использовать в условии функции if.
Пример: in(7,1,7,8) = true.
Также система поддерживает тригонометрические и прочие функции: Sin([X]), Cos([X]), Tan([X]), Log([X],[Y]), Log10([X]), Exp([X]), Asin([X]), Acos([X]), Atan, IEEERemainder(x,y).