Simplifica numero único en TNS: siempre usar {factura}-{idrecepcion}

Elimina la lógica condicional que dependía de rda_test_log para detectar
colisiones. Ahora cada IDRECEPCION siempre genera un numero único y
reproducible en TNS sin consultar historial previo.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-06-26 19:59:31 -05:00
co-authored by Claude Sonnet 4.6
parent d9d3deef6c
commit 6905a4132e
2 changed files with 7 additions and 27 deletions
+4 -14
View File
@@ -146,12 +146,15 @@ async def send_one(
api_sucursal = cfg.get("api_sucursal", "") or "00"
endpoint = f"{TNS_BASE}/v2/rda/RdaPaciente/Insertar?codigosucursal={api_sucursal}"
num_factura_one = str(grupo_rows[0].get("NUM_FACTURA") or "").strip()
numero_override_one = f"{num_factura_one}-{idrecepcion}" if num_factura_one else str(idrecepcion)
rda_json = generar_rda_paciente(
grupo_rows,
cfg.get("profesional_default", ""),
cfg.get("especialidad_default", ""),
cfg.get("remisionante_default", "00"),
cfg.get("prefijo_tns_default", "00"),
numero_override_one,
)
raw_resp = ""
@@ -227,22 +230,11 @@ async def send_transaccion(
api_sucursal = cfg.get("api_sucursal", "") or "00"
endpoint = f"{TNS_BASE}/v2/rda/RdaPaciente/Insertar?codigosucursal={api_sucursal}"
# Rastrear facturas ya enviadas exitosamente para evitar numero duplicado en TNS
conn_check = get_connection()
facturas_ok_prev = {r[0] for r in conn_check.execute(
"SELECT DISTINCT factura FROM envios WHERE tipo='transaccion' AND status='success'"
).fetchall()}
conn_check.close()
facturas_ok_sesion: set = set()
resultados = []
async with httpx.AsyncClient(timeout=int(cfg.get("api_timeout", 30))) as client:
for id_rec, grupo_rows in grupos.items():
num_factura = str(grupo_rows[0].get("NUM_FACTURA") or "").strip()
if num_factura and (num_factura in facturas_ok_prev or num_factura in facturas_ok_sesion):
numero_override = f"{num_factura}-{id_rec}"
else:
numero_override = ""
numero_override = f"{num_factura}-{id_rec}" if num_factura else str(id_rec)
rda_json = generar_rda_paciente(
grupo_rows,
cfg.get("profesional_default", ""),
@@ -284,8 +276,6 @@ async def send_transaccion(
raw_resp[:2000], msg_tns,
datetime.now().isoformat(),
))
if ok_rda:
facturas_ok_sesion.add(num_factura)
conn.commit()
conn.close()
resultados.append({"idrecepcion": id_rec, "success": ok_rda, "msg": msg_tns})