docs(inventory): прогресс cancel-results — стенд 8/8, integration 4/4, full-chain шаг 10
Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
365dc5c1a8
commit
b095329c5a
|
|
@ -5,15 +5,35 @@ Mac-Claude на стенде 08.10: `POST /api/inventory/inventories/{id}/unpost
|
||||||
исчезают). Хуже МойСклада (там связанные отменяют вручную, история сохраняется). Правило
|
исчезают). Хуже МойСклада (там связанные отменяют вручную, история сохраняется). Правило
|
||||||
владельца: «всегда как минимум как в МойСкладе, или лучше».
|
владельца: «всегда как минимум как в МойСкладе, или лучше».
|
||||||
|
|
||||||
|
## Выбор по п.1 (черновики)
|
||||||
|
Если связанные документы только ЧЕРНОВИКИ — при «вернуть в черновик» их **удаляем** (они не
|
||||||
|
влияли на остатки, это безопасно и не засоряет историю недо-проведёнными результатами).
|
||||||
|
Проведённые — никогда не удаляем (см. cancel-results).
|
||||||
|
|
||||||
## План / статус
|
## План / статус
|
||||||
1. [ ] `unpost` при ПРОВЕДЁННЫХ связанных → 409 с текстом и номерами О-/С-. Если связанные только
|
1. [x] `unpost` при ПРОВЕДЁННЫХ связанных → **409** с текстом «По инвентаризации проведены
|
||||||
черновики — вернуть в черновик, черновики удалить (не влияли на остатки).
|
Оприходование О-… и Списание С-…. Сначала отмените результаты» + поля enters/losses.
|
||||||
2. [ ] Новое `POST …/{id}/cancel-results` (InventoryEdit + EnterEdit/LossEdit): снимает связанные
|
Только черновики → возврат в черновик + удаление черновиков. (Проверено на стенде.)
|
||||||
Оприходование/Списание с проведения, НЕ удаляя (остаются черновиками, видны в истории/аудите).
|
2. [x] `POST …/{id}/cancel-results` (InventoryEdit + EnterEdit/LossEdit): снимает связанные
|
||||||
3. [ ] Веб: кнопка «Отменить результаты» + диалог (перечислить документы и влияние на остатки).
|
Оприходование/Списание с проведения, НЕ удаляя (остаются черновиками); остатки
|
||||||
4. [ ] Мобильное API: старый unpost больше НЕ удаляет проведённые → тот же 409; docs/mobile-api.md.
|
возвращаются; гард на уход в минус для Оприходования. (Стенд: статус→Draft, остаток вернулся.)
|
||||||
5. [ ] Аудит: снятие с проведения связанных документов — кто/когда/из какой инвентаризации.
|
3. [x] Веб: кнопка «Отменить результаты» (при проведённых связанных) + диалог со списком
|
||||||
6. [ ] Тесты unit/integration + full-chain шаг 10; деплой на стенд.
|
документов и влиянием на остатки; «Вернуть в черновик» переформулирован.
|
||||||
|
4. [x] Мобильное API: unpost больше НЕ удаляет проведённые → 409; docs/mobile-api.md + cancel-results.
|
||||||
|
5. [x] Аудит `InvCancelResults` (≤20 симв.) — кто/когда/из какой инвентаризации, в OrgAuditLog.
|
||||||
|
6. [~] Тесты: integration 4/4 (вкл. cancel-results + повторное проведение); обновлены 2 устаревших
|
||||||
|
ассерта. full-chain шаг 10 — расширен (unpost 409 → cancel-results → черновик → повторное
|
||||||
|
проведение); прогон на стенде — ниже. Деплой на стенд: OK (api+web).
|
||||||
|
|
||||||
|
## Проверка на стенде (live API, свежая орг)
|
||||||
|
Завоз 10 → инвентаризация факт 13 → create-enter → провести (остаток 13) →
|
||||||
|
**unpost → 409** «…Сначала отмените результаты» → **cancel-results → 200** (остаток 10,
|
||||||
|
оприходование статус=Draft, НЕ удалено, видно в related как черновик) →
|
||||||
|
повторное проведение → остаток снова 13. **8/8 ✅** (scratchpad/cancel-results-test.sh).
|
||||||
|
|
||||||
|
### Грабли
|
||||||
|
- Аудит-экшен «InventoryCancelResults» (22 симв.) не влезал в OrgAuditLog.Action varchar(20)
|
||||||
|
→ SqlState 22001 → 500. Укоротил до «InvCancelResults» (16). Аудит пишется в той же транзакции.
|
||||||
|
|
||||||
## Что НЕ трогаем
|
## Что НЕ трогаем
|
||||||
Прод, shared-postgres, global.json, gateway nginx, sklad.
|
Прод, shared-postgres, global.json, gateway nginx, sklad.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue