45 Commits

Author SHA1 Message Date
c9f2ec3be1 Merge branch 'main' of https://git.aepif.ru/RSHB/arm-core into feat/goodWill 2026-11-05 14:01:34 +03:00
0ee7fe95f1 форматирование 2026-11-05 13:59:17 +03:00
a1054f08c9 aurora-1544 обновленна таблицы гудвил и вынесена в отдельный компонент фильтр единиц и знаков после запятой 2026-11-05 13:57:54 +03:00
70802d788c added basis of goodwill table 2026-11-05 09:10:18 +03:00
Andrey Epifancev
c2bf047cb3 Merge main (AURORA-1540/1751, arm-core #208): реальный API корректировок/ВГО
Конфликт в ConsolidationReportPage.tsx — импорт ChessContent (main) и
CorrectionContent (эта ветка), оставлены оба.
2026-11-02 20:46:10 +04:00
4e657925f8 форматирование 2026-10-30 10:27:43 +03:00
0cb395f5e7 aurora-1589, исправление расхождения с макетом 2026-10-30 10:26:31 +03:00
3544623d18 Merge branch 'main' of https://git.aepif.ru/RSHB/arm-core into fix/chessTable 2026-10-29 11:06:40 +03:00
Andrey Epifancev
c2cbbf5dfd fix(web): правки по ревью Task 5 — лимит комментария, подсказки, защита от двойного запроса (#206)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:39:26 +04:00
Andrey Epifancev
d98f264f90 feat(web): вкладка «Таблица корректировки» — таблица и панель (#206)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:22:56 +04:00
Andrey Epifancev
57e54e4055 AURORA-1636/1693: правки ревью — архив ГК только фильтр списка справочника
- список ГК в сторе снова общий и полный (с архивными); «Архив» фильтрует только список справочника,
  выбор ГК — первая показанная, пустой список — «Группа компаний не выбрана»
- перенос ЮЛ и новая консолидация не предлагают архивные ГК
- «Входит в ГСК/ГСЗ» — поля строки in_gsk/in_gsz, колонки только в карточке ГК (не в «ЮЛ вне ГК»)
- «Архивировать» красным, а не «Разархивировать»; тексты модалки и кнопка «Сохранить» в изменении ГК
- вернул поясняющие комментарии; поиск ГК не сжимается галочкой «Архив»
- тесты: selectors (видимые ГК, выбор ГК), toCatalogueJurRow

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 17:27:04 +04:00
Andrey Epifancev
7e72a63b16 Влил main в ветку ревью AURORA-1636/1693 2026-10-28 17:13:46 +04:00
dcb92e197c refactoring 2026-10-28 12:14:40 +03:00
Andrey Epifancev
68a0af3450 Merge remote-tracking branch 'origin/main' into feat/197-back-to-primary-docs
# Conflicts:
#	web/src/utils/consolidations.test.ts
#	web/src/utils/consolidations.ts
2026-10-27 23:11:20 +04:00
Andrey Epifancev
a653172418 fix(web): «Назад» из документа возвращает панель «Первичные документы» организации (#197, AURORA-1682)
Открытая панель «Первичные документы» живёт в адресе экрана консолидации (?entity=<id ЮЛ> рядом с ?version=),
открытие и закрытие заменяют запись истории. «Назад» из документа, открытого из панели, возвращает на консолидацию
с той же версией и панелью той же организации; переключатель документа (AURORA-1692) и прямая ссылка — как прежде.

- utils/consolidations.ts: panelEntity / withPanelEntity + тест;
- ConsolidationsList: панель открыта по ?entity=, когда ЮЛ из адреса уже в сторе (без мелькания прежнего ЮЛ);
- ConsoleLegalEntities: onDrawerOpen(id ЮЛ строки);
- change back-to-primary-docs: MODIFIED document-review-ui «Переключатель документа», ADDED primary-files-ui
  «Открытая панель в адресе экрана консолидации».

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 22:54:56 +04:00
Andrey Epifancev
8194f47d1a feat(#195): модалка «Нет встречных записей» перед шахматкой и баннер строк без ИНН
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 18:56:51 +04:00
082768f679 форматирование 2026-10-27 17:14:54 +03:00
c64975241b aurora-(1636, 1693): обновление справочника гк и юл и исправлена фильтрация юл без гк 2026-10-27 17:04:18 +03:00
aep
fabc74982b Merge pull request 'AURORA-1683 Комментарии к документу: список на экране проверки и счётчик в панели' (#182) from feat/180-document-comments into main 2026-10-26 23:51:12 +03:00
Andrey Epifancev
8c7146d33e AURORA-1683 ревью: клики в поповерах не открывают документ, черновик не переходит на другой документ
I-1: обёртка со stopPropagation вокруг всего Popover (CommentsPopover и FileWarningsPopover);
I-2, M-2: key={doc.id} на боковой панели комментариев; решения R-5…R-12 в design.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 00:36:39 +04:00
Andrey Epifancev
63251b287a AURORA-1683 экран документа: список комментариев в боковой панели
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 00:23:11 +04:00
aep
ed0052bad0 Merge pull request 'AURORA-1671: исправления по функционалу ГК и ЮЛ' (#179) from fix/legalEntities into main 2026-10-26 23:17:17 +03:00
Andrey Epifancev
3aad670510 fix(web): справочники — выбранная ГК, счётчик ЮЛ, ошибки у полей (ревью #179, AURORA-1671)
- Страница ГК: снова выбирается первая ГК списка; список ЮЛ без выбранной ГК
  не запрашивается (иначе уходил запрос по всем ГК), «ЮЛ вне ГК» грузится без ГК.
- Выбранная ГК обновляется после перезагрузки списка ГК — счётчик ЮЛ в шапке
  и на вкладке после создания/переноса/вывода ЮЛ.
- Загрузка ГСК/ГСЗ: try/finally — ошибка не оставляет вечный спиннер.
- Форма ЮЛ: INVALID_INN/INVALID_KPP/INN_EXISTS/CRM_ID_EXISTS — у поля;
  КПП приводится к верхнему регистру при вводе.
- crm_id ГСК/ГСЗ — string | null; колонка «ID в CRM»; LE_PAGE вместо литерала;
  возвращён комментарий в фильтре шахматки.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 00:00:47 +04:00
daec128fc3 AURORA-1671: добавленна отображения ошибки crm_id_exists напрямую в форму 2026-10-26 14:11:48 +03:00
633c4d3fed AURORA-1671: исправления по функционалу ГК и ЮЛ 2026-10-26 13:35:05 +03:00
maxim
1197a94f3c fix: AURORA-1692 - кнопка 'Назад' при просмотре документов 2026-10-23 14:37:27 +03:00
Andrey Epifancev
36224dd81c Merge origin/main в AURORA-1589: шапка, «Единицы» и [31-00] — в страницу отчёта с вкладками #158 (ревью #166)
Конфликты после #158 (страница отчёта с вкладками по адресу):
- layouts/ConsolidationReportPage: пояснение статуса, тег, «Изменить статус» и модалка [33-01] из ConsolidatedOsvPage;
- widgets/ConsolidatedOsvContent: «Единицы / Знаков» и onUnmappedChange (unmapped_total наверх);
- OsvTabs: вкладки по адресу из main + модалка [31-00] при уходе с «ОСВ»;
- types/api.ts: обе части.
Спека consolidations-ui: решение (ц), Known issues 11 и 15 (lucide-react в зеркале есть), tasks 2.5, 2.8;
ARCHITECTURE.md и web/CLAUDE.md — новая страница отчёта.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 10:59:14 +04:00
Andrey Epifancev
d71c46e846 fix(web): список консолидаций и «Взять в работу» по спеке (AURORA-1589, PR #166)
«Только в работе» выключен по умолчанию, параметр — boolean; ошибка загрузки списка
показывается; пункты «⋯» disabled с подсказкой «Будет позже», клик не выбирает строку;
«Взять в работу» неактивна по коду CANCELLED. Модалка [35]: опечатки, плейсхолдер,
≤ 1000 символов, «К3», ошибки (403 и прочие) — текст сервера, ФИО без второй точки;
после взятия в работу перечитываются список и панель «Организации» («Ответственный»).
Боковое меню: thunk списка с объектом, отступ секций. Порядок импортов (biome).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 01:15:55 +04:00
Andrey Epifancev
ccca6dfa13 fix(web): «Изменить статус» — путь /consolidations/…/status, модалка по спеке, [31-00] (AURORA-1589, PR #166)
404 был из-за опечатки в пути (/consolidation/ без s). Модалка берёт статус из карточки
страницы, а после 200 страница берёт карточку из ответа; в «Новом этапе» ничего не
выбрано; ошибки — текст сервера, модалка остаётся открытой. Кнопка в шапке активна при
своей блокировке и наличии ручных переходов, подсказка «Возьмите консолидацию в работу».
Пояснение под заголовком — текст статуса, а не название. Модалка «Остались неуказанные
ИНН» при уходе с «ОСВ» (вкладки шагов пока неактивны). Предупреждение браузера при
начатом вводе.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 01:15:55 +04:00
maxim
71ef6333b5 fix(1539): единицы измерения в сводной ОСВ, полоса прокрутки 2026-10-22 23:14:21 +03:00
maxim
723c84cc72 fix: карточка консолидации 2026-10-22 19:11:55 +03:00
maxim
5ee54bd94f fix: блокировка версии, доработка визуала таблицы версий консолидации, фильтр 'Только в работе' 2026-10-22 19:11:55 +03:00
d1c0f93360 добавленна результирующая таблицв ВГО 2026-10-22 10:07:33 +03:00
cbeb9daa38 fixed bugs 2026-10-21 16:48:11 +03:00
Andrey Epifancev
e19291c886 chore(web): format и biome для шахматки (ревью #158)
- npm run format (eslint --fix, biome check --write, prettier --write) по файлам шахматки;
- biome: import type и сортировка импортов; явный тип IntercompanyMatrixResponse у `let res`
  (ConsolidatedChessContent); Number.isNaN вместо isNaN (ConsolidationChessTable); key у span в OsvTabs;
  `?? null` вместо пустого фрагмента (ConsolidatioReportPage). Поведение не менялось.

Остаются предупреждения eslint в коде шахматки (any, deps хуков, console) — за автором.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 14:05:23 +04:00
Andrey Epifancev
175343b843 fix(web): вернуть синхронизацию фронта #139/#140, затёртую в ветке шахматки (ревью #158)
Коммит 7891430 откатил синхронизацию фронта (5bec434, #139/#140) и форматирование Prettier (#137).
Из origin/main восстановлены файлы, не относящиеся к шахматке:
- index.tsx (тема antd: Layout.fontSize, Form.labelFontSize/labelColor);
- layouts/DocumentPage.tsx (переключатель документа, комментарий к документу);
- services/api: consolidations.ts (getChecklist), documents.ts (postComment), files.ts (removeFile),
  directories/catalogue_jur.ts; types/consolidations/version_members.ts (ChecklistBackendShape);
- widgets: ConsoleLegalEntities (ChecklistModal, checklist_utils), FilesDrawer (DeleteModal, ReplaceDocModal,
  documentRows), DocumentReview (CommentModal, StatementReview, reviewCounters, reviewView),
  CatalogueJurForm, CatalogueJurTable, CompanyGroupsList;
- hooks/useVirtualList.tsx и components/TableTag/presets.tsx (форматирование Prettier).

В файлах шахматки оставлены её изменения: App.tsx, layouts/index.ts, api/client.ts (init в apiFetchBlob), OsvTabs.tsx,
ConsolidatedOsvContent.tsx. Из main возвращён key={version_id}: страница отчёта разделена на обёртку с key и
содержимое, чтобы при смене версии состояние (карточка, фильтры, страница) создавалось заново, как в ConsolidatedOsvPage.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 14:04:19 +04:00
7891430fce added chess table consolidation 2026-10-19 17:39:34 +03:00
Andrey Epifancev
5958b07410 fix(web): синхронизация встроенного фронта с arm-web@test (a3c0010) (#139)
Перенесён диапазон arm-web 8345f5e..a3c0010 (3 коммитов, 22 файлов набора
синхронизации) скриптом docs/scripts/sync-web.sh. После переноса web/ и
arm-web@test идентичны по набору. Коммиты arm-web:
- ff1e45c file id as option value for react rendering
- 0242486 fix(#49): зелёный make check и исправления после ревью (AURORA-144)
- 0fdbd80 feat: add comments frontend, checklist modal, files delete, select options in document review

Co-Authored-By: sync-web.sh <noreply@aepif.ru>
2026-10-19 14:54:36 +04:00
Andrey Epifancev
ec12397854 fix(web): синхронизация встроенного фронта с arm-web@test (8345f5e) (#137)
Перенесён диапазон arm-web 46639b1..8345f5e (9 коммитов, 41 файлов набора
синхронизации) скриптом docs/scripts/sync-web.sh. После переноса web/ и
arm-web@test идентичны по набору. Коммиты arm-web:
- 5b13b74 Форматирование под ESLint + Prettier, зелёный make check (#31)
- 681697f fixed eslint bugs
- 25d2211 fixed bugs
- 2cddb55 Форматирование под ESLint + Prettier и зелёный make check (#31)
- 71dae21 updated company group and forms
- 83d4c2b added company group table
- d2dc230 fixed merge bug
- 3977dae added forms for catalogue jur
- 8e8e46e addded legalEntities table and move form

Co-Authored-By: sync-web.sh <noreply@aepif.ru>
2026-10-19 11:35:41 +04:00
Andrey Epifancev
f7cdd42c3d fix(web): синхронизация встроенного фронта с arm-web — ячейка ИНН в сводной ОСВ (#94)
Перенесён коммит arm-web 0f7a101 (#17): «Указать» только у строк без ИНН и без
связи с ЮЛ, «таблетка» с ИНН сопоставленного ЮЛ и пересопоставление («Связано»
в модалке), фильтр «только без ИНН» в колонке, баннер по макету [32-osv-no-inn],
поле counterparty_entity_inn в типах (бэкенд — arm-core #74). После переноса
исходники web/ и arm-web@test совпадают.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 22:38:22 +04:00
maxim
2a6383ec1c Merge web repo 2026-10-08 18:09:07 +03:00
Andrey Epifancev
d3c2f8ab1f feat(web): страница администратора — пользователи, роли, матрица прав
Маршрут /admin (вкладки «Пользователи» и «Матрица прав») и пункт «Система → Пользователи и роли» в меню;
без USERS_ADMIN в /me — экран «Нет доступа», таблицы не монтируются и запросов к /admin/* нет, пункт меню скрыт.

Почему без Redux: данные экрана нужны только ему, после каждой правки перечитываются с сервера — хватает
локального state и маленького хука useAsyncData (отбрасывает устаревшие ответы и ответы после ухода со страницы).
Клиент один — api/client.ts (Bearer из sessionStorage, ошибки сервера -> ApiError с кодом и текстом); ошибки
показываются через App.useApp().message (корень обёрнут в antd App). Экран показывает только серверное состояние:
при отказе (409 LAST_ADMIN и др.) — уведомление и перечитывание, матрица сохраняет роли по очереди.
РАИСА появится в auth/: токен даст SSO вместо dev-входа; этот экран и клиент не меняются.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 01:04:32 +04:00
Andrey Epifancev
498450b763 feat(web): API-клиент с Bearer, dev-вход по email, загрузка /me
Токен хранится в sessionStorage (design D-9; без Redux): живёт до закрытия вкладки, все обращения к хранилищу в try/catch с запасным токеном в памяти.
apiFetch подставляет Bearer, на 401 сбрасывает токен и шлёт событие armka:unauthorized, ошибки разбирает по трём формам detail (строка / {code,message} / массив 422).
useMe не ходит в /me без токена и отбрасывает устаревшие ответы (флаг cancelled), AuthGate показывает вход, пока профиля нет.
Форма DevLogin вырезается из production-сборки по литералу process.env.NODE_ENV; через Config это не работает: process.env там заменён объектом REACT_APP_*.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 00:23:56 +04:00
Andrey Epifancev
8e1f423ad6 chore: вычищены остатки доменного кода, каркас проходит tsc/biome/rsbuild 2026-10-02 23:34:55 +04:00
Andrey Epifancev
ba922225ab chore: каркас из шаблона команды (DKB_ARMKA@ba172f8, доменный код удалён) 2026-10-02 23:15:37 +04:00