fix(tramites): incluir también al Abogado Solicitante en dropdown de Horas
Refinamiento del commit anterior: el dropdown de "Horas Incurridas" ahora incluye al Abogado Solicitante del trámite + los Involucrados (deduplicado por nombre). Si el trámite no tiene ni solicitante asignado ni involucrados, inputs/botón quedan disabled con mensaje "— Sin asignados —".
This commit is contained in:
+18
-8
@@ -529,14 +529,24 @@ function buildDetail(dept,r){
|
||||
<h4>Horas Incurridas</h4>
|
||||
${hrs?`<ul class="hours-list">${hrs}</ul>`:'<p style="color:var(--gray);font-size:11px">Sin horas registradas.</p>'}
|
||||
<div class="total-hrs">Total: ${totalH} h</div>
|
||||
<div class="add-hours" onclick="event.stopPropagation()">
|
||||
${(r.involucrados&&r.involucrados.length)
|
||||
? `<select id="hr-abog-${r.id}">${r.involucrados.map(u=>`<option>${esc(u.name||u.email)}</option>`).join('')}</select>`
|
||||
: `<select id="hr-abog-${r.id}" disabled title="Agrega un involucrado al trámite primero"><option>— Sin involucrados —</option></select>`}
|
||||
<input type="number" id="hr-val-${r.id}" min="0.1" step="0.1" placeholder="Horas" style="width:70px" ${(r.involucrados&&r.involucrados.length)?'':'disabled'}>
|
||||
<input type="text" id="hr-desc-${r.id}" placeholder="Descripción" style="flex:1" ${(r.involucrados&&r.involucrados.length)?'':'disabled'}>
|
||||
<button class="btn btn-primary btn-sm" onclick="addHours('${dept}','${r.id}')" ${(r.involucrados&&r.involucrados.length)?'':'disabled'} title="${(r.involucrados&&r.involucrados.length)?'Registrar horas':'Agrega un involucrado al trámite primero'}">+</button>
|
||||
</div>
|
||||
${(()=>{
|
||||
// Opciones del dropdown de Horas: abogado solicitante + todos los involucrados,
|
||||
// deduplicados por nombre. Si el trámite no tiene ni solicitante ni involucrados,
|
||||
// el dropdown queda deshabilitado.
|
||||
const opts = new Set();
|
||||
if (r.abogado) opts.add(r.abogado);
|
||||
(r.involucrados||[]).forEach(u => { if (u.name||u.email) opts.add(u.name||u.email); });
|
||||
const list = [...opts];
|
||||
const enabled = list.length > 0;
|
||||
return `<div class="add-hours" onclick="event.stopPropagation()">
|
||||
${enabled
|
||||
? `<select id="hr-abog-${r.id}">${list.map(n=>`<option>${esc(n)}</option>`).join('')}</select>`
|
||||
: `<select id="hr-abog-${r.id}" disabled title="Agrega un abogado solicitante o involucrado primero"><option>— Sin asignados —</option></select>`}
|
||||
<input type="number" id="hr-val-${r.id}" min="0.1" step="0.1" placeholder="Horas" style="width:70px" ${enabled?'':'disabled'}>
|
||||
<input type="text" id="hr-desc-${r.id}" placeholder="Descripción" style="flex:1" ${enabled?'':'disabled'}>
|
||||
<button class="btn btn-primary btn-sm" onclick="addHours('${dept}','${r.id}')" ${enabled?'':'disabled'} title="${enabled?'Registrar horas':'Agrega un abogado solicitante o involucrado primero'}">+</button>
|
||||
</div>`;
|
||||
})()}
|
||||
</div>
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
Reference in New Issue
Block a user