From c463c6ecc30f559670f27876aca21ac092f5dc31 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Tue, 28 Jul 2026 15:31:23 -0500 Subject: [PATCH] debug: catch generar_factura_venta exceptions in preview, expose in response Instead of crashing with 500, catches the error and exposes it in ventas_gen_errors field so it can be diagnosed from the browser. Co-Authored-By: Claude Sonnet 4.6 --- app/routes/automation.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/app/routes/automation.py b/app/routes/automation.py index 6178c52..054eef9 100644 --- a/app/routes/automation.py +++ b/app/routes/automation.py @@ -475,11 +475,18 @@ async def preview_automation( grupos_vta[k] = v ventas_preview = [] + ventas_gen_errors = [] for num_fac_key, grupo_rows in grupos_vta.items(): num_fac = str(grupo_rows[0].get("NUM_FACTURA") or "").strip() prefijo = str(grupo_rows[0].get("PREFIJO") or "").strip() - venta_json = generar_factura_venta(grupo_rows, default_vendedor="00", - default_prefijo=prefijo_def, numero_override=num_fac) + try: + venta_json = generar_factura_venta(grupo_rows, default_vendedor="00", + default_prefijo=prefijo_def, numero_override=num_fac) + except Exception as exc: + import traceback as _tb + ventas_gen_errors.append({"factura": num_fac, "error": str(exc), + "traceback": _tb.format_exc()}) + continue ventas_preview.append({ "factura": f"{prefijo}-{num_fac}", "paciente": str(grupo_rows[0].get("COD_PACIENTE", "")), @@ -501,6 +508,7 @@ async def preview_automation( "ventas_raw": len(rows_vta or []), "ventas_grupos_total": len(grupos_vta_all), "ventas_filtradas": ventas_debug, + "ventas_gen_errors": ventas_gen_errors, "pacientes_preview": pacientes_preview, "preservicios_preview": preservicios_preview, "ventas_preview": ventas_preview,