Расчёт услуг по формуле

В DomoMeter предусмотрена возможность указать формулу для расчёта стоимости услуги. Это пригодится, когда услуга начисляется по сложным правилам, не входящим в основной набор способов расчёта, предустановленных в программе.

Чтобы воспользоваться этим функционалом, нужно при создании услуги указать способ расчёта «Формула», и в соответствующем поле ввести формулу, по которой будет производиться расчёт стоимости. Формула, указанная в свойствах услуги, действует как шаблон: при добавлении новой записи в Журнал будет создана копия формулы, которую можно отредактировать только для выбранного месяца.

Теги

В формулах можно использовать теги — специальные строковые маркеры, которые будут заменены на значения расхода или стоимости других счётчиков или услуг. Набор доступных тегов зависит от созданных счётчиков и услуг и способов их расчёта. Для счётчиков и услуг, имеющих расход (например тех, которые рассчитываются по нормативу), доступны теги вида {название : расход}. Для прочих счётчиков и услуг доступен только тег вида {название : сумма}.

Ниже приведён пример формулы для расчёта стоимости услуги, зависящей от суммарного расхода холодной воды по двум счётчикам с названиями ХВС1 и ХВС2. Для услуги установлен фиксированный тариф 1.17 руб./м3.

Пример 1. Использование тегов.

Формула

({ХВС1 : расход} + {ХВС2 : расход}) * 1.17

Чтобы добавить тег в формулу, введите текст тега во вкладке «Формула» редактора формул, или выберите тег из списка с помощью меню «Вставить тег или переменную» на панели инструментов.

Переменные

Помимо тегов в формулах можно использовать переменные — специальные строковые маркеры, которые будут заменены на значения, специфичные для каждого месяца. Например, некоторая услуга может рассчитываться как процент от суммы начислений по холодной воде. Процент от суммы меняется от месяца к месяцу, и в данном случае можно завести переменную {Процент от суммы}.

Пример 2. Использование переменных.

Формула

({ХВС1 : сумма} + {ХВС2 : сумма}) * {Процент от суммы} / 100

Переменные

{Процент от суммы}

Для добавления переменной откройте окно редактора формул, перейдите на вкладку «Переменные», нажмите «Плюс» и укажите имя переменной. Имя будет использоваться в формуле и отображаться в Журнале в параметрах услуги. Кроме имени переменной нужно указать значение по умолчанию, которое будет использовано при вычислении формулы, если значение переменной не было задано. Чтобы добавить переменную в формулу, введите текст {имя_переменной} во вкладке «Формула» редактора формул, или выберите переменную из списка с помощью меню «Вставить тег или переменную» на панели инструментов.

Чтобы ввести значение переменной, откройте месяц в Журнале и разверните услугу. В параметрах услуги ниже поля «Формула» будет отображён список всех переменных формулы. По нажатию на имя переменной откроется поле для ввода значения.

Операторы и функции

Ниже дан список операторов или функций, которые можно использовать в формулах.

Операторы Действие Пример Результат
Арифметические
+ сложение 12 + 13 25
вычитание 1234 − 234 1000
* умножение 3.23 * 12 38.76
/ деление 63.7 / 2.45 26
Логические
= равно 12 = 3 ложно
!= не равно 12 != 3 истинно
> больше 12 > 3 истинно
< меньше 12 < 3 ложно
>= больше или равно 12 >= 3 истинно
<= меньше или равно 12 <= 3 ложно
& и (12 > 3) & (7 > 11) ложно
| или (1 > 3) | (7 < 11) истинно
Условные
if (условие, да, нет) оператор условия if (12 > 3, 11 * 2, 44 * 3) 22

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

Оператор условия

Иногда услуга может вычисляться по-разному в зависимости от условий, например, некоторого порогового значения. В этих случаях в формулах стоит использовать оператор условия. Оператор условия принимает 3 аргумента:

  • логическое условие (выражение, содержащее логические операторы)
  • выражение, которое будет вычислено, если логическое условие выполняется (истинно)
  • выражение, которое будет вычислено, если логическое условие не выполняется (ложно)

В таблице выше результатом выполнения функции будет 22, так как логическое условие 12 > 3 истинно, и будет вычислено первое выражение 11 * 2.

Ниже дан пример использования формулы для вычисления стоимости услуги, которая зависит от суммарного потребления холодной воды по двум счётчикам. Если объём потреблённой воды ниже порогового значения, то используется первая тарифная ставка, если выше — вторая тарифная ставка. Обратите внимание, что пороговое значение и тарифные ставки введены как переменные, что позволяет использовать одну и ту же формулу при меняющихся тарифах.

Пример 3. Использование условного оператора.

Формула

if ({ХВС1 : расход} + {ХВС2 : расход} < {Порог}, {Ставка 1}, {Ставка 2}) * ({ХВС1 : расход} + {ХВС2 : расход})

Переменные

{Порог}
{Ставка 1}
{Ставка 2}

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

comments powered by HyperComments