docs(sprint3): чек-лист — 5 отчётов P1
5 пунктов: Sales/Stock/Profit/ABC отчёты + OpenAPI клиент. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
a7b82eea86
commit
8111574a08
34
docs/sprint3-progress.md
Normal file
34
docs/sprint3-progress.md
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
# Спринт 3 — отчёты и аналитика (P1)
|
||||
|
||||
Автономная работа. После каждого пункта: `dotnet build` (SDK 8.0.126),
|
||||
unit + integration тесты этого пункта, коммит порцией, отметка `[x]` здесь,
|
||||
коммит прогресса.
|
||||
|
||||
Multi-tenant: все запросы фильтруются по `OrganizationId` через query filter
|
||||
`AppDbContext`. Каждый отчёт — отдельный e2e/integration на изоляцию orgA vs orgB.
|
||||
|
||||
## Чек-лист
|
||||
|
||||
1. [ ] **P1-8 Отчёт «Продажи»** — `/api/reports/sales` с группировкой по период
|
||||
(день/неделя/месяц), товар, кассир, касса, способ оплаты; фильтры
|
||||
(от/до, магазин, группа товаров). Web `/reports/sales`: фильтр периода,
|
||||
табы по группировкам, экспорт CSV+XLSX.
|
||||
2. [ ] **P1-9 Отчёт «Остатки на дату»** — `/api/reports/stock` восстанавливает
|
||||
остатки на произвольную дату через журнал `StockMovement` (Σ движений до
|
||||
даты по продукту). Web `/reports/stock`: выбор даты, фильтр магазин/группа,
|
||||
экспорт. Edge: дата в будущем, дата раньше первой операции.
|
||||
3. [ ] **P1-10 Отчёт «Прибыль»** — `/api/reports/profit` = выручка − себестоимость
|
||||
по периодам/группам/товарам. Cost-snapshot уже есть в `RetailSaleLine`
|
||||
(через `UnitCost` movement'а). Защита от деления на ноль при нулевой выручке.
|
||||
4. [ ] **P1-11 Отчёт «ABC-анализ»** — топ товаров по выручке за период,
|
||||
классы A/B/C по Парето (A=80%, B=15%, C=5% накопительной выручки).
|
||||
Параметр метрики (выручка/прибыль/маржа). Web с визуализацией.
|
||||
5. [ ] **P1-19 OpenAPI / Swagger** — `Swashbuckle.AspNetCore`,
|
||||
`/swagger/v1/swagger.json` в Development. Сгенерировать TS-клиент для
|
||||
food-market.web (`openapi-typescript`/`nswag`) и подключить для пары
|
||||
контроллеров как образец.
|
||||
|
||||
## Лог
|
||||
|
||||
- Каждый пункт: build + тесты + коммит порцией + отметка [x] + коммит прогресса.
|
||||
- Все правки на `main` (origin Forgejo), без коммита `global.json`.
|
||||
Loading…
Reference in a new issue