- Nueva página docs/sapb1_manager.md: sesión, funciones, clasificación de
errores (SapNoDisponible frente a rechazo de SAP), búsqueda de facturas
existentes y cómo se ubica una guía.
- procesar_pdfs.md y procesar_xmls.md usaban los nombres anteriores a la
división de pipeline.py (_procesar_pdfs, _ruta_carpeta...) y números de
línea que envejecen; ahora apuntan a documentos.py.
- inventario.md: árbol de dependencias con los módulos nuevos.
- pipeline.md: _procesar_factura, importes_coinciden, hana_disponible y
buscar_factura_existente; validar_precios.md, hana_manager.md, main.md y
procesar_xmls.md con las notas que faltaban; README sin la cifra de pruebas
vieja.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- HORARIOS cubre las 24 horas: 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. Se corrigen los comentarios, que no coincidían con los valores.
tests/test_horarios.py garantiza que no haya huecos ni solapes.
- La carpeta de resultados se resuelve junto al código, no relativa al cwd
(un servicio de Windows puede arrancar desde cualquier carpeta).
- copiar_a_red no crea carpetas locales cuando RUTA_RED_FACTURACION no es una
ruta absoluta en el sistema operativo (una UNC fuera de Windows); antes el
draft podía referenciar archivos que no estaban en el recurso compartido.
- El log muestra la versión del proyecto (pyproject.toml) al arrancar.
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>
- hana_manager.get_delivery ahora busca en ODLN y, si no encuentra, en OWTR
- sapb1_manager resuelve StockTransfers -> Orders (via U_IDC_NUMOV) para
validar precios de flete cuando la guia es un traslado de inventario
- se corrige el orden de parametros tipo/serie/numero (sin cruces) en
get_delivery, get_delivery_notes y _get_delivery_entries
- se agrega sapb1_manager.obtener_condicion_pago (BusinessPartners +
PaymentTermsTypes) y pipeline._calcular_fecha_vencimiento para que
DocDueDate del draft sea fecha de contabilizacion + dias de la condicion
de pago del proveedor
- se agrega variante de regex para "VALOR REFER" truncado en sunat_schema.py
- se actualiza documentacion (docs/) reflejando estos cambios
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>