Сколько продлится командировка? Pyrus подскажет

28 июня 2018

Иконка часов

1 мин чтения

Когда руководитель утверждает командировку, ему важно знать, как долго сотрудника не будет в офисе, а бухгалтеру надо рассчитать командировочные. Удобно, если в заявке есть не только даты командировки, но и её продолжительность:

Продолжительность рассчитывается автоматически, как только сотрудник указывает даты.

Чтобы ваша форма с заявкой на командировку умела так же, добавьте в неё числовое поле Продолжительность. Теперь нужно настроить его автоматическое вычисление. Для этого в настройках формы нажмите Редактировать скрипты и скопируйте туда следующий текст. Если поля в вашей форме называются по-другому, замените эти названия прямо в скрипте.

form.onChange(['Дата начала', 'Дата окончания'])   .setValue('Продолжительность', state => {     const [start, end] = state.changes;        if (!start.date || !end.date)       return null;              return daysBetween(       new Date(start.date),        new Date(end.date)     ) + 1;   });  function daysBetween(d1, d2) {   const msInDay = 1000 * 60 * 60 * 24;   return Math.floor((d2.getTime() - d1.getTime()) / msInDay); }

Скрипты — это небольшие программы на языке Javascript, расширяющие возможности форм Pyrus. Подробнее о них вы можете прочитать в справке.

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

Подсказка: командировочный аванс можно рассчитать в этой же форме. Здесь скрипт не нужен: автоматическое вычисление можно настроить в редакторе шаблона.

Расчет аванса встроен в форму