Files
request-portal/src/webparts/requestPortal/forms/EmployeeTransfer
gorbenko.pavel cf57b40513
Tests / frontend-test (push) Failing after 38s
feat(автосогласование): колонка AutoApprove во всех списках согласования (#20)
Провижининг (Provision-Lists.ps1 читает эти манифесты) теперь заводит колонку
«Автосогласование» (AutoApprove, Да/Нет) в каждом из 12 списков согласования —
рядом с уже существующими SLAhours/AskOverdueReason.

Значение приходит из resolve (approval-route API, шаг маршрута настраивается
только в админке — портал само значение не выбирает, только переносит его в
строку списка при отправке заявки/сохранении черновика, тем же путём, что и
slaHours/askOverdueReason). Фактическое автосогласование по истечении SLA
делает фоновая задача бэкенда (Hangfire), не портал.

В ApprovalMatrix добавлена пометка «(авто)» рядом со значением SLA — чисто
информативно, чтобы участник видел, что решение по шагу может принять не
только человек.

Примечание: ServiceRequest и TmcTransfer не передают ни slaHours/
askOverdueReason, ни (теперь) autoApprove из resolve в строку — это
существовавший пробел (SLA на уровне шага у этих двух форм и раньше не
работал), автосогласование для них наследует только это же ограничение.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/20
2026-09-14 09:02:14 +00:00
..

Заявка на перемещение сотрудника (hr-transfer)

Назначение: заявление сотрудника директору ТОО с просьбой перевести его на другую должность и/или в другое подразделение. Бумажный первоисточник — типовой бланк «Заявление» (перевод) с согласованием начальника подразделения. Категория: Отдел кадров Списки SP: «Заявка на перемещение сотрудника — данные» / «Заявка на перемещение сотрудника — согласование» RequestTypeId (внешний API маршрутов): не хардкодится — резолвится в рантайме по pageUrl («hr-transfer») через useRequestTypeId (см. «Формы больше не хардкодят RequestTypeId» в docs/forms.md). Тип и маршрут нужно завести в админке approval-route.

Маршрут

  • Фазы: только согласование. Фазы исполнения нет — после согласования заявка получает статус «Согласовано» (как «Заявка на отпуск» / «Отпуск без содержания»).
  • Матрица редактируема заявителем при новой заявке / черновике / возврате: useMatrixEditor(editable = !readOnly).
  • Запланированный шаблон маршрута (approval-route, заводится в админке): шаг 1 — HeadType.Chief (непосредственный руководитель сотрудника), шаг 2 — HeadType.CompanyDirectors (директор компании сотрудника, как в «Заявлении на увольнение») — по бумажному шаблону заявление адресовано директору ТОО, а согласовывает его начальник подразделения.

Особое поведение

  • По умолчанию заявка на себя, но подать можно и за другого: «Сотрудник» — People-picker (Employee), маршрут резолвится по e-mail выбранного сотрудника, reloadKey матрицы включает data.Employee.
  • Автоподстановка при выборе сотрудника: текущая должность (Position, редактируема — справочник не всегда точен) и организации (Organization, read-only, OrganizationField) — из Employee/ByEmail (shared/dictionary), тот же приём, что у «Заявки на отпуск».
  • Новая должность (NewPosition) — свободный текст.
  • Новое подразделение (NewDepartment/NewDepartmentId) — справочник Dictionary/Departments (shared/dictionary/DepartmentPicker), не влияет на маршрут (справочное поле, как «Подразделение» в «Заявке на отпуск»).
  • Дата перевода (TransferDate) — обязательна, ограничений по сроку уведомления (в отличие от отпуска/увольнения) шаблон не задаёт.
  • Комментарий (Comment) — необязательный свободный текст.
  • Заголовок элемента (Title): Перемещение — {ФИО} — дд.мм.гггг.
  • Печать (PrintSplitButton/OrgLetterhead) — как у «Заявки на отпуск»: сотрудник может состоять сразу в нескольких организациях, печатается бланк с шапкой выбранной компании.

Секции формы

RequestSection (сотрудник · текущая должность · организация (read-only) · дата перевода · новая должность · новое подразделение · комментарий)

Точки входа

  • rptype: hr-transfer
  • Режим согласующего (просмотр): есть (EmployeeTransferView)
  • «Создать на основе»: нет