52 lines
4.3 KiB
Markdown
52 lines
4.3 KiB
Markdown
## 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 на маршрутах консолидации.
|