PageSourceSearch

https://carregamento3bs.lovable.app/assets/ParadasProducaoPage-iyxh8mmi.js

js carregamento3bs.lovable.app collected 2026-10-03 05:37:19 UTC 8,851 bytes, 1 lines download raw bytes

1import{r as t,j as a,L as X}from"./react-vendor-BorBU4Bs.js";import{F as W}from"./FabricaStatusBanner-B1XM1caO.js";import{a as T}from"./query-vendor-dlntIC_S.js";import{a as Y,s as l,K as Z,an as aa,ao as ea,H as sa,n as u,bt as I,b8 as ra,M as ta,ba as ia,m as w,B as d,D as oa,i as na,j as da,k as ca,F as la,L as b,S as ma,d as ua,f as xa,g as ga,h as ha,G as va,I as U,bv as fa,bx as ja,J as pa,at as n,aX as _,dT as ba}from"./index-DkhxOMdR.js";import{P as Na}from"./PageHeader-BP8oDBUm.js";import"./radix-vendor-CazrR58L.js";import"./charts-vendor-BxJanGhU.js";import"./supabase-vendor-BxTHC7hl.js";import"./xlsx-vendor-DOnNs5_d.js";import"./qr-vendor-Ca1-Dxvv.js";function Ca(){const{user:i}=Y(),[o,x]=t.useState(null),[g,h]=t.useState(""),[S,N]=t.useState(""),[M,D]=t.useState(!1),[R,C]=t.useState(!1),[F,P]=t.useState(""),[E,k]=t.useState(""),[v,f]=t.useState(null),[z,A]=t.useState(0),[y,B]=t.useState(null),[H,q]=t.useState(!1);t.useEffect(()=>{!o||!i||(f(null),A(e=>e+1),l.from("profiles").select("assinatura_url").eq("id",i.id).maybeSingle().then(({data:e})=>B((e==null?void 0:e.assinatura_url)||null)))},[o,i]);const K=async()=>{if(!y){n.error("Você não tem assinatura cadastrada no perfil");return}q(!0);try{const{data:e,error:s}=await l.storage.from("assinaturas-usuarios").download(y);if(s)throw s;const r=await new Promise((m,Q)=>{const p=new FileReader;p.onload=()=>m(p.result),p.onerror=Q,p.readAsDataURL(e)});f(r),A(m=>m+1)}catch(e){n.error("Erro ao carregar assinatura: "+e.message)}finally{q(!1)}},$=async()=>{const e=F.trim().toUpperCase(),s=E.trim();if(!e||!s){n.error("Informe código e descrição");return}const{data:r,error:m}=await l.from("paradas_codigos").insert({codigo:e,descricao:s,ativo:!0,created_by:i==null?void 0:i.id}).select("id, codigo, descricao").single();if(m){n.error("Erro ao cadastrar: "+m.message);return}n.success("Motivo cadastrado"),N(r.id),h(`${r.codigo} — ${r.descricao}`),P(""),k(""),C(!1),await V()},{data:L=[],refetch:V}=T({queryKey:["paradas-codigos-ativos"],queryFn:async()=>{const{data:e,error:s}=await l.from("paradas_codigos").select("id, codigo, descricao").eq("ativo",!0).order("ordem",{ascending:!0});return s?[]:e||[]},staleTime:5*6e4}),{data:c=[],refetch:O,isLoading:G}=T({queryKey:["paradas-fabrica-card"],queryFn:async()=>{const{data:e,error:s}=await l.from("fabrica_paradas_log").select("id, inicio, fim, duracao_min, motivo, motivo_registrado_por_nome, status, classificacao").neq("classificacao","fim_producao").order("inicio",{ascending:!1}).limit(20);if(s)throw s;return e||[]},refetchInterval:6e4}),j=t.useMemo(()=>{const e=c.filter(r=>!r.motivo).length,s=c.filter(r=>r.status==="aberta").length;return{semMotivo:e,abertas:s,total:c.length}},[c]),J=async()=>{if(!(!o||!g.trim())){if(!v){n.error("Assine digitalmente para confirmar");return}D(!0);try{const{data:e}=await l.from("profiles").select("full_name").eq("id",i.id).maybeSingle(),{error:s}=await l.from("fabrica_paradas_log").update({motivo:g.trim(),motivo_registrado_por:i.id,motivo_registrado_por_nome:(e==null?void 0:e.full_name)||i.email,motivo_registrado_at:new Date().toISOString(),codigo_parada_id:S||null,motivo_assinatura_url:v}).eq("id",o.id);if(s)throw s;n.success("Motivo registrado"),x(null),N(""),f(null),O()}catch(e){n.error("Erro: "+e.message)}finally{D(!1)}}};return a.jsxs(Z,{className:"mb-6",children:[a.jsx(aa,{className:"pb-3",children:a.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[a.jsxs(ea,{className:"flex items-center gap-2 text-lg",children:[a.jsx(sa,{className:"h-5 w-5 text-muted-foreground"}),"Paradas da Fábrica"]}),a.jsxs("div",{className:"flex flex-wrap gap-2 text-xs",children:[j.abertas>0&&a.jsxs(u,{variant:"destructive",className:"gap-1",children:[a.jsx(I,{className:"h-3 w-3"})," ",j.abertas," em andamento"]}),j.semMotivo>0&&a.jsxs(u,{variant:"outline",className:"gap-1 border-amber-500 text-amber-600",children:[a.jsx(ra,{className:"h-3 w-3"})," ",j.semMotivo," sem motivo"]}),a.jsxs(u,{variant:"secondary",children:["Últimas ",c.length]})]})]})}),a.jsx(ta,{className:"pt-0",children:G?a.jsx("div",{className:"text-center text-sm text-muted-foreground py-6",children:"Carregando..."}):c.length===0?a.jsx("div",{className:"text-center text-sm text-muted-foreground py-6",children:"Nenhuma parada registrada."}):a.jsx("div",{className:"space-y-2 max-h-96 overflow-auto",children:c.map(e=>{const s=!e.motivo,r=e.status==="aberta";return a.jsxs("div",{className:`rounded-md border p-3 flex flex-wrap items-start justify-between gap-3 ${r?"border-destructive/50 bg-destructive/5":s?"border-amber-500/50 bg-amber-500/5":"bg-muted/30"}`,children:[a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[r?a.jsxs(u,{variant:"destructive",className:"gap-1",children:[a.jsx(I,{className:"h-3 w-3"})," Em andamento"]}):a.jsxs(u,{variant:"secondary",className:"gap-1",children:[a.jsx(ia,{className:"h-3 w-3"})," Fechada"]}),a.jsxs("span",{className:"text-sm font-medium",children:[w(new Date(e.inicio),"dd/MM HH:mm",{locale:_}),e.fim&&a.jsxs(a.Fragment,{children:[" → ",w(new Date(e.fim),"HH:mm",{locale:_})]})]}),e.duracao_min!=null&&a.jsxs("span",{className:"text-xs font-mono text-muted-foreground",children:["(",e.duracao_min," min)"]})]}),a.jsx("div",{className:"mt-1 text-sm",children:e.motivo?a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"text-muted-foreground",children:"Motivo: "}),a.jsx("span",{className:"font-medium",children:e.motivo}),e.motivo_registrado_por_nome&&a.jsxs("span",{className:"text-xs text-muted-foreground ml-2",children:["— ",e.motivo_registrado_por_nome]})]}):a.jsx("span",{className:"text-amber-600 italic font-medium",children:"⚠️ Aguardando motivo"})})]}),a.jsx(d,{size:"sm",variant:s?"default":"outline",onClick:()=>{x(e),h(e.motivo||"")},children:s?"Registrar motivo":"Editar"})]},e.id)})})}),a.jsx(oa,{open:!!o,onOpenChange:e=>!e&&x(null),children:a.jsxs(na,{className:"max-w-lg",children:[a.jsxs(da,{children:[a.jsx(ca,{children:"Motivo da parada"}),a.jsx(la,{children:o&&a.jsxs(a.Fragment,{children:["Parada de"," ",a.jsx("strong",{children:w(new Date(o.inicio),"dd/MM/yyyy HH:mm",{locale:_})}),o.duracao_min!=null&&a.jsxs(a.Fragment,{children:[" — duração: ",o.duracao_min," min"]})]})})]}),a.jsxs("div",{className:"space-y-3",children:[R?a.jsxs("div",{className:"space-y-2 rounded-md border p-3 bg-muted/30",children:[a.jsx(b,{className:"font-semibold",children:"Cadastrar novo motivo"}),a.jsx(U,{placeholder:"Código (ex: MNT01)",value:F,onChange:e=>P(e.target.value.replace(/\s/g,"").toUpperCase().slice(0,20)),maxLength:20}),a.jsx(U,{placeholder:"Descrição (ex: Manutenção corretiva)",value:E,onChange:e=>k(e.target.value.slice(0,120)),maxLength:120}),a.jsxs("div",{className:"flex gap-2",children:[a.jsx(d,{type:"button",size:"sm",onClick:$,children:"Salvar motivo"}),a.jsx(d,{type:"button",size:"sm",variant:"ghost",onClick:()=>C(!1),children:"Cancelar"})]})]}):a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"space-y-2",children:[a.jsx(b,{children:"Motivo cadastrado"}),a.jsxs(ma,{value:S,onValueChange:e=>{N(e);const s=L.find(r=>r.id===e);s&&h(`${s.codigo} — ${s.descricao}`)},children:[a.jsx(ua,{children:a.jsx(xa,{placeholder:"Selecione um motivo..."})}),a.jsx(ga,{children:L.map(e=>a.jsxs(ha,{value:e.id,children:[e.codigo," — ",e.descricao]},e.id))})]}),a.jsx(d,{type:"button",variant:"link",size:"sm",className:"h-auto p-0",onClick:()=>C(!0),children:"+ Cadastrar novo motivo"})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(b,{children:"Detalhes / observação *"}),a.jsx(va,{value:g,onChange:e=>h(e.target.value),rows:3,placeholder:"Ex: Manutenção corretiva, Falta de matéria-prima..."})]})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("div",{className:"flex items-center justify-between",children:[a.jsx(b,{children:"Assinatura digital *"}),y&&a.jsxs(d,{type:"button",variant:"secondary",size:"sm",onClick:K,disabled:H,children:[a.jsx(fa,{className:"h-3.5 w-3.5 mr-1"}),H?"Carregando...":"Usar minha assinatura cadastrada"]})]}
1),a.jsx(ja,{label:"",value:v,onChange:f,height:120},z)]})]}),a.jsxs(pa,{children:[a.jsx(d,{variant:"outline",onClick:()=>x(null),children:"Cancelar"}),a.jsx(d,{onClick:J,disabled:M||!g.trim()||!v,children:M?"Salvando...":"Salvar"})]})]})})]})}function Aa(){return a.jsxs("div",{className:"animate-fade-in",children:[a.jsxs("div",{className:"flex items-start justify-between gap-4 flex-wrap",children:[a.jsx(Na,{title:"Paradas de Produção",description:"Acompanhe e registre os motivos das paradas da fábrica"}),a.jsx(d,{asChild:!0,variant:"outline",className:"gap-2",children:a.jsxs(X,{to:"/relatorio-producao",children:[a.jsx(ba,{className:"h-4 w-4"}),"Relatório de Produção"]})})]}),a.jsx(W,{}),a.jsx(Ca,{})]})}export{Aa 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.