# ClientFlow v4.9.12 — Fiscal Customer Reconciliation & Odoo Fulfilment

## Objetivo

A reconciliação passa a reconstruir melhor o processo operacional quando a evidência vem do Odoo.

Regra base:

- ClientFlow: o **Cliente fiscal** é a referência central da oportunidade.
- Jasmin: procurar documentos por **NIF**.
- Odoo: quando não há NIF/VAT fiável, procurar por **nome fiscal normalizado** e, depois de confirmado, guardar mapeamento `odoo partner_id -> cliente fiscal ClientFlow`.

## O que muda

- O sync Odoo importa linhas da venda, produtos, quantidades entregues/faturadas.
- O sync Odoo procura entregas/stock pickings associadas à venda.
- A timeline candidata pode mostrar:
  - venda Odoo encontrada;
  - linhas/produtos importados;
  - entrega Odoo concluída;
  - fatura por emitir.
- Ao ligar um processo à oportunidade, são gravados:
  - `operation_links` para venda Odoo;
  - `operation_links` para estado físico Odoo;
  - eventos de timeline reconstruída.
- Itens ignorados automaticamente pela limpeza de janela voltam a abrir quando regressam à janela sincronizada.

## Segurança

Esta versão não confirma pagamentos, não emite faturas, não fecha oportunidades e não altera Odoo/Jasmin/Packlink. Apenas lê evidência, sugere ligação e reconstrói timeline depois de confirmação do operador.

## Exemplo Elegantlegacy

Odoo:

- venda `S00274`;
- cliente `ELEGANTLEGACY, LDA`;
- entrega `WH/OUT/00295` concluída;
- `invoice_status = to invoice`.

ClientFlow deve sugerir:

- ligar à oportunidade `Elegantlegacy Lda`;
- estado reconstruído: venda/entrega Odoo encontrada;
- próxima ação: emitir fatura.

