Для управление лимитами в заявках на отсутствие необходимо добавить к одному из параметров заявки валидацию следующих параметров
- 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: 'К сожалению, остаток на твоем балансе не позволяет тебе оформить отпуск. Откоректируй даты отпуска и попробуй еще раз отправить запрос.'