fix: reg_501 tolera NULL en Destino y CLAVETRANSFER
preparar_json del 501 reventaba (TypeError/AttributeError) cuando OPCIONDESTINO o CLAVETRANSFER venian NULL: get(k, "") no protege porque un NULL de BD llega como None y el default no aplica. Pasa con pedimentos que baja SCAII_Sync (dejan esos campos en NULL); WinDev los llenaba. Se usa "or ''" en SCAII y SCAF. Ademas, el hilo de sincronizacion tragaba la excepcion con print (invisible en el exe windowed), por lo que parecia un cuelgue. Ahora se registra en el log con traza (log.error exc_info). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -184,7 +184,7 @@ class InterfazFlet:
|
|||||||
self.page.run_task(_done)
|
self.page.run_task(_done)
|
||||||
|
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
print(f"[UI ERROR] {ex}")
|
log.error(f"[UI ERROR] Fallo en el hilo de sincronizacion: {ex}", exc_info=True)
|
||||||
async def _err():
|
async def _err():
|
||||||
self.status_label.value = f"Error: {ex}"
|
self.status_label.value = f"Error: {ex}"
|
||||||
self.page.update()
|
self.page.update()
|
||||||
|
|||||||
@@ -9,10 +9,11 @@ class Generador501SCAF:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
# Lógica de Destino/Zona (SCAF a veces usa códigos distintos, pero el if parece igual)
|
# Lógica de Destino/Zona (SCAF a veces usa códigos distintos, pero el if parece igual)
|
||||||
destino = datos_pedi.get("OPCIONDESTINO", "")
|
# OJO: usar "or ''" y no get(k, ''), porque un NULL de BD llega como None y el default no aplica
|
||||||
|
destino = datos_pedi.get("OPCIONDESTINO") or ""
|
||||||
codigo_destino = "9" if "Interior" in destino else "7" if any(x in destino for x in ["Región", "Franja"]) else ""
|
codigo_destino = "9" if "Interior" in destino else "7" if any(x in destino for x in ["Región", "Franja"]) else ""
|
||||||
|
|
||||||
clave_transfer = datos_cliente.get("CLAVETRANSFER", "").strip() if datos_cliente else ""
|
clave_transfer = (datos_cliente.get("CLAVETRANSFER") or "").strip() if datos_cliente else ""
|
||||||
|
|
||||||
# Construcción del Registro 501 SCAF
|
# Construcción del Registro 501 SCAF
|
||||||
registro = {
|
registro = {
|
||||||
|
|||||||
@@ -9,11 +9,12 @@ class Generador501:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
# Lógica de Destino/Zona (Opcional)
|
# Lógica de Destino/Zona (Opcional)
|
||||||
destino = datos_pedi.get("Destino", "")
|
# OJO: usar "or ''" y no get(k, ''), porque un NULL de BD llega como None y el default no aplica
|
||||||
|
destino = datos_pedi.get("Destino") or ""
|
||||||
codigo_destino = "9" if "Interior" in destino else "7" if any(x in destino for x in ["Región", "Franja"]) else ""
|
codigo_destino = "9" if "Interior" in destino else "7" if any(x in destino for x in ["Región", "Franja"]) else ""
|
||||||
|
|
||||||
# Clave del Importador/Exportador
|
# Clave del Importador/Exportador
|
||||||
clave_transfer = datos_cliente.get("CLAVETRANSFER", "").strip() if datos_cliente else ""
|
clave_transfer = (datos_cliente.get("CLAVETRANSFER") or "").strip() if datos_cliente else ""
|
||||||
|
|
||||||
# Construcción del Registro 501
|
# Construcción del Registro 501
|
||||||
registro = {
|
registro = {
|
||||||
|
|||||||
Reference in New Issue
Block a user