import{d as w,u as H,r as l,j as e,N as O,g as I,s as d,L,b as o,e as b,h as F,f as T}from"./index-kE4_6-nI.js";import{M as g}from"./Modal-BtPN4Q6v.js";import{P as V}from"./PageHeader-BIrj68Xg.js";import{S as B}from"./StatusBadge-B-6mWO83.js";function K(){const{id:v}=w(),{role:a,requisitions:N,recruiters:u,approveHr:f,approveAdmin:y,reject:S,activateRecruitment:R,advanceStage:D}=H(),s=N.find(i=>i.id===v),[_,n]=l.useState(!1),[q,t]=l.useState(!1),[r,A]=l.useState(""),[h,C]=l.useState(u[0]?.name??"");if(!s)return e.jsx(O,{to:"/requisiciones",replace:!0});const c=I(s),j=s.approvalDays+s.recruitingDays,k=s.slaTargetDays?Math.min(100,Math.round(j/s.slaTargetDays*100)):0,m=d.indexOf(s.stage),x=a==="director"&&s.status==="pendiente_rrhh"||a==="administracion"&&s.status==="pendiente_administracion",M=a!=="coordinacion",E=()=>{r.trim().length<10||(S(s.id,r.trim()),n(!1))},$=()=>{R(s.id,h),t(!1)};return e.jsxs("div",{className:"page-stack detail-page",children:[e.jsx(L,{className:"back-link",to:a==="coordinacion"?"/mis-requisiciones":"/requisiciones",children:"← Volver a requisiciones"}),e.jsx(V,{eyebrow:`${s.groupId} · ${s.country}`,title:s.position,description:`${s.city} · ${s.client} · ${s.quantity} ${s.quantity===1?"vacante":"vacantes"}`,actions:e.jsx(B,{status:s.status})}),e.jsxs("section",{className:`sla-banner sla-banner--${c}`,children:[e.jsxs("div",{className:"sla-banner__lead",children:[e.jsx("p",{children:s.slaMode==="cumplimiento"?"SLA POR CUMPLIMIENTO":"RELOJ DE SLA"}),e.jsx("strong",{children:s.slaMode==="cumplimiento"?o(s.startDate):`${j} / ${s.slaTargetDays} días`}),e.jsx("span",{children:s.slaMode==="cumplimiento"?"Fecha objetivo de incorporación":`Fecha límite: ${o(s.dueDate)}`})]}),e.jsxs("div",{className:"sla-banner__progress",children:[e.jsx("div",{children:e.jsx("i",{style:{width:`${k}%`}})}),e.jsxs("p",{children:[e.jsxs("span",{children:["Aprobación ",e.jsxs("b",{children:[s.approvalDays," d"]})]}),e.jsxs("span",{children:["Reclutamiento ",e.jsxs("b",{children:[s.recruitingDays," d"]})]})]})]}),e.jsxs("div",{className:"sla-banner__state",children:[e.jsx("span",{children:"Estado"}),e.jsx("strong",{children:s.slaMode==="cumplimiento"?"Se mide cumplimiento":c==="late"?"Vencido":c==="risk"?"En riesgo":c==="neutral"?"Sin iniciar":"En tiempo"})]})]}),e.jsx("section",{className:"process-track","aria-label":"Flujo de aprobación",children:[["Enviada",!!s.submittedAt],["Revisión de RRHH",!["borrador","pendiente_rrhh"].includes(s.status)],["Aprobación de Administración",["aprobada","reclutando","cerrada"].includes(s.status)],["Reclutamiento activo",["reclutando","cerrada"].includes(s.status)],["Cierre",s.status==="cerrada"]].map(([i,p],P)=>e.jsxs("div",{className:p?"is-complete":"",children:[e.jsx("span",{children:p?"✓":P+1}),e.jsx("b",{children:String(i)})]},String(i)))}),e.jsxs("div",{className:"detail-grid",children:[e.jsxs("div",{className:"detail-grid__main",children:[e.jsxs("section",{className:"detail-section",children:[e.jsxs("header",{children:[e.jsx("span",{children:"01"}),e.jsx("h2",{children:"Solicitud"})]}),e.jsxs("dl",{className:"detail-list",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Solicitante"}),e.jsxs("dd",{children:[s.requester,e.jsx("small",{children:s.requesterEmail})]})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Tipo de vacante"}),e.jsx("dd",{children:s.type})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Duración"}),e.jsx("dd",{children:s.duration})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Inicio requerido"}),e.jsx("dd",{children:o(s.startDate)})]}),s.replacementName?e.jsxs("div",{children:[e.jsx("dt",{children:"Persona a reemplazar"}),e.jsxs("dd",{children:[s.replacementName,e.jsxs("small",{children:["Salida: ",o(s.replacementExitDate)]})]})]}):null,e.jsxs("div",{className:"detail-list__wide",children:[e.jsx("dt",{children:"Justificación"}),e.jsx("dd",{children:s.justification})]}),s.comments?e.jsxs("div",{className:"detail-list__wide",children:[e.jsx("dt",{children:"Comentarios"}),e.jsx("dd",{children:s.comments})]}):null]})]}),e.jsxs("section",{className:"detail-section",children:[e.jsxs("header",{children:[e.jsx("span",{children:"02"}),e.jsx("h2",{children:"Vacantes individuales"}),e.jsxs("p",{children:[s.units.length||s.quantity," IDs bajo ",s.groupId]})]}),s.units.length?e.jsx("div",{className:"unit-list",children:s.units.map(i=>e.jsxs("article",{children:[e.jsxs("div",{children:[e.jsx("b",{children:i.id}),e.jsx("span",{children:i.label})]}),e.jsx("strong",{children:b[i.stage]}),i.candidate?e.jsx("small",{children:i.candidate}):e.jsx("small",{children:"Sin candidatura seleccionada"})]},i.id))}):e.jsx("div",{className:"inline-note",children:"Los IDs individuales se generarán al enviar la requisición."})]}),e.jsxs("section",{className:"detail-section",children:[e.jsxs("header",{children:[e.jsx("span",{children:"03"}),e.jsx("h2",{children:"Registro de auditoría"}),e.jsx("p",{children:"Historial inmutable del caso"})]}),e.jsx("ol",{className:"audit-trail",children:[...s.audit].reverse().map(i=>e.jsxs("li",{children:[e.jsx("time",{children:F(i.at)}),e.jsxs("div",{children:[e.jsx("b",{children:i.action}),e.jsx("span",{children:i.actor}),e.jsx("p",{children:i.detail})]})]},i.id))})]})]}),e.jsxs("aside",{className:"detail-grid__aside",children:[e.jsxs("section",{className:"side-panel",children:[e.jsx("p",{className:"eyebrow",children:"Responsabilidad"}),e.jsx("h2",{children:s.recruiter??(s.status==="pendiente_administracion"?"Administración":s.status==="pendiente_rrhh"?"Dirección de RRHH":"Sin asignar")}),e.jsx("p",{children:"Responsable actual del siguiente movimiento."})]}),e.jsxs("section",{className:"side-panel",children:[e.jsx("p",{className:"eyebrow",children:"Paquete financiero"}),M?e.jsxs(e.Fragment,{children:[e.jsx("strong",{className:"money-value",children:T(s.budget,s.currency)}),e.jsx("p",{children:s.salaryPackage})]}):e.jsxs("div",{className:"protected-data",children:[e.jsx("span",{"aria-hidden":"true",children:"•••"}),e.jsx("p",{children:"Visible para RRHH y Administración."})]})]}),e.jsxs("section",{className:"side-panel side-panel--actions",children:[e.jsx("p",{className:"eyebrow",children:"Siguiente acción"}),x?e.jsxs(e.Fragment,{children:[e.jsxs("button",{className:"button button--primary button--full",type:"button",onClick:()=>a==="administracion"?y(s.id):f(s.id),children:["Aprobar ",a==="administracion"?"presupuesto":"solicitud"]}),e.jsx("button",{className:"button button--danger-quiet button--full",type:"button",onClick:()=>n(!0),children:"Solicitar corrección"})]}):null,a==="director"&&s.status==="aprobada"?e.jsx("button",{className:"button button--primary button--full",type:"button",onClick:()=>t(!0),children:"Activar reclutamiento"}):null,a==="coordinacion"&&s.status==="reclutando"?e.jsxs("button",{className:"button button--primary button--full",type:"button",onClick:()=>D(s.id),disabled:m===d.length-1,children:["Avanzar a ",b[d[Math.min(m+1,d.length-1)]]]}):null,!x&&!(a==="director"&&s.status==="aprobada")&&!(a==="coordinacion"&&s.status==="reclutando")?e.jsx("p",{children:"No hay acciones pendientes para tu rol."}):null]})]})]}),e.jsx(g,{open:_,title:"Solicitar corrección",description:"Explica con precisión qué debe cambiar el solicitante.",onClose:()=>n(!1),footer:e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"button button--quiet",type:"button",onClick:()=>n(!1),children:"Cancelar"}),e.jsx("button",{className:"button button--danger",type:"button",disabled:r.trim().length<10,onClick:E,children:"Enviar corrección"})]}),children:e.jsxs("label",{className:"field",children:[e.jsxs("span",{children:["Motivo ",e.jsx("b",{children:"*"})]}),e.jsx("textarea",{value:r,onChange:i=>A(i.target.value),rows:5}),e.jsx("small",{children:"Mínimo 10 caracteres."})]})}),e.jsx(g,{open:q,title:"Activar reclutamiento",description:"Selecciona a la persona responsable.",onClose:()=>t(!1),footer:e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"button button--quiet",type:"button",onClick:()=>t(!1),children:"Cancelar"}),e.jsx("button",{className:"button button--primary",type:"button",onClick:$,children:"Activar"})]}),children:e.jsxs("label",{className:"field",children:[e.jsx("span",{children:"Reclutador/a"}),e.jsx("select",{value:h,onChange:i=>C(i.target.value),children:u.map(i=>e.jsx("option",{children:i.name},i.id))})]})})]})}export{K as default};