Управление лимитами в заявках на отсутствие

Written by Anton Resko
Updated 2 years ago

Для управление лимитами в заявках на отсутствие необходимо добавить к одному из параметров заявки валидацию следующих параметров

          - id: endDate
            caption: Дата по
            type: date
            mode: date
            validations:
              - formula: 'GetTimeOffBalance([CaseAuthor], "Тип отсутствия", [timeOffParameters.startDate]) - GetTimeOffRequestedDays([CaseAuthor], "Тип отсутствия", [timeOffParameters.startDate], [timeOffParameters.endDate]) Условие'
                message: 'Сообщение'

Тип отсутствия - укажи тип отсутствия (аналогичный типу отсутствия в заявке).

Условие - >/</=/>=/<= число (пример >= 0, < -1)

Функция GetTimeOffBalance([CaseAuthor], "Тип отсутствия", [timeOffParameters.startDate]) - возвращает баланс на начало запрашиваемого отпуска по указанному типу отсутствия

Функция GetTimeOffRequestedDays([CaseAuthor], "Тип отсутствия", [timeOffParameters.startDate], [timeOffParameters.endDate]) - возвращает число запрашиваемых дней учитывая тип отсутствия и календарем отсутсвий для данной персоны

Выражение GetTimeOffBalance([CaseAuthor], "Тип отсутствия", [timeOffParameters.startDate]) - GetTimeOffRequestedDays([CaseAuthor], "Тип отсутствия", [timeOffParameters.startDate], [timeOffParameters.endDate]) -   возвращает разницу между балансом на начало запрашиваемого отпуска и количеством запрашиваемых дней

Пример ограничения (нельзя уходить в минус)

parameters:
  declaration:
    - id: timeOffParameters
      caption: Leave parameters
      type: struct
      parameters:
        declaration:
          - id: startDate
            caption: Дата с
            type: date
            mode: date
            validations:
              - formula: 'GetTimeOffBalance([CaseAuthor], "Vacation", [timeOffParameters.startDate]) - GetTimeOffRequestedDays([CaseAuthor], "Vacation", [timeOffParameters.startDate], [timeOffParameters.endDate]) > 0'
                message: 'Текст возвращаемой ошибки'

Пример ограничения (нельзя уходить больше чем на  -19 дней при оформлении заявки

parameters:
  declaration:
    - id: timeOffParameters
      caption: Leave parameters
      type: struct
      parameters:
        declaration:
          - id: endDate
            caption: Дата по
            type: date
            mode: date
            validations:
              - formula: 'GetTimeOffBalance([CaseAuthor], "Vacation", [timeOffParameters.startDate]) - GetTimeOffRequestedDays([CaseAuthor], "Vacation", [timeOffParameters.startDate], [timeOffParameters.endDate]) >= -19'
                message: 'К сожалению, остаток на твоем балансе не позволяет тебе оформить отпуск. Откоректируй даты отпуска и попробуй еще раз отправить запрос.'
Did this answer your question?