feat: paso 3 pre-servicios RCXC/SC y limpieza de código copago

- Agrega paso 3 en automatización: envía RDA desde PRESSERV_DIAN (prefijos RCXC/SC) para pacientes EPS con PS_NUM IS NOT NULL
- Filtra paso 2 con PS_NUM IS NULL para separar particulares/empresas de EPS
- Elimina parámetro copago y función _calcular_descuento_pct (código muerto)
- Limpia referencia a d.copago en automation.html (UI paso 3)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-10 20:43:02 -05:00
co-authored by Claude Sonnet 4.6
parent c20e1a7476
commit c2a092c0e7
3 changed files with 155 additions and 17 deletions
+3 -10
View File
@@ -124,17 +124,10 @@ def agrupar_por_recepcion(rows: list) -> dict:
return grupos
def _calcular_descuento_pct(rows: list) -> int:
total_cobrado = sum(float(r.get("PRECIO") or 0) for r in rows)
total_tarifa = sum(float(r.get("PRECIO_TARIFA") or r.get("PRECIO") or 0) for r in rows)
if total_tarifa > 0 and total_tarifa > total_cobrado:
return round((total_tarifa - total_cobrado) / total_tarifa * 100)
return 0
def generar_rda_paciente(rows: list, default_profesional: str = "", default_especialidad: str = "",
default_remisionante: str = "00", default_prefijo: str = "00",
numero_override: str = "", contrato_map: dict = None) -> dict:
numero_override: str = "", contrato_map: dict = None,
prefijo_override: str = "") -> dict:
if not rows:
return {}
h = rows[0]
@@ -220,7 +213,7 @@ def generar_rda_paciente(rows: list, default_profesional: str = "", default_espe
descuento_pct = round(_desc * 100 / _total, 2) if _total > 0 else 0
result = {
"codigoPrefijo": str(h.get("PREFIJO") or "").strip() or default_prefijo or "00",
"codigoPrefijo": prefijo_override or str(h.get("PREFIJO") or "").strip() or default_prefijo or "00",
"numero": (numero_override if numero_override else (
str(h.get("NUM_FACTURA") or "").strip() if (h.get("NUM_FACTURA") or 0) != 0 else ""
)).zfill(5) or "",