2652b4694e
Вместо свободного «В связи с» — обязательный выбор причины (брак, рождение ребёнка, смерть близких, иные случаи); текст причины нужен только для иных случаев. Отпуск — не более 5 календарных дней. Подавать за 14 дней нужно только в иных случаях: остальные события заранее не планируются. Причина хранится в новой Choice-колонке UnpaidLeaveReasonType. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Отпуск без содержания (hr-unpaid-leave)
Назначение: заявление сотрудника на отпуск без сохранения заработной платы.
Категория: Отдел кадров
Списки SP: «Отпуск без содержания — данные» / «Отпуск без содержания — согласование»
RequestTypeId (внешний API маршрутов): плейсхолдер — получит новый числовой id
при заведении типа в админке approval-route (как hr-vacation получил 11).
Маршрут
- Тип заявки в approval-route API (
/api/request-types):pageUrl«hr-unpaid-leave». - Фазы: только согласование. Фазы исполнения нет — после согласования заявка получает статус «Согласовано» (без Planner).
- Матрица редактируема заявителем при новой заявке / черновике / возврате
(как Vacation / RecruitingHire):
useMatrixEditor(editable = !readOnly).
Особое поведение
- Заявку можно подать за другого сотрудника. Поле «Сотрудник» — People-picker
(
Employee). Планируемый маршрут резолвится по e-mail выбранного сотрудника (getPlannedMatrix(..., data.Employee, ...)), reloadKey матрицы включаетdata.Employee. - Автоподстановка должности из профиля (
SPS-JobTitleчерезapproval.getJobTitle) — для текущего пользователя при создании и при выборе другого сотрудника. - Период вводится двумя датами (с / по), обе обязательны, конец ≥ начала.
DaysCountсчитается при сохранении (включительно) для отчётности — в UI не показывается. - Причина (
UnpaidLeaveReasonType, Choice) — обязательна: брак / рождение ребёнка / смерть близких / «В иных случаях». Только при «иных случаях» появляется обязательный текст причины (Reason). У заявок до появления колонки причины нет — их прежний текст изReasonпо-прежнему показывается (isReasonTextShown). - Не более 5 календарных дней (
MAX_DAYS) — при любой причине. - Правило «не позднее чем за 14 дней» (
MIN_NOTICE_DAYS) — только для «иных случаев» (requiresAdvanceNotice): брак, рождение и смерть заранее не планируются. - Замещающий (
Substitute, People) — необязателен. - Заголовок элемента (
Title):Отпуск без содержания — {ФИО} — дд.мм.гггг.
Отличия от «Заявка на отпуск» (hr-vacation)
- Те же «дата начала + количество дней»: даты окончания нет, праздники и выходные не считаются.
- Добавлены поля «Причина» (
UnpaidLeaveReasonType+Reason) и «Лицо замещающее» (Substitute).
Секции формы
RequestSection (сотрудник · должность · дата начала · количество дней · причина · замещающий)
Точки входа
- rptype:
hr-unpaid-leave - Режим согласующего (просмотр): есть (
UnpaidLeaveView) - «Создать на основе»: нет