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