feat: use ITEM.CUPS_DETALLE as codigoMaterial in RDA

LEFT JOIN ITEM on COD_EXAMEN to get CUPS_DETALLE. Falls back to
COD_EXAMEN if CUPS is empty. Applied to automation, test_rda, and
saved queries in SQLite.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-01 12:20:22 -05:00
co-authored by Claude Sonnet 4.6
parent ebd45446a4
commit ff08c1b3a8
3 changed files with 7 additions and 2 deletions
+2
View File
@@ -59,6 +59,7 @@ SELECT
r.HORAINICIORECEPCION,
r.VALORTOTAL,
rel.COD_EXAMEN,
COALESCE(NULLIF(TRIM(it.CUPS_DETALLE), ''), TRIM(rel.COD_EXAMEN)) AS CUPS,
rel.PRECIO,
rel.DESCUENTO,
rel.FECHA_REPORTADO,
@@ -68,6 +69,7 @@ SELECT
TRIM(m.DOCIDMEDICO) AS DOCIDMEDICO
FROM RECEPCION r
JOIN RELACION rel ON rel.IDRECEPCION = r.IDRECEPCION
LEFT JOIN ITEM it ON TRIM(it.CODIGO) = TRIM(rel.COD_EXAMEN)
LEFT JOIN MEDICO m ON m.CODIGO = r.COD_MEDICO
LEFT JOIN EMPRESA e ON e.NIT = r.NIT_EMPRESA
WHERE r.FECHA_RECEPCION BETWEEN :fecha_ini AND :fecha_fin
+4 -1
View File
@@ -20,13 +20,16 @@ _SQL_RDA_BY_WHERE = """
SELECT
r.IDRECEPCION, r.PREFIJO, r.NUM_FACTURA, r.FECHA_RECEPCION, r.COD_PACIENTE,
r.NIT_EMPRESA, r.DIAG_PPAL, r.TIPOUSU, r.TIPOUSUSISPRO, r.AUTORIZACION, r.CLASEPROC,
r.HORAINICIORECEPCION, r.VALORTOTAL, rel.COD_EXAMEN, rel.PRECIO, rel.DESCUENTO, rel.FECHA_REPORTADO,
r.HORAINICIORECEPCION, r.VALORTOTAL, rel.COD_EXAMEN,
COALESCE(NULLIF(TRIM(it.CUPS_DETALLE), ''), TRIM(rel.COD_EXAMEN)) AS CUPS,
rel.PRECIO, rel.DESCUENTO, rel.FECHA_REPORTADO,
m.COD_ESPECIALIDAD,
COALESCE(NULLIF(TRIM(m.CODIGO), ''), NULLIF(TRIM(r.USUARIO), ''), '') AS profesional,
e.CODCONTRATO,
TRIM(m.DOCIDMEDICO) AS DOCIDMEDICO
FROM RECEPCION r
JOIN RELACION rel ON rel.IDRECEPCION = r.IDRECEPCION
LEFT JOIN ITEM it ON TRIM(it.CODIGO) = TRIM(rel.COD_EXAMEN)
LEFT JOIN MEDICO m ON m.CODIGO = r.COD_MEDICO
LEFT JOIN EMPRESA e ON e.NIT = r.NIT_EMPRESA
WHERE {where}
+1 -1
View File
@@ -149,7 +149,7 @@ def generar_rda_paciente(rows: list, default_profesional: str = "", default_espe
_doc = str(row.get("DOCIDMEDICO") or "").strip()
cedula_medico = _re.sub(r"[^0-9]", "", _doc)
detalle_pedido.append({
"codigoMaterial": str(row.get("COD_EXAMEN") or "").strip(),
"codigoMaterial": str(row.get("CUPS") or row.get("COD_EXAMEN") or "").strip(),
"codigoBodega": "00",
"cantidad": 1,
"tipoUnidad": "D",