# INTERLINK WhatsApp v2 - Imputación segura de comprobantes

Cambios incluidos:

- En `Comprobantes → Imputar pago`, el selector de facturas muestra el estado de cada factura.
- El campo `Número de operación / comprobante` es obligatorio.
- El mismo número de operación no puede imputarse dos veces, ni al mismo cliente ni a otro cliente.
- La operación queda registrada en:
  - `wa2_payment_receipts.operation_number`
  - `wa2_payment_receipts.operation_hash`
  - `payments.operation_number`
  - `payments.operation_hash`
- La hora real de imputación queda registrada en:
  - `wa2_payment_receipts.imputed_at`
  - `payments.imputed_at`
  - `wa2_receipt_audit.details_json`

## SQL recomendado

Ejecutar:

```sql
source sql/wa2_v217_receipt_operation_unique.sql;
```

El código PHP también intenta agregar las columnas e índices automáticamente si faltan, pero conviene ejecutar el SQL en producción para dejar el esquema explícito.

## Verificación rápida

```sql
SELECT id, customer_id, invoice_id, payment_id, operation_number, imputed_at, status
FROM wa2_payment_receipts
ORDER BY id DESC
LIMIT 20;

SELECT id, customer_id, invoice_id, amount, method, reference, operation_number, imputed_at, created_at
FROM payments
ORDER BY id DESC
LIMIT 20;
```

Si se intenta imputar dos veces el mismo número de operación, el sistema debe bloquear la segunda imputación con un error claro.
