name: stage-customer-return
description: |
  CustomerReturn (возврат от покупателя) на test.admin.food-market.kz.
  Создание возврата по чеку через /api/sales/retail/{id}/create-return
  и POST-проведение. Возврат без чека (IsReturn=true,
  ReferenceSaleId=null) — продукт оказывается на складе с
  StockMovement type=CustomerReturn. Edge: возврат больше чем
  продано → 409 (защита от over-return). Multi-tenant.

preconditions:
  reset_db: false
  smoke_login_super_admin: false

steps:
  - id: cr01_setup_and_sale
    title: 2 org. У orgA — продукт с qty=100, проведённый RetailSale qty=10.
  - id: cr02_create_return_from_sale
    title: POST /api/sales/retail/{id}/create-return → 201 (Draft, IsReturn=true, ref=исходный)
  - id: cr03_post_return_stock_back
    title: POST {return-id}/post → 204; Stock += qty; StockMovement type=CustomerReturn; QtyReturned обновлён
  - id: cr04_overreturn_blocked
    title: Второй возврат с qty > remaining (Quantity-QtyReturned) → 409
  - id: cr05_return_without_receipt
    title: POST RetailSale c IsReturn=true и ReferenceSaleId=null → 201; post → +stock с CustomerReturn
  - id: cr06_multi_tenant_isolation
    title: Org B не видит возврат org A; create-return на чужой → 404
