diff --git a/src/webparts/requestPortal/forms/RecruitingHire/README.md b/src/webparts/requestPortal/forms/RecruitingHire/README.md index b87e505..11336a2 100644 --- a/src/webparts/requestPortal/forms/RecruitingHire/README.md +++ b/src/webparts/requestPortal/forms/RecruitingHire/README.md @@ -28,7 +28,7 @@ заявки кнопка «Организация рабочего места на основе этой» открывает форму it-workplace-setup с префиллом (rpsource = id этой заявки). - **Связь с «Заявкой на подбор» (SelectionRequest\*)** — необязательное поле в - секции «Заявка»: поиск-выбор согласованной заявки на подбор (`SelectionRequestField` + секции «Заявка»: поиск-выбор утверждённой (Согласовано / Выполнение / Закрыта) заявки на подбор (`SelectionRequestField` + `selectionLookup.ts`, только статус «Согласовано», ищет по всем партициям серии). Связь хранится тройкой полей `SelectionRequestId` / `SelectionRequestListId` / `SelectionRequestCode`, а НЕ нативным Lookup — списки партиционированы. В форме diff --git a/src/webparts/requestPortal/forms/RecruitingHire/sections/SelectionRequestField.tsx b/src/webparts/requestPortal/forms/RecruitingHire/sections/SelectionRequestField.tsx index 3f94329..1c3ac1b 100644 --- a/src/webparts/requestPortal/forms/RecruitingHire/sections/SelectionRequestField.tsx +++ b/src/webparts/requestPortal/forms/RecruitingHire/sections/SelectionRequestField.tsx @@ -210,7 +210,7 @@ export const SelectionRequestField: React.FC = ({ d )) ) : (
- {loaded ? 'Нет согласованных заявок на подбор.' : 'Загрузка…'} + {loaded ? 'Нет утверждённых заявок на подбор.' : 'Загрузка…'}
)} diff --git a/src/webparts/requestPortal/forms/RecruitingHire/selectionLookup.ts b/src/webparts/requestPortal/forms/RecruitingHire/selectionLookup.ts index 87bcda1..2b2389e 100644 --- a/src/webparts/requestPortal/forms/RecruitingHire/selectionLookup.ts +++ b/src/webparts/requestPortal/forms/RecruitingHire/selectionLookup.ts @@ -28,8 +28,11 @@ export interface ISelectionRequestOption { title: string; } -// Только согласованные заявки на подбор: приём оформляют по уже утверждённому подбору. -const APPROVED_FILTER = `RequestStatus eq '${REQUEST_STATUS.approved}'`; +// Только утверждённые заявки на подбор: приём оформляют по уже утверждённому подбору. +// После согласования подбор уходит исполнителю («Выполнение»), затем «Закрыта» — +// это тот же утверждённый подбор, поэтому берём все три статуса (как isApprovedStatus). +const APPROVED_STATUSES: string[] = [REQUEST_STATUS.approved, REQUEST_STATUS.execution, REQUEST_STATUS.closed]; +const APPROVED_FILTER = APPROVED_STATUSES.map((s) => `RequestStatus eq '${s}'`).join(' or '); // Предохранитель: партиция всё равно ограничена порогом элементов, но берём // разумный потолок, чтобы одиночный запрос не тянул весь список целиком. @@ -64,7 +67,7 @@ async function queryPartition(list: IListLike, listId: string): Promise