2026-10-09 23:39:35 +04:00

52 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Why
Панель «Первичные документы» [39], открытая из строки ЮЛ в карточке версии, показывает все файлы ЮЛ
(`GET /legal-entities/{id}/files`), в том числе загруженные в другие консолидации ГК. Решения владельца 09.10.2026
(RSHB/arm-ka-docs#90, сквозной change `../docs/openspec/changes/console-files/`; ядро — RSHB/arm-core#96): файл
загружается в консолидацию (ГК + период) и образует её «рабочий стол»; ядро даёт маршруты
`POST/GET /consolidations/{cid}/legal-entities/{le}/files`, а query `consolidation_version_id` у
`POST /legal-entities/{id}/files` удаляет. Issue — RSHB/arm-web#26.
## What Changes
Экраны: [39] панель «Первичные документы», [40] модалка «Загрузка документов». Эндпоинты arm-core:
`GET /consolidations/{cid}/legal-entities/{le}/files` (новый), `POST /consolidations/{cid}/legal-entities/{le}/files`
(новый), `GET /legal-entities/{id}/files` (без изменений, в `FileOut` добавлено `consolidation_id`),
`POST /legal-entities/{id}/files` (без query версии).
- Консолидация и статус открытой версии выводятся из стора (`consolidations[]` + `current_version_id`) селектором;
отдельного поля в сторе нет.
- `services/api/files.ts`: `listLegalEntityFiles(legalEntityId, consolidationId)` и
`uploadFiles(legalEntityId, files, consolidationId)` — с консолидацией маршруты `/consolidations/{cid}/…`, без неё
маршруты ЮЛ; query `consolidation_version_id` исчезает.
- Панель [39]: по умолчанию рабочий стол консолидации; переключатель «Все документы организации» переключает на список
ЮЛ; в режиме «все» у файла в подписи — его консолидация («2025 К1» по списку консолидаций ГК, «вне консолидации» при
`null`, «другая консолидация» при неизвестном id). Опрос раз в 5 с — по активному списку.
- Кнопка «Загрузить документы» недоступна, если открытая версия не «в работе» (`INITIATED`, `DOCUMENTS_PROCESSING`,
`DATA_CORRECTION`), с подсказкой.
- Типы: `FileOut.consolidation_id: string | null`.
- Спека `primary-files-ui`: три требования переписаны/добавлены.
## Non-goals
- Экран [60] «Монозаёмщики» и панель без контекста консолидации — не делаются (их пока нет во фронте).
- Пометка «документ не подходит версии» в панели — нет (чек-лист версии, OQ-120).
- Перенос файла между консолидациями, удаление файла из панели — нет (как и сейчас).
- Изменение экрана проверки документа [41] и сводной ОСВ — нет.
- `arm-core/web` (дубль фронта в ядре) не трогается.
## Capabilities
### New Capabilities
### Modified Capabilities
- `primary-files-ui`: загрузка в консолидацию, рабочий стол и переключатель «Все документы организации», недоступная
загрузка вне версии «в работе».
## Impact
- `src/services/api/files.ts` (+ `files.test.ts`), `src/widgets/FilesDrawer/{FilesDrawer,FilesList,UploadDocumentsModal}.tsx`,
`src/widgets/FilesDrawer/{useLegalEntityFiles,documentRows}.ts` (+ тест), новый `src/widgets/FilesDrawer/consolidationLabel.ts`
(+ тест), новый `src/store/slices/consolidations/selectors.ts` (+ тест), `src/types/api.ts`.
- Зависимость: ядро с RSHB/arm-core#96 на стенде; до его выката панель получит 404 на маршрутах консолидации.