Domain Loss+LossLine + enum LossReason (Defect/Expired/Damage/Shortage/Other). EF, миграция Phase6b_Losses. Контроллер api/inventory/losses: CRUD + Post/Unpost. Post создаёт StockMovement тип WriteOff с -Quantity; защита от ухода в минус (409 со списком конфликтов). Unpost возвращает товар. Web: /inventory/losses (list+edit) с фильтром по причине и колонкой текущего остатка в строке. Сайдбар: «Списания» (Admin/Storekeeper). Тесты: 3 интеграционных (post→stock падает, unpost восстанавливает; списание сверх остатка → 409; tenant-изоляция). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| Configurations | ||
| Migrations | ||
| AppDbContext.cs | ||
| DesignTimeAppDbContextFactory.cs | ||