food-market/src/food-market.api/Controllers
nns 606b81b4d9 feat(pos-api): привязка чеков кассы к смене/точке + возвраты + версия
- PosSaleDto: CashShiftId/RetailPointId/IsReturn/ReferenceSaleId (nullable,
  обратносовместимо с v1). PosController проставляет их в RetailSale, резолвит
  склад по точке продаж, проверяет что смена открыта. Без этого чеки кассы не
  попадали в Z-отчёт/материализацию денег смены (MoneyService агрегирует продажи
  по CashShiftId).
- Возврат покупателю (IsReturn): движение +остаток (CustomerReturn), без
  pre-flight на остаток; наличные к выдаче, учитывается в смене.
- GET /api/pos/v1/version (anon): версия + ссылки на сборки из конфигурации Pos
  (автообновление кассы + ссылка в админке).
- Интеграционные тесты: продажа в смене попадает в expected cash при закрытии;
  возврат возвращает остаток (9/9 PosSyncTests зелёные, Testcontainers).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 04:58:05 +05:00
..
Admin feat(s32): MoySklad-импорт — upsert по external id, merge по barcode, skip archived, UOM-mapping 2026-10-04 23:22:14 +05:00
Auth feat(s20): Mapster + SSO scaffold + maintenance automation (7 пунктов) 2026-06-07 21:54:12 +05:00
Catalog feat(invoices+catalog): порт улучшений 06.10.2026 из sklad 2026-10-07 19:50:03 +05:00
Common feat(s29): [RequiresAdvancedMode] + гейтинг скрытых модулей (шаг 3/8) 2026-10-04 11:38:10 +05:00
Dashboard feat(s10): year-demo seeder + 4 dashboard виджета + week-stats 2026-06-06 01:03:36 +05:00
Inventory fix(inventory): пустая инвентаризация больше не обнуляет непосчитанное 2026-10-08 02:10:11 +05:00
Loyalty feat(s29): [RequiresAdvancedMode] + гейтинг скрытых модулей (шаг 3/8) 2026-10-04 11:38:10 +05:00
Money fix(money): движения смены попадают в остатки счетов + запрет отрицательного остатка 2026-10-08 03:11:09 +05:00
Organizations fix(money): движения смены попадают в остатки счетов + запрет отрицательного остатка 2026-10-08 03:11:09 +05:00
Pos feat(pos-api): привязка чеков кассы к смене/точке + возвраты + версия 2026-10-08 04:58:05 +05:00
Promotions feat(s29): [RequiresAdvancedMode] + гейтинг скрытых модулей (шаг 3/8) 2026-10-04 11:38:10 +05:00
Purchases test(money): unit (MoneyMath 25) + integration (7 на Postgres) + MoneyMath refactor 2026-10-07 22:11:19 +05:00
Reports fix(reports): «сегодня/за день» считать по Asia/Almaty (UTC+5), а не по UTC 2026-10-08 02:10:11 +05:00
Sales fix(reports): «сегодня/за день» считать по Asia/Almaty (UTC+5), а не по UTC 2026-10-08 02:10:11 +05:00
Search feat(s10-3): глобальная Cmd+K палитра + GET /api/search/global 2026-06-06 01:20:05 +05:00
SuperAdmin feat(s29): [RequiresAdvancedMode] + гейтинг скрытых модулей (шаг 3/8) 2026-10-04 11:38:10 +05:00
Telegram feat(s29): [RequiresAdvancedMode] + гейтинг скрытых модулей (шаг 3/8) 2026-10-04 11:38:10 +05:00
Uploads perf(s14): индексы + N+1 fix + bundle -50% + WebP variants + pool + Hangfire timing 2026-06-07 13:21:39 +05:00
AuthForgotPasswordController.cs feat(s13): security headers + rate-limits + sensitive-ops audit + session revoke + Grafana 2026-06-07 12:30:10 +05:00
AuthorizationController.cs feat(s30): sentinel pwd для SPA — реальный мастер-пароль только в server-env 2026-10-04 21:02:36 +05:00
AuthSignupController.cs fix(phone): серверная KZ-ФЛК на всех endpoint'ах принимающих phone 2026-05-08 01:05:48 +05:00
FeedbackController.cs feat(s17): onboarding wizard + help kb + feedback + diagnostic + whats-new 2026-06-07 17:04:26 +05:00
MeAccountController.cs feat(s13): security headers + rate-limits + sensitive-ops audit + session revoke + Grafana 2026-06-07 12:30:10 +05:00
MeSessionsController.cs feat(s13): security headers + rate-limits + sensitive-ops audit + session revoke + Grafana 2026-06-07 12:30:10 +05:00
QuickLoginController.cs feat(s30): /api/dev/quick-login/accounts — анонимный список для стенда (шаг 3/9) 2026-10-04 15:38:23 +05:00
TwoFactorController.cs feat(s13): security headers + rate-limits + sensitive-ops audit + session revoke + Grafana 2026-06-07 12:30:10 +05:00
WhatsNewController.cs feat(s17): onboarding wizard + help kb + feedback + diagnostic + whats-new 2026-06-07 17:04:26 +05:00