# E2E report: stage-customer-return

Запущен: 2026-05-29T12:09:54.667Z
Длительность: 7.3с

**Итог:** 6 ✓ / 0 ✗ / 0 ⚠ / 0 ◯ (всего 6)

## ✓ Step cr01_setup_and_sale: 2 org. У orgA — продукт с qty=100, проведённый RetailSale qty=10.

Длительность: 5938мс

| Тип | Проверка | Результат |
|---|---|---|
| api | POST RetailSale → 201 | ✓ 201 {"id":"6546f2c2-1957-4e78-8dfb-d48f75bb506d","number":"ПР-2026-000001","date":"2026-05-29T12:09:59.374Z","status":0,"storeId":"7a6595d7-9e73-4027-a923-fb139fbdab87","storeName":"Основной склад","r |
| api | Post sale → 204 | ✓ 204  |
| api | Stock = 90 (100 - 10) | ✓ 90 |

## ✓ Step cr02_create_return_from_sale: POST /api/sales/retail/{id}/create-return → 201 (Draft, IsReturn=true, ref=исходный)

Длительность: 163мс

| Тип | Проверка | Результат |
|---|---|---|
| api | POST /create-return → 201 | ✓ 201 {"id":"f70703bb-f7d6-4f3f-b0ce-f3f7584cf14f","number":"ПР-2026-000002","date":"2026-05-29T12:10:00.723311Z","status":0,"storeId":"7a6595d7-9e73-4027-a923-fb139fbdab87","storeName":"Основной склад" |
| api | isReturn=true, referenceSaleId совпадает | ✓ isReturn=true ref=6546f2c2-1957-4e78-8dfb-d48f75bb506d |
| api | Status=Draft | ✓ status=0 |
| api | Lines.qty=10 (initial = original − returned = 10−0) | ✓ qty=10 |

## ✓ Step cr03_post_return_stock_back: POST {return-id}/post → 204; Stock += qty; StockMovement type=CustomerReturn; QtyReturned обновлён

Длительность: 525мс

| Тип | Проверка | Результат |
|---|---|---|
| api | POST return /post → 204 | ✓ 204  |
| api | Stock += 10 (вернулось) | ✓ 90 → 100 |
| api | StockMovement type=CustomerReturn создан | ✓ count=1 type=CustomerReturn |

## ✓ Step cr04_overreturn_blocked: Второй возврат с qty > remaining (Quantity-QtyReturned) → 409

Длительность: 90мс

| Тип | Проверка | Результат |
|---|---|---|
| api | /create-return уже после полного возврата → 400 | ✓ 400 {"error":"Этот чек уже полностью возвращён."} |

## ✓ Step cr05_return_without_receipt: POST RetailSale c IsReturn=true и ReferenceSaleId=null → 201; post → +stock с CustomerReturn

Длительность: 398мс

| Тип | Проверка | Результат |
|---|---|---|
| api | Walk-in return draft → 201 | ✓ 201 {"id":"776d8867-b80b-46eb-b572-8ca91e9c1831","number":"ПР-2026-000003","date":"2026-05-29T12:10:01.387Z","status":0,"storeId":"7a6595d7-9e73-4027-a923-fb139fbdab87","storeName":"Основной склад","r |
| api | Walk-in return /post → 204 | ✓ 204  |
| api | Stock += 3 (товар вернулся даже без чека) | ✓ 100 → 103 |

## ✓ Step cr06_multi_tenant_isolation: Org B не видит возврат org A; create-return на чужой → 404

Длительность: 185мс

| Тип | Проверка | Результат |
|---|---|---|
| api | GET чужого id → 404 | ✓ 404 |
| api | POST /create-return на чужой → 404 | ✓ 404 |

## Summary

- Passed: 6
- Failed: 0
- Warnings: 0
- Skipped: 0

## Critical bugs

Нет.
