859 Commits

Author SHA1 Message Date
aep
d130e2658f Merge pull request 'openspec: архив corrections-api-stage-one (AURORA-1540)' (#239) from chore/archive-corrections-api-stage-one into main 2026-11-10 12:36:32 +03:00
Andrey Epifancev
773c9337a1 openspec: архив corrections-api-stage-one (AURORA-1540, PR #208)
Change остался неархивированным после слияния #208; все задачи выполнены.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-10 13:26:29 +04:00
aep
59ac0d1880 Merge pull request 'fix(#235): флажки «Учитывать в КФО» видны без наведения (AURORA-2033)' (#236) from feat/235-kfo-include-flags into main 2026-11-10 12:16:50 +03:00
Andrey Epifancev
2691bc7b2c merge: влить origin/main в feat/235-kfo-include-flags 2026-11-10 13:15:48 +04:00
aep
d67a67ae58 Merge pull request 'fix(#237): «76-исключения», разнесение по стороне строки и по периметру (AURORA-2034)' (#238) from feat/237-acc76-exclusions into main 2026-11-10 12:14:59 +03:00
aep
3a89812048 Merge pull request '[AURORA-1698] - Справочник ГСК/ГСЗ: пункт «Удалить» виден пользователям без права удаления:' (#232) from fix/1698-delete-btn into main 2026-11-10 12:14:39 +03:00
aep
f63781ec4c Merge pull request '[AURORA-1800] - Новая консолидация: поле поиска в блоке «ЮЛ консолидации» подсвечивается красным' (#234) from fix/1800-new-consolidation-search-error into main 2026-11-10 12:13:59 +03:00
aep
4bf43badd4 Merge pull request '[AURORA-1943] - Справочники: недоступен поиск по CRM ID в таблицах ГСК/ГСЗ.' (#233) from fix/1943-crm-id-filter into main 2026-11-10 12:13:38 +03:00
Andrey Epifancev
3296e4a849 fix(#237): разнесение — без строк вне периметра и «сам на себя» (AURORA-2034)
§5 п. 2a: в агрегаты и нераспределённые идут только строки между разными компаниями
периметра версии; строка с ручным решением аналитика остаётся видна. На копии стенда
нераспределённых РБ 2025 К1 — 37 → 3, РБ 2024 К3 — 31 → 3 (вместе с «76-исключениями»).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-10 13:04:10 +04:00
Andrey Epifancev
d13a9554a1 fix(#237): «76-исключения» в правилах элиминации и разнесение по стороне строки (AURORA-2034)
Замечание заказчика 09.11.2026, п. 1: счета 76 (аренда, НДС) не должны участвовать в
расчётах и засорять таблицу корректировок. Список субсчетов — Лысенко 10.11.2026.

- seed правил v1 (правка на месте, решение владельца 10.11.2026): из маски 76 на обеих
  сторонах правил 5–8 исключены 76.07/76.27/76.37 .1/.5/.9, 76.АВ, 76.ВА, 76.К, 76.Н, 76.НА,
  76.ОТ; правило 1 не меняется; на стендах нужен повторный seed;
- результирующая таблица §6 (RESULT_ARTICLES) — тот же список ACCOUNT_76_EXCLUDED, совпадение
  с seed проверяет тест;
- дефект: VgoService._rule_accounts сливал счета дебета и кредита правила, исключения одной
  стороны возвращались через маску другой — Кт-строки 76.* попадали в правила 5–8 и висели
  в нераспределённых (MULTIPLE_RULES); то же в candidate_rule_ids. Теперь account_owners
  ведёт стороны раздельно, правило строки — по её стороне (row_side, rules_for);
- golden-тест правила 6 на фикстурах РБ: 76.АВ вне правила, ΣA 108 062 446,46, 1,65 %
  (совпадает с эталоном, OQ-164).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-10 12:49:52 +04:00
Andrey Epifancev
edb3a5303e fix(#235): флажки «Учитывать в КФО» видны без наведения (AURORA-2033)
Замечание заказчика 09.11.2026, п. 5: флажки почти не видны, заметны только при наведении.
Причины: у агрегата — неактивный (бледно-серый) флажок; у нераспределённой строки рамка
флажка (#d9d9d9) сливалась с приглушённым фоном (#f2f4f7), а исключённая строка затемнялась
целиком вместе с флажком.

- IncludeFlag: флажок с подписью «Да»/«Нет» (как в макете 23.10), у агрегата — зелёная отметка
  вместо неактивного флажка, рамка флажка контрастнее;
- includeView (чистая функция, тесты): что показать в колонке для агрегата, нераспределённой
  строки и строки ОСВ;
- ячейка флажка не приглушается у исключённой строки;
- спека corrections-table-ui: требование к видимости статуса.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-10 12:29:37 +04:00
95983ef01f [AURORA-1800] - Новая консолидация: поле поиска в блоке «ЮЛ консолидации» подсвечивается красным 2026-11-09 15:56:11 +03:00
f4c7247254 [AURORA-1943] - Справочники: недоступен поиск по CRM ID в таблицах ГСК/ГСЗ. 2026-11-09 11:56:19 +03:00
2e6e661575 [AURORA-1698] - Справочник ГСК/ГСЗ: пункт «Удалить» виден пользователям без права удаления:
- добавлена проверка наличия права DIRECTORY_DELETE
2026-11-09 11:46:09 +03:00
aep
371c38c17c Merge pull request 'Архив change quality-metrics (AURORA-1759, #229)' (#230) from chore/archive-quality-metrics into main 2026-11-07 07:52:02 +03:00
Andrey Epifancev
9bcf6373fe Архив change quality-metrics (AURORA-1759)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 08:51:25 +04:00
aep
383113cb2b Merge pull request 'feat(#190): метрики качества первички (AURORA-1759)' (#229) from feat/190-ocr-metrics into main 2026-11-07 07:49:57 +03:00
Andrey Epifancev
2f4817137e docs(#190): M-16 дельта audit-trail — аудит выгрузки метрик качества
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 04:18:34 +04:00
Andrey Epifancev
5a5e5a25ad merge: влить origin/main в feat/190-ocr-metrics (I-10)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

# Conflicts:
#	web/src/auth/permissions.ts
2026-11-07 04:14:40 +04:00
Andrey Epifancev
4593cdc62c docs(#190): M-10 format=csv в README, M-14 ссылка R-4 в docstring, M-16 CLAUDE.md про аудит выгрузки метрик
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 04:14:24 +04:00
Andrey Epifancev
d1f4f45ab0 fix(#190): M-17 маршруты /quality-metrics в тесте OpenAPI
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 04:14:24 +04:00
Andrey Epifancev
24fbec8988 fix(#190): I-9 is_recognized допускает null в контракте quality-facts, тесты NULL-ячейки; M-13 решения R-1..R-3 в design.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 04:14:24 +04:00
Andrey Epifancev
3f6bd96388 docs(#190): дельты OpenSpec quality-metrics, README, CLAUDE.md, правки design/proposal (I-7, M-4, M-5, M-7)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 04:01:45 +04:00
Andrey Epifancev
8f90d0c22f fix(#190): тесты состава прав учитывают QUALITY_METRICS_VIEW (I-8)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 03:58:20 +04:00
Andrey Epifancev
e14f1ab2aa fix(#190): ruff format auto_confirm и recognition_exchange (I-1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 03:57:42 +04:00
Andrey Epifancev
8c7ce7c172 fix(#190): I-2 payload фактов по контракту quality-facts, вендоринг схемы и тест валидации; I-5 дата шапки через parse_date
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 03:56:47 +04:00
Andrey Epifancev
7a6c3641c1 fix(#190): I-3 is_scan и raw_s3_object_id последними колонками, I-4 uploads с фактом приёма не экспирится, M-3 разбор PDF вне event loop
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 03:47:44 +04:00
Andrey Epifancev
85c5ab8596 fix(#190): C-1 query-модели эндпоинтов метрик, M-1 без payload в DISTINCT ON, M-2 аудит EXPORT
- series/cells/export: одна query-модель на маршрут (QualitySeriesParams, QualityCellParams, QualityExportParams),
  иначе FastAPI требовал параметр `filters` и отвечал 422
- _latest_outcomes не тянет payload jsonb
- выгрузка пишет audit_event(EXPORT), тест; design.md: R-12 и исправлено обоснование
- docstring задачи 10: sites 1-3

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 03:40:43 +04:00
Andrey Epifancev
25c568b5be docs(#190): зафиксировать решения задачи 16 (экран качества) в design.md
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:57:03 +04:00
Andrey Epifancev
7ded34fec5 fix(#190): доработки экрана качества по ревью Task 16
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:56:27 +04:00
Andrey Epifancev
717dec69cf feat(#190): экран «Качество первички» (web)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:49:24 +04:00
Andrey Epifancev
3589f53c3c fix(#190): экранировать формулы в CSV-выгрузке качества (T15.1)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:46:25 +04:00
Andrey Epifancev
1d99ea265e docs(#190): зафиксировать решения задачи 15 (API метрик качества) в design.md
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:46:07 +04:00
Andrey Epifancev
bebc678a96 feat(#190): API /quality-metrics — матрица, ряд по месяцам, список, выгрузка
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:43:36 +04:00
Andrey Epifancev
779e13fca8 docs(#190): зафиксировать решения задачи 14 (матрица причин) в design.md
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:38:24 +04:00
Andrey Epifancev
d191fd3039 fix(#190): доработки матрицы причин по ревью Task 14
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:37:50 +04:00
Andrey Epifancev
cd7b687049 feat(#190): матрица причин — чистая функция (§14.3)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-07 02:35:32 +04:00
Andrey Epifancev
b20f3fa607 docs(#190): зафиксировать решение задачи 13 (формат union types.ts) в design.md
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-06 22:58:50 +04:00
Andrey Epifancev
c161643ac1 feat(#190): право QUALITY_METRICS_VIEW всем ролям (design §8)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-06 22:46:48 +04:00
aep
31f327f86f Merge pull request 'Архив OpenSpec: goodwill-table и goodwill-ui' (#228) from chore/archive-goodwill into main 2026-11-06 18:10:01 +03:00
Andrey Epifancev
d4e1554550 Архив OpenSpec: goodwill-table и goodwill-ui (#222, #220)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 19:09:43 +04:00
aep
60cc190066 Merge pull request 'aurora-1544 добавление таблицы гудвил' (#220) from feat/goodWill into main 2026-11-06 18:07:59 +03:00
Andrey Epifancev
c2a52d9ec8 Merge remote-tracking branch 'origin/main' into feat/goodWill 2026-11-06 19:07:28 +04:00
aep
d1e3000dc0 Merge pull request 'feat/goodwillback: бэкенд гудвилл' (#222) from feat/goodwill-back into main 2026-11-06 18:07:13 +03:00
Andrey Epifancev
8485b2c53e Гудвилл: правки по финальному ревью ветки
I-1: сохранённая доля неактивной строки нормализуется (numeric(7,4) читается как 80.1200)
и не даёт INVALID_SHARE при null в пакете; экспорт помечает строку «Нет вложений» (сценарий
спеки); design/tasks/docstring без устаревшего «построчного» PUT, R-7/R-8.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:52:59 +04:00
Andrey Epifancev
6be3936d9f Гудвилл: снятая галочка с неверной долей не блокирует сохранение
Финальное ревью I-1: у неотмеченной строки поле доли скрыто — effectiveRow отправляет
сохранённую долю вместо неверного ввода; подсказка у «Сохранить» называет строки с ошибкой
и предупреждает о скрытых фильтром. design.md goodwill-ui: R-4…R-6.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:50:27 +04:00
Andrey Epifancev
5f2b0e890f Гудвилл: UI-спека goodwill-ui, правки по проверке на стенде
OpenSpec change goodwill-ui (таблица, редактирование, переключатель/фильтр/экспорт;
вкладка «Гудвилл» в intercompany-matrix-ui больше не заглушка; R-1…R-3). По стенду:
стрелка раскрытия блока — у названия, «Выделить все» в одну строку, текст пустой таблицы.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:44:02 +04:00
Andrey Epifancev
3bfcc2e2aa Гудвилл: контракт в docs, README, OpenSpec под ревью
Тест контракта читает ../docs/dev/api-contract-goodwill.openapi.yaml (без docs — skip);
README: раздел гудвилла и коды INVALID_SHARE/DUPLICATE_ROW/MONEY_OUT_OF_RANGE;
OpenSpec goodwill-table: пакетное сохранение, доля два знака, итоги по ГО и УК,
единицы, Decisions made without discussion R-1…R-6.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:41:20 +04:00
Andrey Epifancev
2f5b455aaa Гудвилл: вкладка по API и DOC-259025
Суммы null — прочерк, ноль — 0,00; «Нет вложений» серым без чекбокса; предупреждения
иконкой с подсказкой; итоги «Всего» и «Итого по листу» из groups/totals ответа; в режиме
редактирования — предпросмотр P/G, проверка доли (два знака, без обрезки) и комментария,
групповой чекбокс по действующим строкам блока с indeterminate; сохранение одним пакетом
изменённых строк, ошибка 422 подсвечивает поле своей строки; переключатель «Учитывать
гудвилл в КФО»; фильтр «Нулевые»; экспорт с текущим фильтром.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:37:11 +04:00
Andrey Epifancev
66acde7786 Гудвилл: типы и запросы по API бэка, чистые функции вкладки
Типы по schemas/goodwill.py (has_investments, warnings, nullable суммы, groups,
УК в итогах), пакетный saveGoodwillRows, экспорт с sign; utils/goodwill.ts —
parseShare (два знака, без обрезки), previewAmounts в копейках (HALF_UP, как бэк),
matchesSign (null — только «все»), changedRows (только изменённые строки).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:33:14 +04:00