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