feat: resolve exam prices via TARIFA+EMPRESA JOIN, show company name
- PRECIO now falls back to catalog price (TARIFA) when 0/null - JOIN EMPRESA + EMPRESA_SUB + TARIFA in exam query - NOM_EMPRESA propagated to log and historial display Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
7aa02fe6ac
commit
6cbf0732e6
+21
-13
@@ -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")}
|
||||
|
||||
@@ -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],
|
||||
|
||||
@@ -363,8 +363,8 @@ async function cargarHistorialScheduler() {
|
||||
? `<span class="text-orange-600">${p.diagnostico_cod}</span>${p.diagnostico_nombre ? ' · ' + p.diagnostico_nombre : ''}`
|
||||
: '<span class="text-gray-300">Sin diagnóstico</span>';
|
||||
|
||||
const empresa = p.nit_empresa
|
||||
? `<span class="text-teal-600">${p.nit_empresa}</span>`
|
||||
const empresa = (p.nom_empresa || p.nit_empresa)
|
||||
? `<span class="text-teal-600">${p.nom_empresa || p.nit_empresa}</span>`
|
||||
: '<span class="text-gray-300">Sin empresa</span>';
|
||||
|
||||
const valor = p.valor_total > 0
|
||||
|
||||
Reference in New Issue
Block a user