diff --git a/docs/inventory-model-progress.md b/docs/inventory-model-progress.md new file mode 100644 index 0000000..1373523 --- /dev/null +++ b/docs/inventory-model-progress.md @@ -0,0 +1,34 @@ +# Инвентаризация по модели МойСклада — прогресс + +Замечание владельца (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 — старт: прочитано замечание, составлен план. Следующий шаг — сверка с МойСкладом.