Usa formato RIPS completo para numero TNS: LHXC03990-314522

El numero del kardex en TNS ahora incluye el PREFIJO de Firebird y el
NUM_FACTURA zero-padded a 5 dígitos, igual al numFactura del RIPS
(ej: LHXC03404). Se agrega -{idrecepcion} al final para garantizar
unicidad ya que múltiples IDRECEPCION comparten el mismo NUM_FACTURA.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-06-26 20:03:03 -05:00
co-authored by Claude Sonnet 4.6
parent 6905a4132e
commit 88f684a006
2 changed files with 10 additions and 5 deletions
+4 -3
View File
@@ -270,9 +270,10 @@ async def test_enviar(request: Request, user: dict = Depends(get_current_user)):
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()
# 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)
prefijo_fb = str(grupo_rows[0].get("PREFIJO") or "").strip()
# Formato completo como RIPS: LHXC03990-314522 (único por IDRECEPCION)
num_fmt = f"{prefijo_fb}{num_factura.zfill(5)}" if prefijo_fb else num_factura
numero_override = f"{num_fmt}-{id_rec}" if num_fmt 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:
+6 -2
View File
@@ -147,7 +147,9 @@ async def send_one(
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)
prefijo_one = str(grupo_rows[0].get("PREFIJO") or "").strip()
num_fmt_one = f"{prefijo_one}{num_factura_one.zfill(5)}" if prefijo_one else num_factura_one
numero_override_one = f"{num_fmt_one}-{idrecepcion}" if num_fmt_one else str(idrecepcion)
rda_json = generar_rda_paciente(
grupo_rows,
cfg.get("profesional_default", ""),
@@ -234,7 +236,9 @@ async def send_transaccion(
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()
numero_override = f"{num_factura}-{id_rec}" if num_factura else str(id_rec)
prefijo_fb = str(grupo_rows[0].get("PREFIJO") or "").strip()
num_fmt = f"{prefijo_fb}{num_factura.zfill(5)}" if prefijo_fb else num_factura
numero_override = f"{num_fmt}-{id_rec}" if num_fmt else str(id_rec)
rda_json = generar_rda_paciente(
grupo_rows,
cfg.get("profesional_default", ""),