food-market/docs/sprint3-progress.md
nns 8111574a08 docs(sprint3): чек-лист — 5 отчётов P1
5 пунктов: Sales/Stock/Profit/ABC отчёты + OpenAPI клиент.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 10:30:28 +05:00

2.6 KiB
Raw Blame History

Спринт 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 / SwaggerSwashbuckle.AspNetCore, /swagger/v1/swagger.json в Development. Сгенерировать TS-клиент для food-market.web (openapi-typescript/nswag) и подключить для пары контроллеров как образец.

Лог

  • Каждый пункт: build + тесты + коммит порцией + отметка [x] + коммит прогресса.
  • Все правки на main (origin Forgejo), без коммита global.json.