feat: opcion 'sin contrato' para enviar numeroContrato null en TNS

- Agrega columna sin_contrato en tabla contratos (migration automatica)
- Contrato 040 marcado excluir=0, sin_contrato=1 en seed
- load_sin_contrato_set() retorna contratos que deben ir con null
- generar_rda_paciente acepta sin_contrato_set y fuerza numeroContrato=null
- Automation paso 2 y 3 pasan sin_contrato_set al generador
- Pagina contratos: columna y toggle "Sin contrato", checkbox en modal editar

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-10 21:22:09 -05:00
co-authored by Claude Sonnet 4.6
parent eeabb6268e
commit 9f2bd5164e
5 changed files with 127 additions and 64 deletions
+5 -2
View File
@@ -127,7 +127,7 @@ def agrupar_por_recepcion(rows: list) -> dict:
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,
prefijo_override: str = "") -> dict:
prefijo_override: str = "", sin_contrato_set: set = None) -> dict:
if not rows:
return {}
h = rows[0]
@@ -189,7 +189,10 @@ def generar_rda_paciente(rows: list, default_profesional: str = "", default_espe
or (_map_tipo == "12")
or (not _map_tipo and cod_contrato_raw.lstrip("0") == "12")
)
cod_contrato = cod_contrato_raw or ("012" if es_particular else None)
if sin_contrato_set and cod_contrato_raw and cod_contrato_raw in sin_contrato_set:
cod_contrato = None
else:
cod_contrato = cod_contrato_raw or ("012" if es_particular else None)
cod_forma_pago = "CLIP" if es_particular else "INST"
autorizacion = None if es_particular else (str(h.get("AUTORIZACION") or "").strip() or None)