food-market/docs/inventory-model-progress.md

35 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Инвентаризация по модели МойСклада — прогресс
Замечание владельца (08.10.2026): «инвентаризация стоит в состоянии „проведено“,
но без оприходования и списания — логика непонятная».
**Сейчас (неправильно):** `InventoriesController.Post` сам применяет движения
`MovementType.InventoryAdjustment` к остаткам и ставит `Status=Posted` — без создания
Оприходования/Списания. Владелец видит «Проведено» без связанных документов; в отчётах
непонятно, откуда изменения.
**Как должно быть (по МойСкладу):** инвентаризация НЕ двигает остатки; она фиксирует
расчётный/фактический/разницу, а движения создаются связанными документами
Оприходование (излишки) и Списание (недостача).
## План / статус
0. [ ] Сверка с МойСкладом (headless Playwright) → `docs/inventory-moysklad-reference.md`.
1. [ ] Инвентаризация не двигает остатки; статусы «Черновик» → «Завершена» (без «Проведено»).
2. [ ] На завершённой — кнопки «Создать оприходование излишков» / «Создать списание недостачи»
/ «Применить результаты» (обе). Документы со строками разницы + ссылка на инвентаризацию.
3. [ ] Блок «Связанные документы» в карточке; колонка «Результат» в списке; обратная ссылка в enter/loss.
4. [ ] Отмена проведения связанных — штатно; инвентаризацию нельзя вернуть в черновик при
проведённых связанных (понятный отказ).
5. [ ] Миграция Posted+InventoryAdjustment → связанные проведённые Оприходование/Списание
(движения перенести, не задвоить); статус → «Завершена». Остатки до/после совпадают. Backup stage.
6. [ ] Веб + мобильное API (post/unpost совместимо: post = завершить+применить) + CSV-импорт.
7. [ ] Тесты: unit / integration / e2e на стенде; full-chain шаг 10 + UAT.
8. [ ] docs/supply-inventory.md — инструкция «Как провести инвентаризацию».
9. [ ] deploy-stage; коммиты в main (Co-Authored-By: Claude Opus 5.5); global.json не коммитить; не мешать с rebrand.
## Что НЕ трогаем
Прод, shared-postgres, global.json, gateway nginx, sklad.
## Журнал
- 08.10 — старт: прочитано замечание, составлен план. Следующий шаг — сверка с МойСкладом.