docs(sprint2): P1-3 done
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
fa1e123327
commit
6254b61caa
|
|
@ -23,10 +23,14 @@ query filter. Stock-инвариант: после каждого Post/Unpost
|
|||
«не списать сверх остатка» (409). Миграция `Phase6b_Losses`. Web с
|
||||
фильтром по причине и колонкой stockAtStore. Тесты: 3 интеграционных
|
||||
(post снижает stock, over-write-off → 409, tenant-изоляция).
|
||||
3. [ ] **P1-3 Перемещение (Transfer)** — Domain `Transfer`+`TransferLine`
|
||||
3. [x] **P1-3 Перемещение (Transfer)** — Domain `Transfer`+`TransferLine`
|
||||
(FromStoreId → ToStoreId, обязательны и различны). Атомарная транзакция:
|
||||
`TransferOut` из From + `TransferIn` в To. EF, миграция, контроллер + Post/Unpost,
|
||||
Web. Кейс: post→unpost не оставляет orphan-движений.
|
||||
✅ Пара движений (Out + In) в одной Serializable-транзакции; обратная пара
|
||||
в Unpost. Проверка «not short» на FromStore при Post и ToStore при Unpost.
|
||||
Permission `TransferEdit`. Тесты: 4 интеграционных, ключевой проверяет что
|
||||
движений ровно 2 после Post и ровно 4 после Unpost (никаких orphan).
|
||||
4. [ ] **P1-4 Инвентаризация (Inventory)** — Domain `Inventory`+`InventoryLine`
|
||||
(productId, bookQty, actualQty, diff). EF, миграция. Контроллер: создание
|
||||
подгружает текущие остатки; Post создаёт `InventoryAdjustment` на diff. Web:
|
||||
|
|
|
|||
Loading…
Reference in a new issue