ALIANPOS V9.8.2 - QA CORREO FISCAL / PROVEEDOR
Fecha: 2026-09-14

VALIDACION ESTATICA
[OK] PHP lint FiscalDocumentMailService.php
[OK] PHP lint FacturacionElectronicaService.php
[OK] PHP lint RecepcionXmlService.php
[OK] PHP lint VentaController.php
[OK] PHP lint NotasFiscalesController.php
[OK] PHP lint bin/correo-fiscal.php

REGLAS DE ENVIO CLIENTE
[OK] FE 01 elegible solo con receptor identificado y correo valido.
[OK] ND 02 elegible solo con receptor identificado y correo valido.
[OK] NC 03 elegible solo con receptor identificado y correo valido.
[OK] TE 04 excluido del correo fiscal al cliente.
[OK] No se considera "finalizado" suficiente para disparar correo.
[OK] Se exige aceptacion explicita de MH por respuesta_hacienda o XML respuesta.
[OK] Se conserva idempotencia con correo_enviado_en y mutex por documento.

ADJUNTOS CLIENTE
[OK] PDF: <clave>.pdf
[OK] XML firmado: <clave>.xml
[OK] XML respuesta MH: <clave>_respuesta.xml
[OK] Los tres adjuntos son obligatorios antes del envio.

NC / ND
[OK] Plantilla identifica el tipo de nota.
[OK] Muestra referencia disponible: tipo, consecutivo, clave, fecha, codigo y motivo.

DOCUMENTOS COMPARTIDOS
[OK] Se permite adoptar la fila API cuando sucursal_app_id esta NULL/0.
[OK] Se permite adoptar la fila API cuando pedido_id_origen esta NULL/0.
[OK] Se bloquea adopcion si ya pertenece a otra sucursal o pedido.
[OK] Se conserva estado MH final si existe carrera webhook/emision.
[OK] Mailer resuelve sucursal historica mediante fe_sucursales.

PROVEEDOR / COMPRAS
[OK] XML duplicado puede completar emisor_correo faltante.
[OK] supplierEmail recupera Emisor/CorreoElectronico desde raw_xml.
[OK] No toma el correo del receptor como sustituto del proveedor.
[OK] Correo de origen se mantiene como ultimo fallback.
[OK] Solo notifica proveedor despues de aceptacion MH del mensaje receptor.

PRUEBAS RECOMENDADAS DESPUES DE INSTALAR
1. Emitir FE a cliente con correo: confirmar que no llegue antes de MH y que llegue al quedar aceptada.
2. Emitir TE: confirmar que nunca genere mail_envios categoria documento_fiscal.
3. Emitir NC sobre una FE: comprobar bloque de referencia y tres adjuntos con nombre por clave.
4. Emitir ND sobre una FE: comprobar bloque de referencia y tres adjuntos con nombre por clave.
5. Aceptar una compra cuyo XML tenga Emisor/CorreoElectronico: confirmar notificacion al proveedor tras aceptacion MH.
6. Ejecutar correo-fiscal.php y correo-compras.php y revisar salida de consola.
7. Revisar mail_envios: deben aparecer documento_fiscal y recepcion_proveedor cuando corresponda.

NOTA
Al habilitar el reintento, los FE/NC/ND aceptados y pendientes de correo pueden entrar en la cola historica. Definir un corte si no se desea reenviar comprobantes anteriores.
