2 lines
5.1 KiB
JavaScript
2 lines
5.1 KiB
JavaScript
import{u as k,r as i,j as e,f as v,g as E,b as g,L as P}from"./index-kE4_6-nI.js";import{M as d,E as D}from"./DashboardParts-nkkWHQei.js";import{M as y}from"./Modal-BtPN4Q6v.js";import{P as H}from"./PageHeader-BIrj68Xg.js";import{S as L}from"./StatusBadge-B-6mWO83.js";function U(){const{role:t,requisitions:u,recruiters:p,approveHr:f,approveAdmin:N,reject:q,activateRecruitment:S}=k(),[c,x]=i.useState(null),[j,h]=i.useState(null),[l,m]=i.useState(""),[o,A]=i.useState(p[0]?.name??""),r=i.useMemo(()=>u.filter(a=>t==="administracion"?a.status==="pendiente_administracion":a.status==="pendiente_rrhh"||a.status==="aprobada"),[u,t]),C=r.reduce((a,s)=>a+(s.currency==="USD"||s.currency==="PAB"?s.budget:s.budget/4e3),0),b=(a,s)=>{x(a),m(""),h(s)},n=()=>{x(null),h(null)},_=()=>{!c||l.trim().length<10||(q(c.id,l.trim()),n())},M=()=>{!c||!o||(S(c.id,o),n())};return e.jsxs("div",{className:"page-stack",children:[e.jsx(H,{eyebrow:t==="administracion"?"Puerta final · Administración":"Control secuencial · Dirección RRHH",title:"Aprobaciones",description:t==="administracion"?"Resuelve presupuesto y paquete salarial después de la validación de RRHH.":"Valida solicitudes y activa el reclutamiento cuando ambas firmas estén completas."}),e.jsxs("section",{className:"metrics-grid metrics-grid--three",children:[e.jsx(d,{label:"En tu cola",value:r.length,note:"Ordenadas por SLA",tone:"orange"}),e.jsx(d,{label:"Impacto visible",value:v(C,"USD"),note:"Equivalente mensual"}),e.jsx(d,{label:"Más antigua",value:"3 d",note:"Desde el envío",tone:r.length?"red":"green"})]}),e.jsx("section",{className:"approval-queue",children:r.length===0?e.jsx(D,{title:"No hay aprobaciones pendientes",detail:"Las nuevas solicitudes aparecerán aquí cuando completen el paso anterior."}):r.map(a=>{const s=E(a),R=a.status==="aprobada";return e.jsxs("article",{className:`approval-card signal-${s}`,children:[e.jsxs("div",{className:"approval-card__index",children:[e.jsx("span",{children:a.id}),e.jsx("small",{children:g(a.submittedAt)})]}),e.jsxs("div",{className:"approval-card__main",children:[e.jsxs("div",{className:"approval-card__title",children:[e.jsxs("div",{children:[e.jsxs("p",{children:[a.country," · ",a.city]}),e.jsx("h2",{children:a.position})]}),e.jsx(L,{status:a.status})]}),e.jsxs("dl",{className:"approval-card__facts",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Solicitante"}),e.jsx("dd",{children:a.requester})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Cliente / proyecto"}),e.jsx("dd",{children:a.client})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Vacantes"}),e.jsxs("dd",{children:[a.quantity," · Tier ",a.tier]})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Inicio requerido"}),e.jsx("dd",{children:g(a.startDate)})]})]}),e.jsxs("div",{className:"approval-card__budget",children:[e.jsxs("div",{children:[e.jsx("span",{children:"Presupuesto mensual"}),e.jsx("strong",{children:v(a.budget,a.currency)})]}),e.jsxs("div",{children:[e.jsx("span",{children:"Paquete salarial"}),e.jsx("p",{children:a.salaryPackage})]})]})]}),e.jsxs("div",{className:"approval-card__actions",children:[e.jsx(P,{className:"button button--quiet",to:`/requisiciones/${a.id}`,children:"Ver expediente"}),R?e.jsx("button",{className:"button button--primary",type:"button",onClick:()=>b(a,"activate"),children:"Activar reclutamiento"}):e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"button button--danger-quiet",type:"button",onClick:()=>b(a,"reject"),children:"Solicitar corrección"}),e.jsxs("button",{className:"button button--primary",type:"button",onClick:()=>t==="administracion"?N(a.id):f(a.id),children:["Aprobar ",t==="administracion"?"presupuesto":"solicitud"]})]})]})]},a.id)})}),e.jsx(y,{open:j==="reject",title:"Solicitar una corrección",description:"El motivo será visible para el solicitante y quedará en la auditoría.",onClose:n,footer:e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"button button--quiet",onClick:n,children:"Cancelar"}),e.jsx("button",{type:"button",className:"button button--danger",disabled:l.trim().length<10,onClick:_,children:"Enviar corrección"})]}),children:e.jsxs("label",{className:"field",children:[e.jsxs("span",{children:["Motivo de la corrección ",e.jsx("b",{children:"*"})]}),e.jsx("textarea",{rows:5,value:l,onChange:a=>m(a.target.value),placeholder:"Indica exactamente qué debe corregirse…"}),e.jsx("small",{children:"Mínimo 10 caracteres."})]})}),e.jsxs(y,{open:j==="activate",title:"Activar el reclutamiento",description:"Asigna a la persona que dará seguimiento al caso.",onClose:n,footer:e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"button button--quiet",onClick:n,children:"Cancelar"}),e.jsx("button",{type:"button",className:"button button--primary",onClick:M,children:"Activar y asignar"})]}),children:[e.jsxs("label",{className:"field",children:[e.jsx("span",{children:"Reclutador/a"}),e.jsx("select",{value:o,onChange:a=>A(a.target.value),children:p.map(a=>e.jsxs("option",{children:[a.name," · ",a.score," pts"]},a.id))})]}),e.jsx("div",{className:"inline-note",children:"El reloj del SLA ya está corriendo desde el envío. La activación inicia el tramo de reclutamiento."})]})]})}export{U as default};
|