diff --git a/registros/scaf/reg_551.py b/registros/scaf/reg_551.py index a2bc788..57b9491 100644 --- a/registros/scaf/reg_551.py +++ b/registros/scaf/reg_551.py @@ -45,6 +45,13 @@ class Generador551SCAF: else: um_comercial_num = map_um_num.get(oma_raw, oma_raw) + # linea_scaii_551 es entero opcional (llave de cruce con WINSAAI); sale del LOTE. + # Si el LOTE viene vacio o no es numerico -> None (el API lo acepta como null). + try: + linea_scaii = int(str(par.get("Lote")).strip()) + except (ValueError, TypeError): + linea_scaii = None + registro = { "id_factura": id_factura, "fraccion_551": str(frac_final), @@ -82,7 +89,7 @@ class Generador551SCAF: "numero_remesa_551": str(num_remesa or " "), "numero_partida_remesa_551": str(num_partida_remesa), - "linea_scaii_551": str(par.get("Lote") or " "), # Lote de la tabla de partidas (impo/expo/def/temp) + "linea_scaii_551": linea_scaii, # Entero (o null) desde LOTE de la tabla de partidas "cantidad_alterna_551": float(par.get("CantidadAlterna") or 0), "unidad_medida_alterna_551": str(par.get("UnidadAlterna", " ")), "descripcion_ingles_551": " ", diff --git a/registros/scaii/reg_551.py b/registros/scaii/reg_551.py index e42cc38..e67a1fc 100644 --- a/registros/scaii/reg_551.py +++ b/registros/scaii/reg_551.py @@ -88,6 +88,13 @@ class Generador551SCAII: if not metodo_val: metodo_val = str(met_val) if met_val else "" + # linea_scaii_551 es entero opcional (llave de cruce con WINSAAI); sale del LOTE. + # Si el LOTE viene vacio o no es numerico -> None (el API lo acepta como null). + try: + linea_scaii = int(str(par.get("Lote")).strip()) + except (ValueError, TypeError): + linea_scaii = None + registro = { "id_factura": id_factura, "fraccion_551": str(frac_final), @@ -125,7 +132,7 @@ class Generador551SCAII: "numero_remesa_551": str(num_remesa or " "), "numero_partida_remesa_551": str(par.get("Linea") or num_partida_remesa), - "linea_scaii_551": str(par.get("Lote") or " "), # Lote de la tabla de partidas (impo/expo/def/temp) + "linea_scaii_551": linea_scaii, # Entero (o null) desde LOTE de la tabla de partidas "cantidad_alterna_551": float(par.get("CantidadAlterna") or 0), "unidad_medida_alterna_551": str(par.get("UnidadAlterna") or " "), "descripcion_ingles_551": str(par.get("DescripcionIngles") or " ").strip()[:80],