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
+3 -13
View File
@@ -266,23 +266,13 @@ async def test_enviar(request: Request, user: dict = Depends(get_current_user)):
# Paso 2: enviar RDA
grupos = agrupar_por_recepcion(rows_rda)
# Rastrear facturas usadas en esta sesión para evitar colisión en TNS
facturas_usadas_sesion: set = set()
# También verificar facturas ya exitosas en rda_test_log
db_check = get_connection()
facturas_previas = {r[0] for r in db_check.execute(
"SELECT factura FROM rda_test_log WHERE ok = 1"
).fetchall()}
db_check.close()
async with httpx.AsyncClient(timeout=30) as client:
for id_rec, grupo_rows in grupos.items():
num_factura = str(grupo_rows[0].get("NUM_FACTURA") or "").strip()
# Si este numero ya fue enviado exitosamente (en esta sesión o antes), usar id único
if num_factura and (num_factura in facturas_previas or num_factura in facturas_usadas_sesion):
numero_override = f"{num_factura}-{id_rec}"
else:
numero_override = ""
# Usar siempre "{factura}-{idrecepcion}" para garantizar unicidad en TNS
# (múltiples IDRECEPCION comparten NUM_FACTURA en Firebird)
numero_override = f"{num_factura}-{id_rec}" if num_factura else str(id_rec)
rda_json = generar_rda_paciente(grupo_rows, prof_def, esp_def, remis_def, prefijo_def, numero_override)
examenes = [r.get("COD_EXAMEN", "") for r in grupo_rows]
try: