From 814929819a3c55d1e79baf3b617b24f4ce3c5357 Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Thu, 22 Oct 2026 23:47:07 +0400 Subject: [PATCH] =?UTF-8?q?fix(web):=20=D1=88=D0=B0=D1=85=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=BA=D0=B0=20=D0=BA=D1=80=D0=B0=D1=81=D0=B8=D1=82=20?= =?UTF-8?q?=D0=B8=20=D0=BF=D0=B0=D1=80=D1=83=20=D0=B1=D0=B5=D0=B7=20=D0=B2?= =?UTF-8?q?=D1=81=D1=82=D1=80=D0=B5=D1=87=D0=BD=D0=BE=D0=B9=20=D1=81=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=BE=D0=BD=D1=8B=20(one=5Fsided),=20=D0=BA=D0=B0?= =?UTF-8?q?=D0=BA=20API=20=D0=B8=20xlsx=20(AURORA-1651,=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B2=D1=8C=D1=8E=20#158)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- .../specs/intercompany-matrix-ui/spec.md | 7 ++++++- .../ConsolidationChessTable/ConsolidationChessTable.tsx | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/openspec/changes/intercompany-matrix-ui/specs/intercompany-matrix-ui/spec.md b/openspec/changes/intercompany-matrix-ui/specs/intercompany-matrix-ui/spec.md index bc16be6..cb2b870 100644 --- a/openspec/changes/intercompany-matrix-ui/specs/intercompany-matrix-ui/spec.md +++ b/openspec/changes/intercompany-matrix-ui/specs/intercompany-matrix-ui/spec.md @@ -25,7 +25,8 @@ Экран SHALL загружать матрицу при открытии вкладки (`GET /consolidations/versions/{id}/intercompany-matrix/all`) и показывать таблицу: первая колонка «ДБ / КТ» (закреплена слева) — компании периметра в порядке ответа (`companies[]`), остальные колонки — те же компании. В ячейке пары (строка A, колонка Б) SHALL быть три числа друг под другом: сумма `amount_a`, сумма `amount_b` -и расхождение `variance_amount` в скобках; расхождение выделяется красным, если `exceeds_threshold = true`. Если у пары есть +и расхождение `variance_amount` в скобках; расхождение выделяется красным, если `exceeds_threshold = true` или +`one_sided = true` (пара без встречной стороны; правило подсветки — как в API и xlsx, AURORA-1651). Если у пары есть строки ОСВ без сопоставленного счёта (`skipped_osv_entry_count > 0`), рядом с первым числом SHALL показываться значок предупреждения с подсказкой «Строк ОСВ без сопоставленного счёта: N; в суммы не вошли». Если ячейки пары в ответе нет (в том числе на диагонали), SHALL показываться прочерк «—» на приглушённом фоне. Ниже таблицы закреплена строка «Итого»: до @@ -38,6 +39,10 @@ - **WHEN** для пары `(A, Б)` сервер вернул `exceeds_threshold = true` - **THEN** третье число ячейки (расхождение) показано красным, первые два — обычным цветом +#### Scenario: Пара без встречной стороны +- **WHEN** для пары `(A, Б)` сервер вернул `amount_b = 0`, `one_sided = true`, `exceeds_threshold = false` +- **THEN** третье число ячейки (расхождение) показано красным + #### Scenario: Пары нет в ответе - **WHEN** в `cells[]` нет ячейки для пары компаний - **THEN** на их пересечении показан прочерк «—» diff --git a/web/src/widgets/ConsolidationChessTable/ConsolidationChessTable.tsx b/web/src/widgets/ConsolidationChessTable/ConsolidationChessTable.tsx index 3c824b8..a9d1cc4 100644 --- a/web/src/widgets/ConsolidationChessTable/ConsolidationChessTable.tsx +++ b/web/src/widgets/ConsolidationChessTable/ConsolidationChessTable.tsx @@ -79,7 +79,8 @@ export const ConsolidationChessTable: React.FC = ({ {chessTableCellFormatValue(cell.amount_a, units, decimals)} {chessTableCellFormatValue(cell.amount_b, units, decimals)} - + {/* подсветка как в API и xlsx: порог > 5 % или пара без встречной стороны (AURORA-1651) */} + ({chessTableCellFormatValue(cell.variance_amount, units, decimals)})