food-market/src/food-market.domain
nns 6886e1a92b feat(supplier-returns): возврат поставщику (P1-7)
Domain SupplierReturn+SupplierReturnLine (по аналогии с Supply). Опциональная
ссылка ReferenceSupplyId на исходную приёмку — при наличии валидируется
совпадение поставщика и status=Posted источника.

EF, миграция Phase6f_SupplierReturns. Контроллер
api/purchases/supplier-returns: CRUD + Post/Unpost. Post создаёт
StockMovement тип SupplierReturn с -Quantity; защита от ухода в минус
(409 со списком конфликтов). Unpost возвращает товар обратно.

Web: /purchases/supplier-returns (list+edit). Пункт «Возвраты поставщикам»
в сайдбаре Закупки. Permissions переиспользуют SuppliesEdit/SuppliesPost/Delete.

Тесты: 4 интеграционных (post→stock, over-return→409, mismatch supplier
по reference→400, tenant-изоляция).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 09:58:29 +05:00
..
Catalog feat(bootstrap): системная ProductGroup «Все товары» при создании org 2026-05-08 12:08:28 +05:00
Common feat(directories): двухуровневые справочники Группы и Ед.измерения (системные + tenant) 2026-04-26 16:20:47 +05:00
Inventory feat(inventories): инвентаризация с CSV-импортом факта (P1-4) 2026-05-28 09:39:32 +05:00
Organizations feat(transfers): атомарное перемещение между складами (P1-3) 2026-05-28 09:32:32 +05:00
Platform feat(platform): PlatformSettings entity + миграция (singleton SMTP-конфиг) 2026-05-06 12:35:48 +05:00
Purchases feat(supplier-returns): возврат поставщику (P1-7) 2026-05-28 09:58:29 +05:00
Sales feat(returns): возврат от покупателя (CustomerReturn) (P1-6) 2026-05-28 09:51:04 +05:00
food-market.domain.csproj Phase 0: project scaffolding and end-to-end auth 2026-04-21 13:59:13 +05:00