HORARIOS pasa a 5 bloques que siguen cubriendo las 24 horas: 00:00-06:30 cada
30 minutos (antes 00:00-05:00 cada 60 s y 05:00-06:30 cada 30 min) y
18:30-24:00 cada 60 minutos (antes dos bloques iguales). El día no cambia.
De madrugada un correo puede esperar hasta 30 minutos y los reintentos por
SAP fuera de línea, uno por ciclo, van igual de espaciados.
Se ordena el formato de la lista, test_horarios fija el primer y el último
minuto de cada bloque (y que nunca se devuelva None en el día), y se
actualizan docs/main.md, la guía de despliegue y el CHANGELOG.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
La comparación abs(a - b) < 0.01 no era fiable por la coma flotante: el mismo
céntimo se aceptaba o rechazaba según el importe (431.41 contra 431.40 se
rechazaba y 624.39 contra 624.38 se aceptaba). pipeline_utils.importes_coinciden
redondea la diferencia a 2 decimales, lo que muestra un comprobante, y admite
hasta 1 céntimo. Se usa en la validación de precios y en la comparación del
valor referencial. Con datos reales de SAP (49 líneas) ningún resultado cambió.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- deploy/: scripts de PowerShell para instalar el servicio (cuenta de servicio
con acceso a la ruta de red, reinicio automático, parada con Ctrl+C,
rotación de la salida, PYTHONUTF8), actualizar a una versión etiquetada o
volver a una anterior, y desinstalar.
- docs/despliegue_windows.md: requisitos, instalación, operación, rollback y
problemas frecuentes.
- tools/verificar_conexiones.py: comprueba .env, Graph, SAP, HANA y la ruta de
red sin modificar nada.
- CHANGELOG.md, README e inventario; pyproject.toml pasa a 1.2.0.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Los scripts manuales pasan a tools/ y los correos de ejemplo a
tests/fixtures/. Suite de 95 pruebas: caracterización de la extracción sobre
los 46 correos (resultados esperados en tests/golden/, fuera de la carpeta
que descargar_correos_prueba borra), unitarias de draft_sap, notificaciones,
documentos, adjuntos y config_validator, y flujo completo de
_procesar_un_correo con SAP/HANA/Outlook simulados. pytest como dependencia
dev y configuración en pyproject.toml.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
config_validator.verificar_configuracion termina con código 1 si faltan
variables obligatorias (pipeline, Graph, SAP B1, HANA), si hay ruta de red
sin RUC_EMPRESA, y advierte por SSL desactivado, ruta de red ausente o
LOG_LEVEL inválido. Se invoca desde main.py y tools/consulta_rapida.py.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
El script apuntaba a test/ids_prueba.json, carpeta que ya no existe tras el
renombre a tools/. Ahora resuelve rutas desde su ubicación y agrega la raíz
del proyecto al sys.path. Se quita de py-modules y se actualiza inventario.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Dependencias directas con versiones fijas (incluye hdbcli, se quita el alias
dotenv y las transitivas), build-backend corregido a setuptools.build_meta y
py-modules declarados para el layout plano.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>