# ClientFlow v4928.1.5.130 — Odoo physical validation gate

## Problema corrigido

O estado Odoo `stock.picking.state=assigned` estava a ser interpretado como encomenda pronta para expedição. Em Odoo, `assigned` indica reserva/disponibilidade de stock, não validação física nem conclusão da preparação.

## Novo fluxo

1. `assigned` → `ORDER_PREPARATION` / **Validar encomenda física**.
2. O operador confere picking, produtos, quantidades e embalagem.
3. Ao concluir `VALIDATE_PHYSICAL_ORDER`, o ClientFlow regista `odoo:physical_validation=validated`.
4. Só depois o motor emite `SHIP_ORDER`, materializado como `CREATE_SHIPMENT`.
5. `done` continua a significar WH/OUT concluído/expedido.

## Interface

- O estado passa a mostrar “Picking reservado — validação física pendente”.
- Tasks logísticas não apresentam compositor de resposta ao cliente.
- A conclusão da validação materializa automaticamente a task de envio seguinte.

## Migração

O script `repair_assigned_picking_shipment_tasks.py` converte tasks `CREATE_SHIPMENT` prematuras em `VALIDATE_PHYSICAL_ORDER` e repõe a fase `ORDER_PREPARATION`, apenas quando existe picking `assigned` e não existe validação física. Dry-run por defeito.
