1import{r as w,d as F,j as a}from"./vendor-query-CeYLmLzt.js";import{ag as Ae,au as Te,ah as Ee,at as Pe,ai as ke,aj as A,aQ as K,b0 as Oe,df as qe,_ as X,$ as ee,al as Ie,an as ze,ao as Fe,ap as Re,aq as Me,ar as T,E as Be,aB as ae,a6 as Le,as as Ue,a9 as se,N as He,s as r,a as E}from"./index-BBNmkLNV.js";import{S as Ve}from"./scrollable-table-CUjRQRhy.js";import{u as Ge}from"./useSorting-DmGCKVFJ.js";import{u as Ke}from"./TablePagination-B6J9vU4d.js";import{S as Xe}from"./SearchInput-B-fPRO00.js";import{S as Y}from"./searchable-select-CkptX7Lo.js";import{u as Ye}from"./useUserPermittedFilters-BPV9NhH-.js";import{A as Je,a as Qe,b as We,c as Ze,d as ea,e as aa,g as sa,f as oa}from"./alert-dialog-DQYNK3Jp.js";import{f as oe}from"./formatInscricao-DgdGj0f0.js";import{a as ia}from"./vendor-react-BPOX-wWs.js";import{a as h}from"./table-BjxXoR4I.js";import{d as R,c as P}from"./compact-table-BUHtVJlz.js";import"./vendor-supabase-Cc8l7PMd.js";import"./vendor-motion-BtWo1fWB.js";import"./useScrollShadow-C0qIt916.js";import"./empty-state-Bl3TbUtb.js";const ie={O:{label:"Ocorrência",color:"bg-blue-600 text-white"},A:{label:"Advertência",color:"bg-purple-600 text-white"},S:{label:"Suspensão",color:"bg-red-600 text-white"},C:{label:"Acidente de Trabalho",color:"bg-green-600 text-white"},D:{label:"Autorização de Desconto",color:"bg-black text-white"}},C=m=>{if(!m)return"-";const[o,p,N]=m.split("-");return`${N}/${p}/${o}`},ra=m=>{if(!m)return"-";const o=new Date(m);if(isNaN(o.getTime()))return"-";const p=String(o.getDate()).padStart(2,"0"),N=String(o.getMonth()+1).padStart(2,"0"),l=o.getFullYear(),g=String(o.getHours()).padStart(2,"0"),j=String(o.getMinutes()).padStart(2,"0");return`${p}/${N}/${l} - ${g}:${j}`},Da=()=>{Ae();const m=ia(),o=Te(),[p,N]=w.useState(""),[l,g]=w.useState("all"),[j,J]=w.useState("all"),[S,Q]=w.useState("all"),[k,M]=w.useState(null),[B,W]=w.useState(""),{canEdit:re,canDelete:te,canCreate:ne,isAdminOrNukt:le}=Ee(),{profile:L}=Pe(),de=ne("/ocorrencias"),U=re("/ocorrencias"),H=te("/ocorrencias"),{data:c,isLoading:ce,refetch:pe}=F({queryKey:["empregados_ocorrencias",o],queryFn:async()=>{if(!o)return[];const{data:e,error:s}=await r.from("empregados_ocorrencias").select("*, empregado:empregados!empregados_ocorrencias_empregado_id_fkey(nome, codigo, admissao, servico_id, cargo_id, cargo:empresas_cargos(nome), servico:empresas_servicos(nome)), usuario:usuarios(full_name)").eq("empresa_id",o).order("data_lancamento",{ascending:!1});if(s)throw s;return e||[]},enabled:!!o}),{data:Z}=F({queryKey:["empregados_ocorrencias_anexos_counts",o],queryFn:async()=>{if(!o)return new Map;const{data:e,error:s}=await r.from("empregados_ocorrencias_anexos").select("ocorrencia_id").in("ocorrencia_id",(c||[]).map(t=>t.id));if(s)throw s;const i=new Map;return(e||[]).forEach(t=>{i.set(t.ocorrencia_id,(i.get(t.ocorrencia_id)||0)+1)}),i}
1,enabled:!!o&&!!c&&c.length>0}),{data:me}=F({queryKey:["empresas_servicos",o],queryFn:async()=>{if(!o)return[];const{data:e,error:s}=await r.from("empresas_servicos").select("id, nome").eq("empresa_id",o).eq("ativo",!0).order("nome");if(s)throw s;return e||[]},enabled:!!o}),{data:ge}=F({queryKey:["empresas_cargos",o],queryFn:async()=>{if(!o)return[];const{data:e,error:s}=await r.from("empresas_cargos").select("id, nome").eq("empresa_id",o).eq("ativo",!0).order("nome");if(s)throw s;return e||[]},enabled:!!o}),{filteredServicos:xe,filteredCargos:ve,permittedServicoIds:V,permittedCargoIds:G}=Ye(o,me,ge),O=w.useMemo(()=>{let e=c||[];if(V&&(e=e.filter(s=>s.empregado?.servico_id&&V.includes(s.empregado.servico_id))),G&&(e=e.filter(s=>s.empregado?.cargo_id&&G.includes(s.empregado.cargo_id))),l!=="all"&&(e=e.filter(s=>s.tipo===l)),j!=="all"&&(e=e.filter(s=>s.empregado?.servico_id===j)),S!=="all"&&(e=e.filter(s=>s.empregado?.cargo_id===S)),p){const s=p.toLowerCase();e=e.filter(i=>i.empregado?.nome?.toLowerCase().includes(s)||i.empregado?.codigo?.toLowerCase().includes(s)||i.observacoes?.toLowerCase().includes(s))}return e},[c,l,j,S,p,V,G]),ue=c?.length||0,he=c?.filter(e=>e.tipo==="O").length||0,fe=c?.filter(e=>e.tipo==="A").length||0,be=c?.filter(e=>e.tipo==="S").length||0,we=c?.filter(e=>e.tipo==="C").length||0,Ce=w.useMemo(()=>O.map(e=>({...e,empregado_nome:e.empregado?.nome||"",empregado_admissao:e.empregado?.admissao||"",empregado_servico:e.empregado?.servico?.nome||"",empregado_cargo:e.empregado?.cargo?.nome||""})),[O]),x=Ge(Ce),f=Ke(x.sortedItems,{itemsPerPage:100}),je=async()=>{if(k)try{const{data:e}=await r.from("empregados_ocorrencias_anexos").select("file_path").eq("ocorrencia_id",k);e&&e.length>0&&await r.storage.from("empregados-ocorrencias").remove(e.map(i=>i.file_path));const{error:s}=await r.from("empregados_ocorrencias").delete().eq("id",k);if(s)throw s;pe()}catch(e){E.error("Erro ao excluir: "+e.message)}finally{M(null)}},De=async(e,s="A")=>{const i=s==="S",t=s==="O",q=i?"Suspensão Disciplinar":t?"Registro de Ocorrência":"Advertência Disciplinar";try{const{data:v}=await r.from("empregados").select("nome, codigo, cpf, admissao").eq("id",e.empregado_id).single(),{data:I}=await r.from("empresas").select("inscricao, nome").eq("id",e.empresa_id).single();let y="-",z="-";if(e.encarregado_id){const{data:d}=await r.from("empregados").select("nome, cargo_id, empresas_cargos(nome)").eq("id",e.encarregado_id).single();if(d){const b=d.empresas_cargos?.nome;y=d.nome||"-",z=b||"-"}}const{data:u}=await r.from("empregados_ocorrencias_artigos").select("artigo_id").eq("ocorrencia_id",e.id);let n="-";if(u&&u.length>0){const d=u.map(_=>_.artigo_id),{data:b}=await r.from("gerais_clt_482").select("alinea, nome, descricao").in("id",d).order("alinea");b&&b.length>0&&(n=b.map(_=>`<strong>${_.alinea})</strong> ${_.nome}${_.descricao?` - ${_.descricao}`:""}`).join("<br>"))}const D=d=>{if(!d)return"-";const b=d.replace(/\D/g,"");return b.length!==11?d:b.replace(/(\d{3})(\d{3})(\d{3})(\d{2})/,"$1.$2.$3-$4")},Se=d=>d&&oe(void 0,d)||"-",ye=e.observacoes||"-",$e=` 2 <!DOCTYPE html> 3 <html> 4 <head> 5 <meta charset="UTF-8"> 6 <title>${q} - ${v?.nome||""}</title> 7 <style> 8 * { margin: 0; padding: 0; box-sizing: border-box; } 9 body { font-family: 'Google Sans', 'Google Sans Text', Arial, sans-serif; font-size: 12px; padding: 30px 40px; color: #333; } 10 .header { text-align: center; margin-bottom: 25px; border-bottom: 2px solid #333; padding-bottom: 12px; } 11 .header h1 { font-size: 18px; margin-bottom: 4px; letter-spacing: 1px; } 12 .section { margin-bottom: 18px; } 13 .section-title { background: #f0f0f0; padding: 5px 10px; font-weight: bold; margin-bottom: 8px; border-left: 3px solid #333; font-size: 12px; } 14 .row { display: flex; margin-bottom: 4px; } 15 .col { flex: 1; padding-right: 10px; } 16 .label { font-weight: bold; color: #555; } 17 .desc-box { padding: 10px; background: #fafafa; border: 1px solid #ddd; margin-top: 5px; min-height: 60px; white-space: pre-wrap; } 18 .warning-text { margin-top: 20px; padding: 12px; background: #fff8e1; border: 1px solid #ffe082; font-size: 11px; line-height: 1.6; } 19 .note-text { margin-top: 15px; padding: 12px; background: #e3f2fd; border: 1px solid #90caf9; font-size: 11px; line-height: 1.6; } 20 .signatures { margin-top: 40px; } 21 .sig-row { display: flex; gap: 40px; margin-bottom: 35px; } 22 .sig-block { flex: 1; text-align: center; } 23 .sig-line { border-top: 1px solid #333; margin-top: 30px; padding-top: 5px; font-size: 11px; } 24 .sig-cpf { font-size: 10px; color: #666; margin-top: 2px; } 25 .obs-box { margin-top: 20px; } 26 .obs-field { border: 1px solid #ccc; min-height: 80px; padding: 8px; margin-top: 5px; } 27 .footer { margin-top: 30px; text-align: center; font-size: 9px; color: #000; border-top: 1px solid #ddd; padding-top: 8px; } 28 @media print { body { padding: 15px 25px; } } 29 </style> 30 </head> 31 <body> 32 <div class="header"> 33 <h1>${q}</h1> 34 </div> 35 36 <div class="section"> 37 <div class="section-title">DADOS DA EMPRESA</div> 38 <div class="row"> 39 <div class="col"><span class="label">
39Razão Social:</span> ${I?.nome||"-"}</div> 40 <div class="col"><span class="label">CNPJ/CPF:</span> ${Se(I?.inscricao||null)}</div> 41 </div> 42 </div> 43 44 <div class="section"> 45 <div class="section-title">DADOS DO EMPREGADO</div> 46 <div class="row"> 47 <div class="col"><span class="label">Nome:</span> ${v?.nome||"-"}</div> 48 <div class="col"><span class="label">CPF:</span> ${D(v?.cpf||null)}</div> 49 </div> 50 <div class="row"> 51 <div class="col"><span class="label">MatrÃcula:</span> ${v?.codigo||"-"}</div> 52 <div class="col"><span class="label">Data de Admissão:</span> ${C(v?.admissao||null)}</div> 53 </div> 54 </div> 55 56 <div class="section"> 57 <div class="section-title">DADOS DA OCORRÃNCIA</div> 58 <div class="row"> 59 <div class="col"><span class="label">Data:</span> ${C(e.data_lancamento)}</div> 60 ${t?"":`<div class="col"><span class="label">Reincidência:</span> ${e.reincidencia==="S"?"Sim":"Não"}</div>`} 61 </div> 62 ${i?` 63 <div class="row"> 64 <div class="col"><span class="label">Data InÃcio:</span> ${C(e.data_inicio)}</div> 65 <div class="col"><span class="label">Dias:</span> ${e.dias||"-"}</div> 66 <div class="col"><span class="label">Data Fim:</span> ${C(e.data_fim)}</div> 67 </div> 68 `:""} 69 ${t?"":` 70 ${e.encarregado_id?` 71 <div class="row"> 72 <div class="col"><span class="label">Encarregado:</span> ${y}</div> 73 <div class="col"><span class="label">Função:</span> ${z}</div> 74 </div> 75 `:""} 76 77 <div style="margin-top: 8px;"> 78 <span class="label">Artigos CLT 482:</span> 79 <div style="margin-top: 4px; padding-left: 10px; line-height: 1.6;">${n}</div> 80 </div> 81 `} 82 <div style="margin-top: 10px;"> 83 <span class="label">Descrição da Ocorrência:</span> 84 <div class="desc-box">${ye}</div> 85 </div> 86 </div> 87 88 ${t?` 89 <div class="warning-text"> 90 <strong>Ressaltamos</strong> que este documento tem caráter informativo e de registro do fato ocorrido, ficando arquivado no prontuário do empregado. 91 </div> 92 `:` 93 <div class="warning-text"> 94 <strong>Ressaltamos</strong> que a reiteração de tal comportamento poderá ensejar sanções mais graves, como suspensão disciplinar ou, em última instância, a rescisão do contrato de trabalho por justa causa. 95 </div> 96 `} 97 98 <div class="note-text"> 99 <strong>Nota ao Empregado:</strong> A assinatura deste documento confirma apenas o recebimento da comunicação. Caso discorde dos fatos aqui narrados, você tem o direito de não assinar ou, preferencialmente, de manifestar sua discordância por escrito no campo "Observações" abaixo. 100 </div> 101 102 <div class="signatures"> 103 <div class="sig-row"> 104 <div class="sig-block"> 105 <div class="sig-line">Encarregado</div> 106 </div> 107 <div class="sig-block"> 108 <div class="sig-line">Empregado</div> 109 </div> 110 </div> 111 <div class="sig-row"> 112 <div class="sig-block"> 113 <div class="sig-line">Testemunha 1</div> 114 <div class="sig-cpf">CPF:</div> 115 </div> 116 <div class="sig-block"> 117 <div class="sig-line">Testemunha 2</div> 118 <div class="sig-cpf">CPF:</div> 119 </div> 120 </div> 121 </div> 122 123 <div class="obs-box"> 124 <span class="label">Observações do Empregado (Opcional):</span> 125 <div class="obs-field"></div> 126 </div> 127 128 <div class="footer"> 129 <p>Documento gerado em ${new Date().toLocaleDateString("pt-BR")} - ${new Date().toLocaleTimeString("pt-BR")} | Nukt Serviços Digitais - ${L?.email||"-"}</p> 130 </div> 131 </body> 132 </html> 133 `,$=window.open("","_blank");$?($.document.write($e),$.document.close(),$.focus(),setTimeout(()=>$.print(),500)):E.error("Não foi possÃvel abrir a janela de impressão. Verifique se pop-ups estão bloqueados.")}catch(v){console.error("Erro ao gerar impressão:",v),E.error(`Erro ao gerar impressão da ${i?"suspensão":"advertência"}`)}},Ne=async e=>{try{const{data:s}=await r.from("empregados").select("nome, codigo, cpf, admissao").eq("id",e.empregado_id).single(),{data:i}=await r.from("empresas").select("inscricao, nome").eq("id",e.empresa_id).single();let t="-";if(e.encarregado_id){const{data:n}=await r.from("empregados").select("nome, cargo_id, empresas_cargos(nome)").eq("id",e.encarregado_id).single();if(n){const D=n.empresas_cargos?.nome;t=D?`${n.nome} - Cargo: ${D}`:n.nome}}const q=n=>{if(!n)return"-";const D=n.replace(/\D/g,"");return D.length!==11?n:D.replace(/(\d{3})(\d{3})(\d{3})(\d{2})/,"$1.$2.$3-$4")},v=n=>n&&oe(void 0,n)||"-",I=e.observacoes||"-",y="Autorização de Desconto",z=` 134 <!DOCTYPE html> 135 <html> 136 <head> 137 <meta charset="UTF-8"> 138 <title>${y} - ${s?.nome||""}</title> 139 <style> 140 * { margin: 0; padding: 0; box-sizing: border-box; } 141 body { font-family: 'Google Sans', 'Google Sans Text', Arial, sans-serif; font-size: 12px; padding: 30px 40px; color: #333; } 142 .header { text-align: center; margin-bottom: 25px; border-bottom: 2px solid #333; padding-bottom: 12px; } 143 .header h1 { font-size: 18px; margin-bottom: 4px; letter-spacing: 1px; } 144 .section { margin-bottom: 18px; } 145 .section-title { background: #f0f0f0; padding: 5px 10px; font-weight: bold; margin-bottom: 8px; border-left: 3px solid #333; font-size: 12px; } 146 .row { display: flex; margin-bottom: 4px; } 147 .col { flex: 1; padding-right: 10px; } 148 .label { font-weight: bold; color: #555; } 149 .desc-box { padding: 10px; background: #fafafa; border: 1px solid #ddd; margin-top: 5px; min-height: 60px; white-space: pre-wrap; } 150 .warning-text { margin-top: 20px; padding: 12px; background: #fff8e1; border: 1px solid #ffe082; font-size: 11px; line-height: 1.6; } 151 .note-text { margin-top: 15px; padding: 12px; background: #e3f2fd; border: 1px solid #90caf9; font-size: 11px; line-height: 1.6; } 152 .signatures { margin-top: 40px; } 153 .sig-row { display: flex; gap: 40px; margin-bottom: 35px; } 154 .sig-block { flex: 1; text-align: center; } 155 .sig-line { border-top: 1px solid #333; margin-top: 30px; padding-top: 5px; font-size: 11px; } 156 .sig-cpf { font-size: 10px; color: #666; margin-top: 2px; } 157 .obs-box { margin-top: 20px; } 158 .obs-field { border: 1px solid #ccc; min-height: 80px; padding: 8px; margin-top: 5px; } 159 .footer { margin-top: 30px; text-align: center; font-size: 9px; color: #000; border-top: 1px solid #ddd; padding-top: 8px; } 160 @media print { body { padding: 15px 25px; } } 161 </style> 162 </head> 163 <body> 164 <div class="header"> 165 <h1>${y}</h1> 166 </div> 167 168 <div class="section"> 169 <div class="section-title">DADOS DA EMPRESA</div> 170 <div class="row"> 171 <div class="col"><span class="label">
171Razão Social:</span> ${i?.nome||"-"}</div> 172 <div class="col"><span class="label">CNPJ/CPF:</span> ${v(i?.inscricao||null)}</div> 173 </div> 174 </div> 175 176 <div class="section"> 177 <div class="section-title">DADOS DO EMPREGADO</div> 178 <div class="row"> 179 <div class="col"><span class="label">Nome:</span> ${s?.nome||"-"}</div> 180 <div class="col"><span class="label">CPF:</span> ${q(s?.cpf||null)}</div> 181 </div> 182 <div class="row"> 183 <div class="col"><span class="label">MatrÃcula:</span> ${s?.codigo||"-"}</div> 184 <div class="col"><span class="label">Data de Admissão:</span> ${C(s?.admissao||null)}</div> 185 </div> 186 </div> 187 188 <div class="section"> 189 <div class="section-title">DADOS DA AUTORIZAÃÃO</div> 190 <div class="row"> 191 <div class="col"><span class="label">Data:</span> ${C(e.data_lancamento)}</div> 192 </div> 193 <div class="row"> 194 <div class="col"><span class="label">Encarregado:</span> ${t}</div> 195 </div> 196 <div style="margin-top: 10px;"> 197 <span class="label">Descrição / Motivo do Desconto:</span> 198 <div class="desc-box">${I}</div> 199 </div> 200 </div> 201 202 <div class="warning-text"> 203 <strong>Declaração e Autorização:</strong> Pelo presente instrumento, eu, empregado(a) acima qualificado(a), <strong>autorizo expressamente</strong> a empresa a proceder ao desconto em minha remuneração (salário, férias, 13º salário ou verbas rescisórias) do valor correspondente ao motivo descrito acima, nos termos do <strong>art. 462, § 1º, da CLT</strong> e conforme previsão expressa no <strong>Regulamento Interno da Empresa</strong>, cujas disposições declaro conhecer e aceitar integralmente. 204 </div> 205 206 <div class="note-text"> 207 <strong>Nota ao Empregado:</strong> Declaro que fui devidamente informado(a) do motivo e do valor a ser descontado, bem como da previsão contida no Regulamento Interno da Empresa que autoriza tal desconto. Esta autorização é firmada de forma livre e espontânea. 208 </div> 209 210 <div class="signatures"> 211 <div class="sig-row"> 212 <div class="sig-block"> 213 <div class="sig-line">Encarregado</div> 214 </div> 215 <div class="sig-block"> 216 <div class="sig-line">Empregado</div> 217 </div> 218 </div> 219 <div class="sig-row"> 220 <div class="sig-block"> 221 <div class="sig-line">Testemunha 1</div> 222 <div class="sig-cpf">CPF:</div> 223 </div> 224 <div class="sig-block"> 225 <div class="sig-line">Testemunha 2</div> 226 <div class="sig-cpf">CPF:</div> 227 </div> 228 </div> 229 </div> 230 231 <div class="footer"> 232 <p>Documento gerado em ${new Date().toLocaleDateString("pt-BR")} - ${new Date().toLocaleTimeString("pt-BR")} | Nukt Serviços Digitais - ${L?.email||"-"}</p> 233 </div> 234 </body> 235 </html> 236 `,u=window.open("","_blank");u?(u.document.write(z),u.document.close(),u.focus(),setTimeout(()=>u.print(),500)):E.error("Não foi possÃvel abrir a janela de impressão. Verifique se pop-ups estão bloqueados.")}catch(s){console.error("Erro ao gerar impressão:",s),E.error("Erro ao gerar impressão da autorização de desconto")}},_e=l!=="all"||j!=="all"||S!=="all"||p;return a.jsxs(ke,{title:"Ocorrências",children:[a.jsxs("div",{className:"flex flex-col h-[calc(100vh-5rem)] md:h-[calc(100vh-4rem)] overflow-hidden pt-1",children:[a.jsxs("div",{className:"flex-shrink-0 space-y-4 pb-4 px-0.5",children:[o&&a.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-5 gap-4",children:[a.jsx(A,{title:"Total",value:ue,icon:K,iconColor:"text-blue-500",iconBgColor:"bg-blue-500/10",valueColor:"text-blue-600",selected:l==="all",selectionColor:"ring-blue-500",borderColor:"border-blue-500/50",variant:"compact",onClick:()=>g("all")}),a.jsx(A,{title:"Ocorrências",value:he,icon:K,iconColor:"text-blue-500",iconBgColor:"bg-blue-500/10",valueColor:"text-blue-600",selected:l==="O",selectionColor:"ring-blue-500",borderColor:"border-blue-500/50",variant:"compact",onClick:()=>g("O")}),a.jsx(A,{title:"Advertências",value:fe,icon:Oe,iconColor:"text-purple-500",iconBgColor:"bg-purple-500/10",valueColor:"text-purple-600",selected:l==="A",selectionColor:"ring-purple-500",borderColor:"border-purple-500/50",variant:"compact",onClick:()=>g("A")}),a.jsx(A,{title:"Suspensões",value:be,icon:qe,iconColor:"text-red-500",iconBgColor:"bg-red-500/10",valueColor:"text-red-600",selected:l==="S",selectionColor:"ring-red-500",borderColor:"border-red-500/50",variant:"compact",onClick:()=>g("S")}),a.jsx(A,{title:"Acidentes de Trabalho",value:we,icon:K,iconColor:"text-green-500",iconBgColor:"bg-green-500/10",valueColor:"text-green-600",selected:l==="C",selectionColor:"ring-green-500",borderColor:"border-green-500/50",variant:"compact",onClick:()=>g("C")})]}),o&&a.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4",children:[a.jsxs("div",{className:"flex flex-wrap items-center gap-2 flex-1",children:[a.jsx(Xe,{value:p,onChange:N,placeholder:"Buscar por Nome",className:"flex-1 max-w-sm",hideClearButton:!0,hideSearchIcon:!0}),a.jsx(Y,{value:j,onValueChange:e=>J(e||"all"),options:[{value:"all",label:"Serviços"},...xe.map(e=>({value:e.id,label:e.nome}))],placeholder:"Serviço",searchPlaceholder:"Buscar Serviço",emptyMessage:"Nenhum serviço encontrado.",className:"w-[320px]"}),a.jsx(Y,{value:S,onValueChange:e=>Q(e||"all"),options:[{value:"all",label:"Cargos"},...ve.map(e=>({value:e.id,label:e.nome}))],placeholder:"Cargo",searchPlaceholder:"Buscar Cargo",emptyMessage:"Nenhum cargo encontrado.",className:"w-[320px]"}),a.jsx(Y,{value:l,onValueChange:e=>g(e||"all"),options:[{value:"all",label:"Tipos"},{value:"O",label:"Ocorrência"},{value:"A",label:"Advertência"},{value:"S",label:"Suspensão"},{value:"C",label:"Acidente de Trabalho"},{value:"D",label:"Autorização de Desconto"}],placeholder:"Tipo",searchPlaceholder:"Buscar Tipo",emptyMessage:"Nenhum tipo encontrado.",className:"w-[220px]"}),_e&&a.jsx(X,{variant:"destructive",size:"icon",title:"Limpar filtros","aria-label":"Limpar filtros",onClick:()=>{g("all"),J("all"),Q("all"),N("")},children:a.jsx(ee,{className:"h-4 w-4"})})]}),a.jsx("div",{className:"flex items-center gap-2",children:de&&a.jsxs(X,{onClick:()=>m("/ocorrencias/incluir"),className:"bg-black hover:bg-black/90 text-white",children:[a.jsx(Ie,{className:"h-4 w-4 mr-2"}),"Nova Ocorrência"]})})]})]}),o?a.jsx(Ve,{data:O,paginatedItems:f.paginatedItems,isLoading:ce,emptyMessage:"Nenhuma ocorrência encontrada",emptySearchMessage:"Nenhuma ocorrência encontrada para a busca",hasSearch:!!p,getRowKey:e=>e.id,pagination:{currentPage:f.currentPage,totalPages:f.totalPages,totalItems:O.length,startIndex:f.startIndex,endIndex:f.endIndex,hasNextPage:f.hasNextPage,hasPrevPage:f.hasPrevPage,goToPage:f.goToPage,totalUnfilteredItems:c?.length||0},renderHeader:()=>a.jsxs(a.Fragment,{children:[a.jsx(R,{className:"normal-case",sortDirection:x.getSortDirection("empregado_nome"),onSort:()=>x.requestSort("empregado_nome"),children:"Nome"}),a.jsx(R,{className:"normal-case",sortDirection:x.getSortDirection("empregado_servico"),onSort:()=>x.requestSort("empregado_servico"),children:"Serviço"}),a.jsx(R,{className:"normal-case",sortDirection:x.getSortDirection("empregado_cargo"),onSort:()=>x.requestSort("empregado_cargo"),children:"Cargo"}),a.jsx(P,{className:"normal-case text-center w-24",children:"Tipo"}),a.jsx(R,{className:"normal-case text-center w-24",sortDirection:x.getSortDirection("data_lancamento"),onSort:()=>x.requestSort("data_lancamento"),children:"Data"}),a.jsx(P,{className:"normal-case text-center w-20",children:"Anexos"}),a.jsx(P,{className:"normal-case text-left w-44 whitespace-nowrap",children:"Inclusão"}),a.jsx(P,{className:"normal-case",children:"Usuário"}),(U||H)&&a.jsx(P,{className:"normal-case"})]}),renderRow:e=>a.jsxs(a.Fragment,{children:[a.jsx(h,{className:"text-sm py-1.5",children:a.jsxs("div",{className:"leading-tight",children:[a.jsx("div",{children:e.empregado?.nome||"-"}),a.jsxs("div",{className:"text-xs text-muted-foreground mt-0.5",children:[a.jsx("span",{className:"font-bold",children:"Admissão:"})," ",C(e.empregado?.admissao||null)," - ",a.jsx("span",{className:"font-bold",children:"MatrÃcula:"})," ",e.empregado?.codigo||"-"]}
236)]})}),a.jsx(h,{className:"text-sm py-1.5",children:e.empregado?.servico?.nome||"-"}),a.jsx(h,{className:"text-sm py-1.5",children:e.empregado?.cargo?.nome||"-"}),a.jsx(h,{className:"text-center text-sm py-1.5",children:a.jsx("span",{className:`inline-flex items-center px-2 py-0.5 text-xs font-medium rounded whitespace-nowrap ${ie[e.tipo]?.color}`,children:ie[e.tipo]?.label||e.tipo})}),a.jsx(h,{className:"text-center text-sm py-1.5",children:C(e.data_lancamento)}),a.jsx(h,{className:"text-center text-sm py-1.5",children:(Z?.get(e.id)||0)>0&&a.jsx("span",{className:"inline-flex items-center px-2 py-0.5 text-xs font-medium text-white bg-blue-600 rounded",children:Z?.get(e.id)})}),a.jsx(h,{className:"text-left text-sm py-1.5 whitespace-nowrap",children:ra(e.created_at)}),a.jsx(h,{className:"text-sm py-1.5",children:e.usuario?.full_name||"-"}),(U||H)&&(()=>{const s=le||e.usuario_id===L?.id,i=U&&s,t=H&&s;return a.jsx(h,{className:"text-right py-1.5",children:a.jsx("div",{className:"flex justify-end gap-1",children:a.jsxs(ze,{children:[a.jsx(Fe,{asChild:!0,children:a.jsxs(X,{size:"sm",className:"bg-black hover:bg-black/90 text-white hover:text-white focus-visible:ring-0 focus-visible:ring-offset-0 h-6 text-xs",children:[a.jsx(Re,{className:"h-3 w-3 mr-1"}),"Opções"]})}),a.jsxs(Me,{align:"end",className:"bg-popover",children:[a.jsxs(T,{onClick:()=>m(`/ocorrencias/${e.id}?view=true`),children:[a.jsx(Be,{className:"h-4 w-4 mr-2"}),"Ver"]}
236),(e.tipo==="A"||e.tipo==="S"||e.tipo==="O")&&a.jsxs(T,{onClick:()=>De(e,e.tipo),children:[a.jsx(ae,{className:"h-4 w-4 mr-2"}),"Imprimir"]}),e.tipo==="D"&&a.jsxs(T,{onClick:()=>Ne(e),children:[a.jsx(ae,{className:"h-4 w-4 mr-2"}),"Imprimir"]}),i&&a.jsxs(T,{onClick:()=>m(`/ocorrencias/${e.id}`),children:[a.jsx(Le,{className:"h-4 w-4 mr-2"}),"Editar"]}),t&&a.jsxs(a.Fragment,{children:[a.jsx(Ue,{}),a.jsxs(T,{onClick:()=>M(e.id),className:"text-red-600 focus:text-red-600 focus:bg-red-50 dark:focus:bg-red-950/50",children:[a.jsx(se,{className:"h-4 w-4 mr-2"}),"Excluir"]})]})]})]})})})})()]})}):a.jsx("div",{className:"rounded-md border text-center py-12 text-muted-foreground",children:"Selecione uma empresa para visualizar as ocorrências"})]}),a.jsx(Je,{open:!!k,onOpenChange:()=>{M(null),W("")},children:a.jsxs(Qe,{children:[a.jsxs(We,{children:[a.jsx(Ze,{children:"Confirmar Exclusão"}),a.jsx(ea,{asChild:!0,children:a.jsx("div",{children:a.jsx("p",{children:"Esta ação não pode ser desfeita."})})})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("p",{className:"text-sm",children:["Digite ",a.jsx("span",{className:"font-bold text-red-600",children:"EXCLUIR"})," para confirmar:"]}),a.jsx(He,{value:B,onChange:e=>W(e.target.value),placeholder:"EXCLUIR"})]}),a.jsxs(aa,{children:[a.jsxs(sa,{className:"bg-red-600 text-white hover:bg-red-700 hover:text-white flex items-center gap-2",children:[a.jsx(ee,{className:"h-4 w-4"}),"Fechar"]}),a.jsxs(oa,{onClick:je,disabled:B!=="EXCLUIR",className:B==="EXCLUIR"?"bg-black text-white hover:bg-black/90":"bg-gray-500 text-white hover:bg-gray-500",children:[a.jsx(se,{className:"h-4 w-4"}),"Excluir"]})]})]})})]})};export{Da as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.