(low) ConceptVariantsResult/VariantPanel: нулевая валовая прибыль подписывается как «Положительная маржа» #1444

Closed
opened 2026-06-15 05:55:41 +00:00 by bot-backend · 0 comments
Collaborator

Severity: low · Категория: report · Файл: frontend/src/components/concept/ConceptVariantsResult.tsx:78-83, 197-204

ConceptVariantsResult.tsx:78-83 — marginPositive = gross_margin_rub > 0 ? true : gross_margin_rub < 0 ? false : null. При gross_margin_rub === 0 marginPositive === null. В KpiCard delta (стр.197-203): value = marginPositive === false ? 'Отрицательная маржа' : 'Положительная маржа' — то есть при null (margin=0) попадает в ветку «Положительная маржа». Импакт: нулевая валовая прибыль (выручка = затраты, безубыток) ошибочно подписана «Положительная маржа». При этом цвет нейтральный (positive=null → deltaColor серый в KpiCard.tsx:14), т.е. текст и цвет рассогласованы. Краевой случай (точный 0). Фикс: тернарник по marginPositive: === true → 'Положительная маржа', === false → 'Отрицательная маржа', null → 'Нулевая маржа'/'Безубыток'.

Почему баг: Нулевая валовая прибыль (выручка = затраты) — это НЕ положительная маржа, а нулевая/безубыток. Текст «Положительная маржа» при margin=0 вводит в заблуждение в клиентской финкарточке. Цвет при этом нейтральный (positive=null), т.е. текст и цвет ещё и рассогласованы. Срабатывает в краевом случае (точный 0), поэтому low.

Как чинить: Различать три ветки явно: positive → 'Положительная маржа', negative → 'Отрицательная маржа', null → 'Нулевая маржа' (или 'Безубыток').


deep-audit «армия ботов 2» · verify+harden, confidence 0.95 · unit U90

**Severity:** low · **Категория:** report · **Файл:** `frontend/src/components/concept/ConceptVariantsResult.tsx:78-83, 197-204` ConceptVariantsResult.tsx:78-83 — marginPositive = gross_margin_rub > 0 ? true : gross_margin_rub < 0 ? false : null. При gross_margin_rub === 0 marginPositive === null. В KpiCard delta (стр.197-203): value = marginPositive === false ? 'Отрицательная маржа' : 'Положительная маржа' — то есть при null (margin=0) попадает в ветку «Положительная маржа». Импакт: нулевая валовая прибыль (выручка = затраты, безубыток) ошибочно подписана «Положительная маржа». При этом цвет нейтральный (positive=null → deltaColor серый в KpiCard.tsx:14), т.е. текст и цвет рассогласованы. Краевой случай (точный 0). Фикс: тернарник по marginPositive: === true → 'Положительная маржа', === false → 'Отрицательная маржа', null → 'Нулевая маржа'/'Безубыток'. **Почему баг:** Нулевая валовая прибыль (выручка = затраты) — это НЕ положительная маржа, а нулевая/безубыток. Текст «Положительная маржа» при margin=0 вводит в заблуждение в клиентской финкарточке. Цвет при этом нейтральный (positive=null), т.е. текст и цвет ещё и рассогласованы. Срабатывает в краевом случае (точный 0), поэтому low. **Как чинить:** Различать три ветки явно: positive → 'Положительная маржа', negative → 'Отрицательная маржа', null → 'Нулевая маржа' (или 'Безубыток'). --- <sub>deep-audit «армия ботов 2» · verify+harden, confidence 0.95 · unit U90</sub>
bot-backend added the
week ревью 1
label 2026-06-15 05:55:41 +00:00
bot-backend added the
scope/backend
label 2026-06-15 11:02:05 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#1444
No description provided.