docs(sprint2): P1-6 done
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
ea29ab63c7
commit
cc9289ef75
|
|
@ -41,9 +41,15 @@ query filter. Stock-инвариант: после каждого Post/Unpost
|
|||
только по строкам с diff != 0 (400 если нет расхождений). Unpost блочит
|
||||
при «излишек уже расходован». Web с CSV-импортом (productId|article;qty).
|
||||
Тесты: 3 интеграционных.
|
||||
5. [ ] **P1-6 Возврат от покупателя (CustomerReturn)** — расширение `RetailSale`
|
||||
5. [x] **P1-6 Возврат от покупателя (CustomerReturn)** — расширение `RetailSale`
|
||||
опцией возврата (referenceSaleId или без). Контроллер: создание возврата из
|
||||
проведённой продажи, `CustomerReturn` тип уже есть. Web: кнопка «Создать возврат».
|
||||
✅ RetailSale.IsReturn + ReferenceSaleId; RetailSaleLine.QtyReturned
|
||||
(агрегация для защиты от over-return). `POST /create-return` копирует
|
||||
проведённый чек в Draft-возврат с qty = (Quantity - QtyReturned).
|
||||
Post return через `CustomerReturn`-движение с +Quantity, инкрементит
|
||||
QtyReturned на исходных строках. Запрещён unpost оригинала при активных
|
||||
возвратах. Тесты: 3 интеграционных.
|
||||
6. [ ] **P1-7 Возврат поставщику (SupplierReturn)** — по аналогии для Supply.
|
||||
Domain `SupplierReturn`+`Line` (referenceSupplyId). Контроллер. Web.
|
||||
7. [ ] **P1-16 Hangfire dashboard + cleanup** — `Hangfire.Dashboard` с
|
||||
|
|
|
|||
Loading…
Reference in a new issue