feat: совместители в заявлении на увольнение, печать после обходного листа, лицо принимающее ОС/НМА, суммы списания в обходном листе
Четыре независимых доработки поверх связки «Заявление на увольнение» ↔ «Обходной лист»: 1. Совместители (несколько компаний у одного сотрудника): approval-route уже резолвит директора/должностного эквивалента КАЖДОЙ компании отдельным шагом маршрута (HeadType.CompanyDirectors, шаблон route 17: Chief → CompanyDirectors). Organization на форме подачи заявления теперь интерактивная таблица (OrganizationsTable) вместо read-only списка — строку компании можно убрать, если сотрудник реально не увольняется отовсюду сразу; убранная компания сразу снимается и из уже спланированной матрицы (matrix.remove) — искать нужную строку вручную не надо. Новый shared/dictionary/employeeLookup.service.ts зеркалит DirectorPositionByCompany бэкенда (KazpromService → Главный механик, СТ Global → Генеральный директор, иначе Директор) и Employee/Manager (managerType=chief) — используется и здесь, и в следующем пункте. 2. Печать заявления заблокирована, пока парный обходной лист не согласован (статус читается напрямую по ClearanceUrl, без отдельного поля-дублёра). 3. «Лицо, принимающее ОС/НМА» (AssetsAcceptor, People) — обязательное поле, которое заполняет НЕ заявитель, а непосредственный руководитель увольняемого (identity-check по Employee/Manager, а не по должности, как в approverRights «Обходного листа») прямо перед своим решением (DecisionPanel.onBeforeDecide); пустое поле блокирует решение. 4. В обходном листе — 4 независимые пары «сумма к списанию + обязательный комментарий» (ОС/СИЗ/подотчёт, обучение, НМА, ТМЦ), отдельно от уже существующего TrainingAmount. Заполнить может любой активный согласующий (не только профильный), но как только сумма введена — пара блокируется навсегда для всех (лок по снимку на момент загрузки, не реактивно от текущего ввода — иначе поле блокировалось бы прямо во время набора цифр). Списки на /sites/requests обновлены: AssetsAcceptor (Заявление на увольнение), 8 колонок WriteOff* (Обходной лист). tsc --noEmit и heft test (build+lint+179 тестов) чистые. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+2
-2
@@ -45,8 +45,8 @@
|
||||
| [`recruiting-referral`](../src/webparts/requestPortal/forms/Referral/README.md) | Реферальная рекомендация | Рекрутинг | да | да | да | кандидат — внешний (текстовые поля, не People); маршрут по рекомендателю; исполнитель переназначает на реального; условное уточнение «откуда знаете» | ✅ |
|
||||
| [`it-workplace-setup`](../src/webparts/requestPortal/forms/WorkplaceSetup/README.md) | Организация рабочего места | IT | да | да | да | префилл из «прием», поля ПО/доступы правит руководитель | ✅ |
|
||||
| [`it-1c-ticket`](../src/webparts/requestPortal/forms/Ticket1C/README.md) | Заявка в отдел 1С | IT | да | нет | да | контакты предзаполняются из Graph (/me); вместо фазы исполнения — карточка в Microsoft Planner (согласовано/сразу без согласования — рабочий бакет, отклонено — отдельный бакет) | ✅ |
|
||||
| [`clearance-form`](../src/webparts/requestPortal/forms/Clearance/README.md) | Обходной лист | Отдел кадров | да | нет | да | подаётся HR за увольняемого (People-picker); условие «IsManager» резолвится по должности из самой заявки; да/нет-поля (парковка, СКУД), сумма обучения | ✅ |
|
||||
| [`hr-dismissal`](../src/webparts/requestPortal/forms/Dismissal/README.md) | Заявление на увольнение | Отдел кадров | да | нет | да | по умолчанию на себя, но можно за другого; подразделение из профиля (read-only), должность/организация из справочника; последний рабочий день не в прошлом; **после согласования сам создаёт обходной лист** и связывает пару ссылками | ⏳ тип заявки не заведён в админке approval-route |
|
||||
| [`clearance-form`](../src/webparts/requestPortal/forms/Clearance/README.md) | Обходной лист | Отдел кадров | да | нет | да | подаётся HR за увольняемого (People-picker) либо создаётся сам по согласованному «Заявлению на увольнение»; условие «IsManager» резолвится по должности из самой заявки; да/нет-поля (парковка, СКУД); 4 независимые пары «сумма к списанию + комментарий» (ОС/СИЗ/подотчёт, обучение, НМА, ТМЦ) — вводит любой активный согласующий, блокируется навсегда после первого ввода | ✅ |
|
||||
| [`hr-dismissal`](../src/webparts/requestPortal/forms/Dismissal/README.md) | Заявление на увольнение | Отдел кадров | да | нет | да | совместители — таблица компаний с удалением строки (снимает и согласующего из матрицы); должность/организация из справочника; **после согласования сам создаёт обходной лист**; печать заблокирована до согласования обходного листа; «Лицо, принимающее ОС/НМА» — заполняет только непосредственный руководитель | ✅ |
|
||||
| `hr-transfer` | Перемещение сотрудников | Отдел кадров | — | — | — | — | ⏳ заглушка (плитка есть, форма не сделана) |
|
||||
|
||||
Легенда: **Согл.** — есть фаза согласования; **Исп.** — есть фаза исполнения;
|
||||
|
||||
Reference in New Issue
Block a user