VKTelegram

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

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

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

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

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. Подробнее о них вы можете прочитать в справке.

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

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

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

VKTelegram