12 Commits

Author SHA1 Message Date
Andrey Epifancev
2cddb55a5b Форматирование под ESLint + Prettier и зелёный make check (#31)
После merge test (ESLint + Prettier, #30): npm run format и правки,
без которых make check и синхронизация arm-core/web не проходят.

- Список ЮЛ: тип ответа — страница Page<ICatalogueJur> (items/total),
  thunk с rejectValue: string, как в companyGroupsSlice.
- Склонения «организация/запись» — общая функция pluralRu в utils/labels
  (с тестом) вместо вложенных тернарников; заодно верно для 11–14, 21–24.
- Список ГК: пункт — <button> вместо div с onClick (a11y), пустое
  состояние и загрузка — без вложенного тернарника.
- Убраны лишние async, неиспользуемые импорты и проп companyId,
  any в колонке «Основной РФ».

make check: tsc 0, biome 7 предупреждений (как на test), eslint 0 ошибок,
vitest 141/141, build ок.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 18:28:53 +04:00
71dae2173d updated company group and forms 2026-10-15 16:11:02 +03:00
e80f0a249f Merge branch 'test' of https://git.aepif.ru/RSHB/arm-web into feat/legalEntities 2026-10-12 09:54:28 +03:00
3977daebe5 added forms for catalogue jur 2026-10-12 09:45:31 +03:00
8e8e46ecbc addded legalEntities table and move form 2026-10-08 17:04:35 +03:00
Andrey Epifancev
6f8f04a707 feat: экраны по макету — панель документов [39]/[40], сводная ОСВ [30], проверка распознавания [41]/[41-02], консолидации [34], группы [03], логотип, модалка [42] (H-2, #3)
- [39] таблица документов: формат, период, проверка Период/Контрагент, статус плашкой; шапка с ЮЛ и ИНН
- [30] шапка «ГК — год Кn» со статусом, вкладки (только ОСВ), баннер «Осталось N» с фильтром
  несопоставленных, колонки и двухуровневые заголовки макета, фильтры в заголовках, «—» для нуля
- [41] карточки «Исходный документ» / «Результат распознавания», режим просмотра и «Редактировать»,
  форма как бумажный документ, суммы без копеек
- [34] Дата создания, Дата верификации (—, в API нет), ГСК (—, П-3), квартал «К3»
- [03] Основной РФ — название филиала, а не UUID
- логотип АРМ КА, заголовок вкладки, «Отчётность»; [42] члены ГСК наверху списка

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
2026-10-08 03:10:34 +04:00
Andrey Epifancev
5d1c28d0de feat: экран документа и просмотр ОСВ-документа с подтверждением (#3)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
2026-10-08 01:16:37 +04:00
Andrey Epifancev
27828219c9 fix: fetchCompanyGroups читает все страницы (C1 критерий)
GET /directories/company-groups возвращает Page[CompanyGroupOut], но раньше типизировался как ICompanyGroup[].
Реализована пагинация: fetchCompanyGroups теперь читает все страницы по 200 и возвращает полный массив ICompanyGroup[].
Это позволяет thunk/slice получать честный массив с правильным total_groups = payload.length.

Исправлено:
- fetchCompanyGroups: async функция с циклом по total (как fetchAllLegalEntities)
- types.ts / companyGroupsSlice.ts / thunks.ts: типы честные (без приведений)
- потребители (NewConsoleModal, CompanyGroupsTable, Sidebar): используют raw_rows как массив

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
2026-10-08 01:03:12 +04:00
Andrey Epifancev
4424a2b8e8 feat: типы DTO и сервисы API для файлов, документов, форм и свода (#3)
- Дополнены типы в src/types/api.ts (Page, UploadResult, FileOut, DocumentOut, StatementOut, ConsolidatedRowOut, etc.)
- Реализованы сервисы: uploadFiles, listLegalEntityFiles, fetchFileContent, getDocument, getStatement, getAllEntries, buildOsvQuery, getConsolidatedOsv, getOsvSummary, exportOsv
- Переписаны consolidations.ts (getVersionCard вместо getVersionData) и company_groups.ts (fetchRelatedGroups, fetchAllLegalEntities)
- Обновлены вызовы функций в компонентах и slices
- Добавлены unit-тесты files.test.ts и osv.test.ts (11 тестов, все PASSED)
- Типизация strict, без any, все тесты и сборка зелёные

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
2026-10-08 00:59:20 +04:00
Andrey Epifancev
841299b12b chore: убрано наследие старого АРМ, vitest, зелёный make check (#3)
Удалены экраны и моки старого АРМ (FileViewer, FilesList, FileUploaderModel,
PDFResultViewer, mocks.ts), рендер PDF перенесён в widgets/DocumentReview/PdfPages.tsx.
Подключён vitest (npm test, make test, в make check). Исправлены все ошибки tsc и biome:
типизированы ответы api.get, слайсы и thunks, убраны console.log и пустые catch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
2026-10-08 00:45:53 +04:00
maxim
8747f6318c Add consolidation POST + file upload 2026-10-07 22:48:30 +03:00
maxim
81548eb4ae second update 2026-10-07 12:49:10 +03:00