Agrega filtro convenio en automation/transaccion/test-rda y fix particular (contrato 12)

- automation: filtro contrato en SQL pacientes+RDA, numero LHXC en run()
- transaccion: filtro contrato en preview/send-one/send
- test-rda: filtro tipo_usuario (11/07/12), default contrato "12", acepta "12"/"012"
- json_generator: detecta particular por CODCONTRATO "12"/"012" además de NIT_EMPRESA PART; fuerza tipousuario="12", codFormaPago="CLIP", plazoDias="0"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-06-26 20:23:00 -05:00
co-authored by Claude Sonnet 4.6
parent d7afbe9b7d
commit 69372a5673
7 changed files with 136 additions and 30 deletions
+26 -1
View File
@@ -9,7 +9,14 @@
<div class="px-6 py-4 border-b border-gray-200 flex items-center justify-between flex-wrap gap-2">
<h3 class="font-semibold text-gray-800"><i class="fas fa-list mr-2 text-blue-500"></i>Candidatos disponibles</h3>
<div class="flex gap-2 items-center flex-wrap">
<input id="filtro-contrato" type="text" placeholder="Contrato (ej: 011)" value="011"
<select id="filtro-tipo-usuario" onchange="onTipoUsuarioChange()"
class="px-3 py-1.5 border border-gray-300 rounded-lg text-sm">
<option value="">Tipo usuario (todos)</option>
<option value="11">11 — EPS / Contributivo</option>
<option value="07">07 — Póliza</option>
<option value="12">12 — Particular</option>
</select>
<input id="filtro-contrato" type="text" placeholder="Contrato (ej: 011)" value="12"
class="px-3 py-1.5 border border-gray-300 rounded-lg text-sm w-28">
<input id="filtro-articulos" type="text" placeholder="Artículos (vacío = lista TNS)"
class="px-3 py-1.5 border border-gray-300 rounded-lg text-sm w-52"
@@ -176,7 +183,9 @@ async function cargarCandidatos(reset = false) {
const contrato = document.getElementById('filtro-contrato').value.trim();
const articulos = document.getElementById('filtro-articulos').value.trim();
const tipoUsuario = document.getElementById('filtro-tipo-usuario').value;
const params = new URLSearchParams({ offset: _offset });
if (tipoUsuario) params.append('tipo_usuario', tipoUsuario);
if (contrato) params.append('contrato', contrato);
if (articulos) params.append('articulos', articulos);
@@ -214,7 +223,9 @@ async function verMas() {
await cargarEnviados();
const contrato = document.getElementById('filtro-contrato').value.trim();
const articulos = document.getElementById('filtro-articulos').value.trim();
const tipoUsuario = document.getElementById('filtro-tipo-usuario').value;
const params = new URLSearchParams({ offset: _offset });
if (tipoUsuario) params.append('tipo_usuario', tipoUsuario);
if (contrato) params.append('contrato', contrato);
if (articulos) params.append('articulos', articulos);
@@ -370,6 +381,20 @@ async function enviarRDA() {
contenido.innerHTML = html;
}
function onTipoUsuarioChange() {
const tipo = document.getElementById('filtro-tipo-usuario').value;
const contratoInput = document.getElementById('filtro-contrato');
if (tipo === '12') {
contratoInput.value = '';
contratoInput.disabled = true;
contratoInput.classList.add('bg-gray-100', 'text-gray-400');
} else {
contratoInput.disabled = false;
contratoInput.classList.remove('bg-gray-100', 'text-gray-400');
if (!contratoInput.value) contratoInput.value = '011';
}
}
cargarCandidatos(true);
function esc(s) {