- 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>
3.9 KiB
3.9 KiB
Historial de cambios
Las versiones siguen SemVer y se publican como etiquetas de git (v1.2.0). La versión vigente está en pyproject.toml y se muestra en el log al arrancar.
[1.2.0] — 2026-10-22
Agregado
- Respuesta al proveedor con las plantillas HTML de aceptado y rechazado (
plantilla/), enviada a quien envió el correo. Verdocs/respuesta_proveedor.md.NOTIFICACION_MODO:prueba(por defecto; la respuesta va al equipo, no al proveedor) oreal(al remitente, con copia oculta al equipo).- Protecciones: no responde a remitentes desconocidos o sin dominio válido, al propio buzón, a
no-reply, a mensajes automáticos ni rebotes, a respuestas de nuestras notificaciones, y limita a 3 respuestas por remitente cada 24 h en correos sin comprobante. - Rechazo con observaciones estructuradas (título, detalle, cómo corregir) también para correos sin comprobante válido.
- Se valida si la factura ya existe en SAP (factura de compra no anulada o draft) antes de crear el draft; si existe, no se duplica y se responde que ya está registrada.
- Servicio fuera de línea: si SAP Service Layer o HANA no responden, se avisa una vez al proveedor ("en cola, no necesita reenviar") y el correo se reintenta en los ciclos siguientes, hasta 24 veces. Plantilla
plantilla-fuera-de-linea.html. - Código de seguimiento (
ABR-AAMMDD-NNNNN) por comprobante, con su resultado y el estado de la notificación (seguimiento.py, tablacomprobantes). - Despliegue en Windows como servicio con NSSM (
deploy/,docs/despliegue_windows.md). - Validación del
.enval arrancar (config_validator.py), que además anuncia el modo de notificación. - Versión del proyecto en el log al arrancar y
tools/verificar_conexiones.py(comprueba el.env, Microsoft Graph, SAP, HANA y la ruta de red sin modificar nada). - Suite de pruebas pytest (más de 280) y herramientas de vista previa y envío de prueba de las plantillas (
tools/previsualizar_plantillas.py). - Documentación:
README.md, guía de MSAL (docs/configurar_msal.md) y una página por módulo principal.
Cambiado
- El correo técnico (tablas de SAP y JSON adjuntos) va solo al equipo; antes iba también al remitente.
- Un error de SAP/HANA o un fallo inesperado ya no se le comunica al proveedor como rechazo y ya no interrumpe el ciclo: solo esa factura.
- "Guía no encontrada" exige que HANA responda: si no, se trata como servicio fuera de línea.
DueDatede las cuotas del draft = fecha de vencimiento (antes, fecha de emisión).- Horarios sin huecos: se agregan 21:30–24:00 (cada 60 min) y 05:00–06:30 (cada 30 min); antes el demonio dormía hasta las 06:30 en esos tramos.
- La base
emails.dby la carpeta de resultados se resuelven junto al código, no relativas al directorio de trabajo. copiar_a_redya no crea carpetas locales cuandoRUTA_RED_FACTURACIONno es una ruta absoluta en el sistema operativo (una ruta UNC fuera de Windows); antes el draft podía referenciar archivos que no estaban en el recurso compartido.pipeline.pyse divide en módulos (adjuntos,documentos,persistencia,draft_sap,notificaciones).- Los
printde los módulos pasan aloggingcon nivel explícito (LOG_LEVELfiltra por severidad). pyproject.tomlyrequirements.txtalineados, con las dependencias directas fijadas.consulta_rapida.pyy los scripts manuales pasan atools/; los correos de ejemplo, atests/fixtures/.
Eliminado
tools/documento.json(token de ngrok sin uso). El token sigue en el historial de git: revóquelo.
Seguridad
- Pendiente de rotar: la contraseña de SAP y el token de ngrok, presentes en el historial de git (
tools/aberio.http,tools/documento.json).
[1.1.0]
Versión anterior a este registro: descarga de adjuntos, extracción de XML y PDF, validación de precios contra SAP B1, creación del draft y notificación por correo.