diff --git a/app/services/scheduler.py b/app/services/scheduler.py
index d6a03f5..79e438c 100644
--- a/app/services/scheduler.py
+++ b/app/services/scheduler.py
@@ -35,24 +35,30 @@ WHERE CAST(r.FECHA_RECEPCION AS DATE) = CURRENT_DATE
_SQL_EXAMENES_HOY = """
SELECT
- TRIM(p.DOCIDENT) AS DOCIDENT,
+ TRIM(p.DOCIDENT) AS DOCIDENT,
r.IDRECEPCION,
r.HORAINICIORECEPCION,
- TRIM(rel.COD_EXAMEN) AS COD_EXAMEN,
- TRIM(ex.NOMBRE) AS NOM_EXAMEN,
- COALESCE(NULLIF(TRIM(ex.NUM_ISS), ''), TRIM(rel.COD_EXAMEN)) AS CUPS,
- rel.PRECIO,
- TRIM(r.DIAG_PPAL) AS DIAG_PPAL,
- TRIM(d.CONCEPTO) AS DIAG_CONCEPTO,
- TRIM(m.DOCIDMEDICO) AS DOCIDMEDICO,
- TRIM(r.NIT_EMPRESA) AS NIT_EMPRESA,
+ TRIM(rel.COD_EXAMEN) AS COD_EXAMEN,
+ TRIM(ex.NOMBRE) AS NOM_EXAMEN,
+ COALESCE(NULLIF(TRIM(ex.NUM_ISS), ''), TRIM(rel.COD_EXAMEN)) AS CUPS,
+ COALESCE(NULLIF(rel.PRECIO, 0), t.VALOR, 0) AS PRECIO,
+ TRIM(r.DIAG_PPAL) AS DIAG_PPAL,
+ TRIM(d.CONCEPTO) AS DIAG_CONCEPTO,
+ TRIM(m.DOCIDMEDICO) AS DOCIDMEDICO,
+ TRIM(r.NIT_EMPRESA) AS NIT_EMPRESA,
+ TRIM(e.NOMBRE) AS NOM_EMPRESA,
r.VALORTOTAL
FROM RECEPCION r
-JOIN RELACION rel ON rel.IDRECEPCION = r.IDRECEPCION
-LEFT JOIN EXAMEN ex ON TRIM(ex.CODIGO) = TRIM(rel.COD_EXAMEN)
+JOIN RELACION rel ON rel.IDRECEPCION = r.IDRECEPCION
+LEFT JOIN EXAMEN ex ON TRIM(ex.CODIGO) = TRIM(rel.COD_EXAMEN)
LEFT JOIN DIAGNOSTICO d ON TRIM(d.COD_DIAG) = TRIM(r.DIAG_PPAL)
-LEFT JOIN MEDICO m ON m.CODIGO = r.COD_MEDICO
-JOIN PACIENTE p ON p.CODIGO = r.COD_PACIENTE
+LEFT JOIN MEDICO m ON m.CODIGO = r.COD_MEDICO
+JOIN PACIENTE p ON p.CODIGO = r.COD_PACIENTE
+LEFT JOIN EMPRESA e ON TRIM(e.NIT) = TRIM(r.NIT_EMPRESA)
+LEFT JOIN EMPRESA_SUB es ON TRIM(es.NIT_EMP) = TRIM(r.NIT_EMPRESA)
+ AND TRIM(es.SUBGRUPO) = TRIM(r.SUBGRUPO)
+LEFT JOIN TARIFA t ON TRIM(t.COD_EXAMEN) = TRIM(rel.COD_EXAMEN)
+ AND t.TARIFA = COALESCE(es.TARIFA, e.TARIFA)
WHERE CAST(r.FECHA_RECEPCION AS DATE) = CURRENT_DATE
AND r.NUM_FACTURA > 0
ORDER BY r.IDRECEPCION
@@ -159,6 +165,7 @@ async def sync_recientes(ventana_min: int = 2) -> dict:
"diagnostico_nombre": (ex.get("DIAG_CONCEPTO") or "").strip(),
"medico_docidmedico": (ex.get("DOCIDMEDICO") or "").strip(),
"nit_empresa": (ex.get("NIT_EMPRESA") or "").strip(),
+ "nom_empresa": (ex.get("NOM_EMPRESA") or "").strip(),
"valor_total": _safe_num(ex.get("VALORTOTAL")),
})
@@ -176,6 +183,7 @@ async def sync_recientes(ventana_min: int = 2) -> dict:
entry["diagnostico_cod"] = first.get("diagnostico_cod", "")
entry["diagnostico_nombre"] = first.get("diagnostico_nombre", "")
entry["nit_empresa"] = first.get("nit_empresa", "")
+ entry["nom_empresa"] = first.get("nom_empresa", "")
entry["valor_total"] = first.get("valor_total")
entry["examenes_det"] = [
{"cups": e.get("cups", ""), "nombre": e.get("nombre", ""), "precio": e.get("precio")}
diff --git a/app/services/whatsapp_sync.py b/app/services/whatsapp_sync.py
index 5049e2f..726e633 100644
--- a/app/services/whatsapp_sync.py
+++ b/app/services/whatsapp_sync.py
@@ -39,6 +39,7 @@ def guardar_sync_log(
"diagnostico_cod": d.get("diagnostico_cod", ""),
"diagnostico_nombre": d.get("diagnostico_nombre", ""),
"nit_empresa": d.get("nit_empresa", ""),
+ "nom_empresa": d.get("nom_empresa", ""),
"valor_total": d.get("valor_total"),
"examenes_det": d.get("examenes_det", []),
} for d in detalle_raw],
diff --git a/app/templates/envios_erp.html b/app/templates/envios_erp.html
index d0637af..823684b 100644
--- a/app/templates/envios_erp.html
+++ b/app/templates/envios_erp.html
@@ -363,8 +363,8 @@ async function cargarHistorialScheduler() {
? `${p.diagnostico_cod}${p.diagnostico_nombre ? ' · ' + p.diagnostico_nombre : ''}`
: 'Sin diagnóstico';
- const empresa = p.nit_empresa
- ? `${p.nit_empresa}`
+ const empresa = (p.nom_empresa || p.nit_empresa)
+ ? `${p.nom_empresa || p.nit_empresa}`
: 'Sin empresa';
const valor = p.valor_total > 0