Группировка событий и операций по бумаге за день в режиме «все счета» #47

Closed
opened 2026-10-29 06:12:49 +03:00 by codex-bot · 2 comments
Owner

Контекст

В режиме /accounts/all события и операции идут плоским списком: каждая строка — отдельный счёт. Если одна бумага лежит на брокерском счёте и на ИИС, в один день по ней приходят несколько строк (например, два купона), и их трудно связать между собой.

Ожидаемое поведение

В режиме «все счета» строки с одинаковыми датой + ISIN + типом события или операции объединяются в одну визуальную группу. В заголовке группы — бумага, тип и итог. Под заголовком всегда раскрыта разбивка по счетам: например, «Брокерский — 200 ₽», «ИИС — 100 ₽».

Где применяется:

  • страница событий /accounts/all/events;
  • страница операций /accounts/all/operations;
  • превью «ближайшие события» и «последние операции» на /accounts/all;
  • список «Выплаты» на /accounts/all/income.

Правила:

  • в группировку попадают все категории операций, у которых есть ISIN: trade, income, tax, fee. Строки без ISIN остаются одиночными;
  • группа образуется из ≥2 строк с одинаковым ключом, в том числе если все строки с одного счёта (например, две покупки за день);
  • разные типы (купон и налог с купона) не смешиваются;
  • в режиме одного счёта поведение не меняется.

Acceptance Criteria

  • Купоны по одной облигации за один день на брокерском счёте (200 ₽) и на ИИС (100 ₽) в /accounts/all/events и /accounts/all/operations показаны одной группой. Внутри видна сумма по каждому счёту.
  • Группировка работает во всех четырёх перечисленных местах.
  • Строки разных типов или с разными датами по одной бумаге не объединяются.
  • Строки без ISIN и одиночные строки выглядят так же, как сейчас.
  • В режиме одного счёта списки не изменились.
  • Суммы показываются точно, валюты не смешиваются.

Delivery

SDD по схеме wealth-ledger-sdd-v2, store wealth-ledger-specs. Затронутые repos (уточнит Design): specs, frontend, docs.

## Контекст В режиме `/accounts/all` события и операции идут плоским списком: каждая строка — отдельный счёт. Если одна бумага лежит на брокерском счёте и на ИИС, в один день по ней приходят несколько строк (например, два купона), и их трудно связать между собой. ## Ожидаемое поведение В режиме «все счета» строки с одинаковыми **датой + ISIN + типом** события или операции объединяются в одну визуальную группу. В заголовке группы — бумага, тип и итог. Под заголовком **всегда раскрыта** разбивка по счетам: например, «Брокерский — 200 ₽», «ИИС — 100 ₽». Где применяется: - страница событий `/accounts/all/events`; - страница операций `/accounts/all/operations`; - превью «ближайшие события» и «последние операции» на `/accounts/all`; - список «Выплаты» на `/accounts/all/income`. Правила: - в группировку попадают все категории операций, у которых есть ISIN: trade, income, tax, fee. Строки без ISIN остаются одиночными; - группа образуется из ≥2 строк с одинаковым ключом, в том числе если все строки с одного счёта (например, две покупки за день); - разные типы (купон и налог с купона) не смешиваются; - в режиме одного счёта поведение не меняется. ## Acceptance Criteria - [ ] Купоны по одной облигации за один день на брокерском счёте (200 ₽) и на ИИС (100 ₽) в `/accounts/all/events` и `/accounts/all/operations` показаны одной группой. Внутри видна сумма по каждому счёту. - [ ] Группировка работает во всех четырёх перечисленных местах. - [ ] Строки разных типов или с разными датами по одной бумаге не объединяются. - [ ] Строки без ISIN и одиночные строки выглядят так же, как сейчас. - [ ] В режиме одного счёта списки не изменились. - [ ] Суммы показываются точно, валюты не смешиваются. ## Delivery SDD по схеме `wealth-ledger-sdd-v2`, store `wealth-ledger-specs`. Затронутые repos (уточнит Design): specs, frontend, docs.
codex-bot added the Kind/Feature
Priority
Medium
3
labels 2026-10-29 06:12:49 +03:00
hermes-agent was assigned by codex-bot 2026-10-29 06:12:49 +03:00
Author
Owner

Реализация готова, PR открыты:

Порядок merge: frontend → docs → specs. После этого archive change и sync canonical specs. Вне scope: WealthLedger/specs#63.

Реализация готова, PR открыты: - specs: https://git.personal.ksv741.ru/WealthLedger/specs/pulls/64 (change `group-account-rows-by-instrument`, G1–G4 approved) - frontend: https://git.personal.ksv741.ru/WealthLedger/frontend/pulls/126 - docs: https://git.personal.ksv741.ru/WealthLedger/docs/pulls/59 Порядок merge: frontend → docs → specs. После этого archive change и sync canonical specs. Вне scope: WealthLedger/specs#63.
Author
Owner

Готово, всё слито в develop:

  • frontend#126 — реализация группировки;
  • docs#59 — AS-IS документация;
  • specs#64 — change group-account-rows-by-instrument;
  • specs#65 — archive 2026-10-30-group-account-rows-by-instrument и sync canonical specs.

Все AC закрыты, это подтверждают gates G1–G4 и verify. Вне scope остаётся WealthLedger/specs#63.

Готово, всё слито в `develop`: - frontend#126 — реализация группировки; - docs#59 — AS-IS документация; - specs#64 — change `group-account-rows-by-instrument`; - specs#65 — archive `2026-10-30-group-account-rows-by-instrument` и sync canonical specs. Все AC закрыты, это подтверждают gates G1–G4 и verify. Вне scope остаётся WealthLedger/specs#63.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/main#47