docs(sprint2): P1-4 done
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
4285bdee91
commit
561291f226
|
|
@ -31,10 +31,16 @@ query filter. Stock-инвариант: после каждого Post/Unpost
|
|||
в Unpost. Проверка «not short» на FromStore при Post и ToStore при Unpost.
|
||||
Permission `TransferEdit`. Тесты: 4 интеграционных, ключевой проверяет что
|
||||
движений ровно 2 после Post и ровно 4 после Unpost (никаких orphan).
|
||||
4. [ ] **P1-4 Инвентаризация (Inventory)** — Domain `Inventory`+`InventoryLine`
|
||||
4. [x] **P1-4 Инвентаризация (Inventory)** — Domain `Inventory`+`InventoryLine`
|
||||
(productId, bookQty, actualQty, diff). EF, миграция. Контроллер: создание
|
||||
подгружает текущие остатки; Post создаёт `InventoryAdjustment` на diff. Web:
|
||||
форма со списком товаров склада, импорт CSV факта.
|
||||
✅ Доменная сущность `InventoryDoc` (имя чтобы не пересекаться с системным
|
||||
неймспейсом). Create с пустыми lines подтягивает все товары склада;
|
||||
Update пишет actualQty построчно. Post создаёт `InventoryAdjustment`
|
||||
только по строкам с diff != 0 (400 если нет расхождений). Unpost блочит
|
||||
при «излишек уже расходован». Web с CSV-импортом (productId|article;qty).
|
||||
Тесты: 3 интеграционных.
|
||||
5. [ ] **P1-6 Возврат от покупателя (CustomerReturn)** — расширение `RetailSale`
|
||||
опцией возврата (referenceSaleId или без). Контроллер: создание возврата из
|
||||
проведённой продажи, `CustomerReturn` тип уже есть. Web: кнопка «Создать возврат».
|
||||
|
|
|
|||
Loading…
Reference in a new issue