PageSourceSearch

https://carregamento3bs.lovable.app/assets/ClassificacaoPage-92iVLwe7.js

js carregamento3bs.lovable.app collected 2026-10-03 05:36:38 UTC 49,687 bytes, 41 lines download raw bytes

1import{u as Ma,f as Ea,r as l,j as e}from"./react-vendor-BorBU4Bs.js";import{a as fa}from"./abbreviateClientName-BXRhyGQG.js";import{s as u,a as Da,b as za,bR as Va,bJ as Ua,bK as Ba,B as w,A as ga,C as De,aP as ja,c5 as _a,K as me,M as ue,an as Se,ao as ye,N as te,O as re,Q as F,U as n,V as oe,W as o,P as ba,b5 as Qa,I as p,X as ze,o as Ve,cd as va,r as Ga,cb as Ha,T as Wa,t as Ka,v as Ja,w as Xa,x as Ya,y as Za,z as es,E as as,ci as Ue,bV as ss,L as f,D as Be,i as Qe,j as Ge,k as He,G as ts,dq as rs}from"./index-DkhxOMdR.js";import{u as os}from"./useLabelConfig-B0Or7kgL.js";import{C as We}from"./checkbox-Dl2yzLyD.js";import{A as is}from"./AuditHistoryDialog-DmwCV0IY.js";import{g as ns}from"./nextCode-BgBvFXGM.js";import{a as Na}from"./printAmostraLabel-CopXY1NO.js";import{L as ke}from"./link-2-Wg6M4xyo.js";import{P as Ca}from"./pencil-Cf5Ul2CU.js";import"./radix-vendor-CazrR58L.js";import"./charts-vendor-BxJanGhU.js";import"./query-vendor-dlntIC_S.js";import"./supabase-vendor-BxTHC7hl.js";import"./xlsx-vendor-DOnNs5_d.js";import"./qr-vendor-Ca1-Dxvv.js";import"./labelTemplate-DcdOT5Ix.js";import"./caixaFixa-ClDBhtRs.js";async function Ke(C,k,E){if(!C||!C.id)return{ok:!1,reason:"no_ordem"};if(C.tipo&&C.tipo!=="granel")return{ok:!1,reason:"not_granel"};const{data:j,error:H}=await u.from("amostras_moega").select("id, codigo_amostra, laudo_classificacao_id").eq("ordem_recebimento_id",C.id).maybeSingle();if(H)return{ok:!1,reason:"error",error:H.message};const v={produto:C.produto||"—",lote:C.lote||null,nf_entrada:C.nf||C.nf_remessa||null,fornecedor:C.fabricante||C.cliente||null,placa:C.placa||null,ordem_recebimento_id:C.id,laudo_classificacao_id:k||null};if(j){const K={...v};!k&&j.laudo_classificacao_id&&(K.laudo_classificacao_id=j.laudo_classificacao_id);const{error:xe}=await u.from("amostras_moega").update(K).eq("id",j.id);return xe?{ok:!1,reason:"error",error:xe.message}:{ok:!0,created:!1,codigo:j.codigo_amostra,id:j.id}}const{data:W}=await u.from("amostras_moega").select("codigo_amostra"),g=ns((W||[]).map(K=>({codigo:K.codigo_amostra})),"AM-MO"),q=new Date,T=q.toISOString().slice(0,10),I=new Date(q);I.setMonth(I.getMonth()+6);const $e=I.toISOString().slice(0,10),{data:Le,error:he}=await u.from("amostras_moega").insert({...v,codigo_amostra:g,data_coleta:T,data_validade:$e,status:"armazenada",observacoes:"Cadastro automático via Classificação",created_by:E||null}).select("id").single();return he?{ok:!1,reason:"error",error:he.message}:{ok:!0,created:!0,codigo:g,id:Le.id}}const Je={fornecedor:"",lote:"",data_recebimento:new Date().toISOString().slice(0,10),codigo_produto:"",transportadora:"",quantidade_recebida:null,nota_fiscal:"",hora:"",umidade:null,placa:"",peso_amostra_inicial:null,mei:null,quebrados:null,ardidos:null,mofados:null,fermentados:null,germinados:null,chochos_imaturos:null,gessado:null,total_avariados:null,carunchados:null,pedacos_grao_sadios:null,presenca_odores:!1,presenca_insetos:!1,liberado_descarga:!0,observacoes:"",classificador:""};function ee(C){if(!C)return"";const k=C.split("-");return k.length===3?`${k[2]}/${k[1]}/${k[0]}`:C}function ds({children:C}){const k=l.useRef(null),E=l.useRef(null),j=l.useRef(null),[H,v]=l.useState(0);l.useEffect(()=>{if(!j.current)return;const g=new ResizeObserver(()=>{var q;v(((q=j.current)==null?void 0:q.scrollWidth)||0)});return g.observe(j.current),()=>g.disconnect()},[]);const W=l.useCallback(g=>{const q=k.current,T=E.current;!q||!T||(g==="top"?T.scrollLeft=q.scrollLeft:q.scrollLeft=T.scrollLeft)},[]);return e.jsxs("div",{children:[e.jsx("div",{ref:k,onScroll:()=>W("top"),className:"overflow-x-auto",style:{marginBottom:-1},children:e.jsx("div",{style:{width:H,height:1}})}),e.jsx("div",{ref:E,onScroll:()=>W("bottom"),className:"overflow-x-auto",children:e.jsx("div",{ref:j,children:C})})]})}function ks(){const C=Ma(),[k]=Ea(),E=k.get("tab"),[j,H]=l.useState(E==="laudo"||E==="dados"||E==="amostra"?E:"menu"),{user:v,isMaster:W}=Da(),{toast:g}=za(),[q,T]=l.useState([]),[I,$e]=l.useState([]),[Le,he]=l.useState([]),[K,xe]=l.useState(new Set),[pe,wa]=l.useState(new Map),[ie,Xe]=l.useState(!0),[Sa,ya]=l.useState(new Set),[fe,U]=l.useState(!1),[Ye,ge]=l.useState(!1),[ne,Ze]=l.useState(""),[J,ea]=l.useState(""),[X,aa]=l.useState(""),[qe,ae]=l.useState(!1),[D,Fe]=l.useState(null),[i,je]=l.useState(Je),[se,sa]=l.useState(""),[ta,ka]=l.useState({}),[Ae,ra]=l.useState(null),{config:oa}=Va("laudo"),{config:ia}=os(),[Pe,$a]=l.useState(""),[Re,La]=l.useState(""),[na,_e]=l.useState("");l.useEffect(()=>{v!=null&&v.id&&u.from("profiles").select("full_name").eq("id",v.id).single().then(({data:a})=>{a!=null&&a.full_name&&La(a.full_name)})},[v==null?void 0:v.id]),l.useEffect(()=>{ra(Ua()),Ba().then(a=>{a&&ra(a)})},[]),l.useEffect(()=>{const a=k.get("autoPrintLaudoId");if(!a||ie||!Ae||!oa)return;(async()=>{const{data:t}=await u.from("laudos_classificacao").select("*").eq("id",a).maybeSingle();if(t){xa(t);const d=new URLSearchParams(k);d.delete("autoPrintLaudoId"),C({search:d.toString()},{replace:!0})}})()},[k,ie,Ae,oa,C]);const be=async()=>{Xe(!0);const[a,s,t,d,m,c]=await Promise.all([u.from("ordens_recebimento").select("*").eq("tipo","granel").in("status",["pen
1dente","em_recebimento","em_classificacao","aguardando_balanca"]).order("created_at",{ascending:!1}),u.from("produtos_qualidade").select("nome_materia_prima, requer_classificacao").eq("requer_classificacao",!0),u.from("caminhoes").select("placa, transportadora_id"),u.from("transportadoras").select("id, nome"),u.from("ordens_recebimento").select("id, numero_ordem, cliente, ticket_balanca"),u.from("laudos_classificacao").select("ordem_recebimento_id").not("ordem_recebimento_id","is",null)]),h=await u.from("ordens_recebimento").select("*").eq("tipo","granel").order("created_at",{ascending:!1}).limit(500),N={};if(d.data){const _={};d.data.forEach(x=>{_[x.id]=x.nome}),t.data&&t.data.forEach(x=>{x.placa&&x.transportadora_id&&_[x.transportadora_id]&&(N[x.placa.toUpperCase()]=_[x.transportadora_id])})}if(ka(N),c.data&&ya(new Set(c.data.map(_=>_.ordem_recebimento_id).filter(Boolean))),a.data&&s.data){const _=new Set(s.data.map(S=>{var O;return(O=S.nome_materia_prima)==null?void 0:O.toLowerCase()})),x=a.data.filter(S=>S.produto&&_.has(S.produto.toLowerCase()));$e(x)}if(h.data&&he(h.data),m.data){xe(new Set(m.data.map(x=>x.id)));const _=new Map;m.data.forEach(x=>{_.set(x.id,{numero_ordem:x.numero_ordem,cliente:x.cliente,ticket_balanca:x.ticket_balanca})}),wa(_)}Xe(!1)};l.useEffect(()=>{qe||be()},[qe]);const de=I.filter(a=>!Sa.has(a.id)),Te=q.filter(a=>!a.ordem_recebimento_id||!K.has(a.ordem_recebimento_id)),[ce,Oe]=l.useState(null),[Y,Ie]=l.useState(null),da=async(a,s)=>{const t=a.created_at?new Date(a.created_at).toLocaleTimeString("pt-BR",{hour:"2-digit",minute:"2-digit"}):s.hora,d=a.placa&&ta[a.placa.toUpperCase()]||s.transportadora,m={ordem_recebimento_id:a.id,numero_ordem:a.numero_ordem,fornecedor:s.fornecedor||a.fabricante||a.cliente||null,lote:s.lote||a.lote||null,codigo_produto:s.codigo_produto||a.cod_produto||null,nota_fiscal:s.nota_fiscal||a.nf||a.nf_remessa||null,placa:s.placa||a.placa||null,quantidade_recebida:s.quantidade_recebida??a.peso_nota,hora:s.hora||t,transportadora:d,peso_amostra_inicial:s.peso_amostra_inicial??a.peso_amostra},{error:c}=await u.from("laudos_classificacao").update(m).eq("id",s.id);if(c){g({title:"Erro ao vincular",description:c.message,variant:"destructive"});return}Ne(s)?await u.from("ordens_recebimento").update({status:"fora_do_padrao"}).eq("id",a.id).in("status",["pendente","em_recebimento","em_classificacao","aguardando_balanca","liberado para descarga"]):s.liberado_descarga&&await u.from("ordens_recebimento").update({status:"liberado para descarga"}).eq("id",a.id).in("status",["pendente","em_recebimento","em_classificacao","aguardando_balanca","fora_do_padrao"]),g({title:"Vinculado",description:`Laudo vinculado à OR-${String(a.numero_ordem).padStart(4,"0")}`}),Oe(null),Ie(null),be()},qa=a=>{var d;const s=a.created_at?new Date(a.created_at).toLocaleTimeString("pt-BR",{hour:"2-digit",minute:"2-digit"}):"",t=a.placa&&ta[a.placa.toUpperCase()]||"";Fe(null),_e(a.produto||""),je({...Je,ordem_recebimento_id:a.id,numero_ordem:a.numero_ordem,fornecedor:a.fabricante||a.cliente||"",lote:a.lote||"",data_recebimento:((d=a.created_at)==null?void 0:d.slice(0,10))||new Date().toISOString().slice(0,10),codigo_produto:a.cod_produto||"",nota_fiscal:a.nf||a.nf_remessa||"",placa:a.placa||"",quantidade_recebida:a.peso_nota,hora:s,transportadora:t,peso_amostra_inicial:a.peso_amostra,classificador:Re}),ae(!0)},Fa=()=>{Fe(null),_e(""),je({...Je,classificador:Re}),ae(!0)},ca=async a=>{if(Fe(a.id),je({...a,classificador:Re||a.classificador}),a.ordem_recebimento_id){const{data:s}=await u.from("ordens_recebimento").select("produto").eq("id",a.ordem_recebimento_id).single();_e((s==null?void 0:s.produto)||"")}else _e("");ae(!0)},ve=()=>{const s=[i.ardidos,i.mofados,i.fermentados,i.germinados,i.chochos_imaturos,i.gessado].reduce((t,d)=>(t||0)+(d||0),0);return s?parseFloat(s.toFixed(2)):null},$=parseFloat(((i.peso_amostra_inicial||0)-(i.mei||0)-(i.quebrados||0)).toFixed(2)),Me=parseFloat(($-(ve()||0)).toFixed(2)),z=(a,s)=>a==null||!s?"":(a/s*100).toFixed(2)+"%",A={mei_pct:1.2,quebrados_pct:3.2,umidade:14},V=(a,s,t,d)=>!(d||na||i.codigo_produto||"").toLowerCase().includes("milho")||s==null?{exceeded:!1,limitText:""}:a==="umidade"&&s>A.umidade?{exceeded:!0,limitText:`Limite: ${A.umidade}%`}:a==="mei"&&t>0&&s/t*100>A.mei_pct?{exceeded:!0,limitText:`Limite: ${A.mei_pct}%`}:a==="quebrados"&&t>0&&s/t*100>A.quebrados_pct?{exceeded:!0,limitText:`Limite: ${A.quebrados_pct}%`}:{exceeded:!1,limitText:""},Ne=a=>{if(a.liberado_descarga===!1||a.umidade==null)return!0;const s=parseFloat(((a.peso_amostra_inicial||0)-(a.mei||0)-(a.quebrados||0)).toFixed(2)),t=a.ordem_recebimento_id?I.find(m=>m.id===a.ordem_recebimento_id):null,d=(t==null?void 0:t.produto)||a.codigo_produto||"";return V("umidade",a.umidade,0,d).exceeded||V("mei",a.mei,s,d).exceeded||V("quebrados",a.quebrados,s,d).exceeded},Aa=(na||i.codigo_produto||"").toLowerCase().includes("milho"),Pa=()=>
1{if(!Aa)return{blocked:!1,reasons:[]};const a=[],s=$;if(i.mei!=null&&s>0){const t=i.mei/s*100;t>A.mei_pct&&a.push(`M.E.I (${t.toFixed(2)}%) acima do limite de ${A.mei_pct}%`)}if(i.quebrados!=null&&s>0){const t=i.quebrados/s*100;t>A.quebrados_pct&&a.push(`Quebrados (${t.toFixed(2)}%) acima do limite de ${A.quebrados_pct}%`)}return i.umidade!=null&&i.umidade>A.umidade&&a.push(`Umidade (${i.umidade}%) acima do limite de ${A.umidade}%`),{blocked:a.length>0,reasons:a}},Ra=async()=>{const a=ve(),s=Pa(),t=s.blocked?!1:i.liberado_descarga;s.blocked&&g({title:"Descarga bloqueada - Milho fora dos limites",description:s.reasons.join("; "),variant:"destructive"});const d={...i,liberado_descarga:t,total_avariados:a,pedacos_grao_sadios:Me,created_by:D?i.created_by:v==null?void 0:v.id};let m,c=D;if(D)({error:m}=await u.from("laudos_classificacao").update(d).eq("id",D));else{const{data:h,error:N}=await u.from("laudos_classificacao").insert(d).select("id").single();m=N,h!=null&&h.id&&(c=h.id)}if(m)g({title:"Erro ao salvar",description:m.message,variant:"destructive"});else{if(i.ordem_recebimento_id){t?await u.from("ordens_recebimento").update({status:"liberado para descarga"}).eq("id",i.ordem_recebimento_id).in("status",["pendente","em_recebimento","em_classificacao","aguardando_balanca","fora_do_padrao"]):await u.from("ordens_recebimento").update({status:"fora_do_padrao"}).eq("id",i.ordem_recebimento_id).in("status",["pendente","em_recebimento","em_classificacao","aguardando_balanca","liberado para descarga"]);try{const{data:h}=await u.from("ordens_recebimento").select("id, produto, lote, nf, nf_remessa, fabricante, cliente, placa, tipo").eq("id",i.ordem_recebimento_id).maybeSingle();if(h&&(h.tipo==="granel"||!h.tipo)){const N=await Ke(h,c,v==null?void 0:v.id);N.ok&&N.created&&g({title:`Amostra ${N.codigo} cadastrada em Amostras Moega`,description:"Defina o local de armazenamento na página /amostras-moega."})}}catch{}}g({title:D?"Laudo atualizado":"Laudo criado"}),ae(!1),be()}},L=(a,s)=>je(t=>({...t,[a]:s})),P=(a,s)=>L(a,s===""?null:parseFloat(s)),la=a=>{var s,t;return a&&(((s=I.find(d=>d.id===a))==null?void 0:s.ticket_balanca)||((t=pe.get(a))==null?void 0:t.ticket_balanca))||""},Ta=a=>la(a.ordem_recebimento_id),M=q,ma=l.useCallback(async a=>{const s=a.trim();if(!(s.length<2)){U(!0),ge(!0);try{const t=s.replace(/[%,()]/g," ").trim(),d=[`fornecedor.ilike.%${t}%`,`nota_fiscal.ilike.%${t}%`,`placa.ilike.%${t}%`,`lote.ilike.%${t}%`,`codigo_produto.ilike.%${t}%`,`classificador.ilike.%${t}%`],m=s.match(/^lc[-\s]?0*(\d+)$/i);m&&d.push(`numero_laudo.eq.${m[1]}`);const c=s.match(/^or[-\s]?0*(\d+)$/i);if(c&&d.push(`numero_ordem.eq.${c[1]}`),/^\d+$/.test(s)){const b=Number(s);Number.isFinite(b)&&(d.push(`numero_laudo.eq.${b}`),d.push(`numero_ordem.eq.${b}`))}const h=s.match(/^(\d+[.,]\d+)$/);if(h){const b=parseFloat(h[1].replace(",","."));Number.isFinite(b)&&d.push(`umidade.eq.${b}`)}const N=s.match(/^(\d{2})\/(\d{2})\/(\d{4})$/);N&&d.push(`data_recebimento.eq.${N[3]}-${N[2]}-${N[1]}`),s.match(/^(\d{4})-(\d{2})-(\d{2})$/)&&d.push(`data_recebimento.eq.${s}`);const{data:x}=await u.from("ordens_recebimento").select("id").or(`ticket_balanca.ilike.%${t}%,cliente.ilike.%${t}%`).limit(200),S=(x||[]).map(b=>b.id).filter(Boolean);S.length>0&&d.push(`ordem_recebimento_id.in.(${S.join(",")})`);const{data:O,error:r}=await u.from("laudos_classificacao").select("*").or(d.join(",")).order("created_at",{ascending:!1}).limit(100);r?(g({title:"Erro na busca",description:r.message,variant:"destructive"}),T([])):T(O||[])}finally{U(!1)}}},[g]),Ee=l.useCallback(async()=>{U(!0),ge(!0);const{data:a,error:s}=await u.from("laudos_classificacao").select("*").order("created_at",{ascending:!1}).limit(20);s?g({title:"Erro",description:s.message,variant:"destructive"}):T(a||[]),U(!1)},[g]),ua=l.useCallback(async a=>{if(!a)return;U(!0),ge(!0);const{data:s,error:t}=await u.from("laudos_classificacao").select("*").eq("data_recebimento",a).order("created_at",{ascending:!1}).limit(500);t?g({title:"Erro",description:t.message,variant:"destructive"}):T(s||[]),U(!1)},[g]);l.useEffect(()=>{const a=se.trim();if(a.length<2)return;const s=setTimeout(()=>{ma(a)},350);return()=>clearTimeout(s)},[se,ma]),l.useEffect(()=>{ne&&ua(ne)},[ne,ua]);const ha=l.useCallback(async(a,s)=>{if(!a||!s)return;U(!0),ge(!0);const{data:t,error:d}=await u.from("laudos_classificacao").select("*").gte("data_recebimento",a).lte("data_recebimento",s).order("data_recebimento",{ascending:!1}).order("created_at",{ascending:!1}).limit(2e3);d?g({title:"Erro",description:d.message,variant:"destructive"}):T(t||[]),U(!1)},[g]);l.useEffect(()=>{J&&X&&ha(J,X)},[J,X,ha]);const xa=a=>{const s=window.open("","_blank","width=900,height=700");rs(a.id,{win:s})},Oa=async a=>{let s=a.peso_amostra?String(a.peso_amostra):null,t="—",d="—",m="—";const{data:c}=await u.from("laudos_classificacao").select("id, umidade, mei, quebrados, peso_amostra_inicial").eq("ordem_recebimento_id",a.id).order("created_at",{ascending:!1}).limit(1).maybeSingle();c&&(t=c.umidade!=null?`${c.umidade}%`:"—",d=c.mei!=null?`${c.mei}g`:"—",m=c.quebrados!=null?`${c.quebrados}g`:"—",!s&&c.peso_amostra_inicial!=null&&Number(c.peso_amostra_inicial)>0&&(s=String(c.peso_amostra_inicial),await u.from("ordens_recebimento").update({peso_amostra:Number(s)}).eq("id",a.id)));let h=null,N=null;try{const x=await Ke(a,(c==null?void 0:c.id)??null,v==null?void 0:v.id);
1if(x.ok){h=x.codigo;const{data:S}=await u.from("amostras_moega").select("data_validade").eq("id",x.id).maybeSingle();N=(S==null?void 0:S.data_validade)||null}x.ok&&x.created&&g({title:`Amostra ${x.codigo} cadastrada em Amostras Moega`,description:"Defina o local de armazenamento na página /amostras-moega."})}catch{}if(!s){if(s=prompt("Informe o Peso da Amostra (g):"),s===null)return;if(!s||isNaN(Number(s))||Number(s)<=0){g({title:"Peso inválido",description:"Informe um peso válido para a amostra.",variant:"destructive"});return}await u.from("ordens_recebimento").update({peso_amostra:Number(s)}).eq("id",a.id)}const _=h||`OR-${String(a.numero_ordem).padStart(4,"0")}`;Na({codigo_amostra:_,produto:a.produto||"—",cod_produto:a.cod_produto||null,subtipo:a.subtipo||null,cliente:a.cliente?fa(a.cliente):null,fabricante:a.fabricante||null,lote:a.lote||null,nf_remessa:a.nf_remessa||null,numero_ordem_recebimento:`OR-${String(a.numero_ordem).padStart(4,"0")}`,placa:a.placa||null,data_coleta:new Date(a.created_at).toISOString().slice(0,10),data_validade:N,peso_amostra:s,umidade:t,mei:d,quebrados:m},ia)},pa=async a=>{let s=null,t=null,d=null;if(a.ordem_recebimento_id){const G=I.find(R=>R.id===a.ordem_recebimento_id);if(G)s=G;else{const R=pe.get(a.ordem_recebimento_id);if(R)t=R.cliente,d=R.numero_ordem;else{const{data:Z}=await u.from("ordens_recebimento").select("cliente, numero_ordem").eq("id",a.ordem_recebimento_id).single();Z&&(t=Z.cliente,d=Z.numero_ordem)}}}let m=null,c=null;if(a.ordem_recebimento_id)try{const{data:G}=await u.from("ordens_recebimento").select("id, produto, lote, nf, nf_remessa, fabricante, cliente, placa, tipo").eq("id",a.ordem_recebimento_id).maybeSingle();if(G&&(G.tipo==="granel"||!G.tipo)){const R=await Ke(G,a.id,v==null?void 0:v.id);if(R.ok){m=R.codigo;const{data:Z}=await u.from("amostras_moega").select("data_validade").eq("id",R.id).maybeSingle();c=(Z==null?void 0:Z.data_validade)||null}R.ok&&R.created&&g({title:`Amostra ${R.codigo} cadastrada em Amostras Moega`,description:"Defina o local de armazenamento na página /amostras-moega."})}}catch{}const h=a.peso_amostra_inicial?String(a.peso_amostra_inicial):"—",N=a.umidade!=null?`${a.umidade}%`:"—",_=a.mei!=null?`${a.mei}g`:"—",x=a.quebrados!=null?`${a.quebrados}g`:"—",S=s==null?void 0:s.subtipo,O=(s==null?void 0:s.cliente)||t||null,r=(s==null?void 0:s.nf_remessa)||a.nota_fiscal||null,b=a.placa||(s==null?void 0:s.placa)||null,y=(s==null?void 0:s.fabricante)||a.fornecedor||null,B=a.lote||null,Q=a.codigo_produto||(s==null?void 0:s.cod_produto)||null,le=(s==null?void 0:s.produto)||a.fornecedor||"—",Ce=a.numero_ordem||(s==null?void 0:s.numero_ordem)||d||null,we=Ce?`OR-${String(Ce).padStart(4,"0")}`:null,Ia=m||we||a.id.slice(0,8).toUpperCase();Na({codigo_amostra:Ia,produto:le,cod_produto:Q,subtipo:S,cliente:O?fa(O):null,fabricante:y,lote:B,nf_remessa:r,numero_ordem_recebimento:we,placa:b,data_coleta:a.data_recebimento||new Date().toISOString().slice(0,10),data_validade:c,peso_amostra:h&&h!=="—"?h:null,umidade:N,mei:_,quebrados:x},ia)};return e.jsxs("div",{children:[j==="menu"&&e.jsxs(w,{variant:"ghost",size:"sm",className:"mb-2 -ml-2",onClick:()=>C(k.get("from")==="balanca"?"/balanca":"/qualidade"),children:[e.jsx(ga,{className:"h-4 w-4 mr-1"})," Voltar"]}),j==="menu"&&e.jsxs("div",{className:"flex flex-col items-center text-center gap-2 mb-6",children:[e.jsx("div",{className:"flex h-12 w-12 items-center justify-center rounded-xl bg-primary/20 text-primary",children:e.jsx(De,{className:"h-6 w-6"})}),e.jsx("h1",{className:"text-2xl font-bold text-foreground",children:"Classificação"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Laudos de classificação de grãos"})]}),j==="menu"&&e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-5 max-w-4xl mx-auto print:hidden",children:[{key:"laudo",label:"Laudo",icon:e.jsx(ja,{className:"h-6 w-6"}),description:"Laudos de classificação de grãos"},{key:"dados",label:"Dados da Classificação",icon:e.jsx(De,{className:"h-6 w-6"}),description:"Dados detalhados da classificação"},{key:"amostra",label:"Amostra",icon:e.jsx(_a,{className:"h-6 w-6"}),description:"Armazenamento e controle de amostras"}].map(a=>e.jsx(me,{className:"group cursor-pointer border-border bg-card shadow transition-all duration-200 hover:shadow-xl hover:border-primary/50 active:scale-[0.97]",onClick:()=>H(a.key),children:e.jsxs(ue,{className:"p-6 flex flex-col items-center gap-4 text-center",children:[e.jsx("div",{className:"flex h-14 w-14 items-center justify-center rounded-xl bg-primary/20 text-primary transition-colors group-hover:bg-primary/30",children:a.icon}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-base font-semibold text-foreground",children:a.label}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1 leading-relaxed",children:a.description})]})]})},a.key))}),j!=="menu"&&e.jsx("div",{className:"mt-4 print:hidden",children:e.jsxs("div",{className:"flex flex-col items-center text-center gap-2 mb-6",children:[e.jsxs(w,{variant:"ghost",size:"sm",className:"self-start mb-2",onClick:()=>H("menu"),children:[e.jsx(ga,{className:"h-4 w-4 mr-1"})," Voltar"]}),e.jsxs("div",{className:"flex h-10 w-10 items-center justify-center rounded-lg bg-primary/20 text-primary",children:[j==="laudo"&&e.jsx(ja,{className:"h-5 w-5"}),j==="dados"&&e.jsx(De,{className:"h-5 w-5"}),j==="amostra"&&e.jsx(_a,{className:"h-5 w-5"})]}),e.jsxs("h2",{className:"text-xl font-bold text-foreground tracking-tight",children:[j==="laudo"&&"Laudo",j==="dados"&&"Dados da Classificação",j==="amostra"&&"Amostra"]}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:[j==="laudo"&&"Laudos de classificação de grãos",j==="dados"&&"Dados detalhados da classificação",j==="amostra"&&"Armazenamento e controle de amostras"]})]})}),j==="laudo"&&e.jsxs("div",{className:"space-y-4",children:[de.length>0&&e.jsxs(me,{children:[e.jsx(Se,{className:"pb-2",children:e.jsx(ye,{className:"text-sm font-medium",children:"Ordens sem Laudo"})}),e.jsx(ue,{children:e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(te,{children:[e.jsx(re,{children:e.jsxs(F,{children:[e.jsx(n,{children:"Nº Ordem"}),e.jsx(n,{children:"Ticket"}),e.jsx(n,{children:"Cliente"}),e.jsx(n,{children:"Produto"}),e.jsx(n,{children:"NF"}),e.jsx(n,{children:"Placa"}),e.jsx(n,{className:"w-24"})]})}),e.jsx(oe,{children:de.map(a=>e.jsxs(F,{children:[e.jsxs(o,{children:["OR-",String(a.numero_ordem).padStart(4,"0")]}),e.jsx(o,{children:a.ticket_balanca||"—"}),e.jsx(o,{children:a.cliente}),e.jsx(o,{children:a.produto}),e.jsx(o,{children:a.nf||a.nf_remessa}),e.jsx(o,{children:a.placa}),e.jsx(o,{children:e.jsxs("div",{className:"flex gap-1 justify-end",children:[e.jsxs(w,{size:"sm",variant:"outline",onClick:()=>qa(a),children:[e.jsx(ba,{className:"h-3.5 w-3.5 mr-1"})," Laudo"]}),Te.length>0&&e.jsx(w,{size:"sm",variant:"ghost",title:"Vincular a laudo existente",onClick:()=>Oe(a),children:e.jsx(ke,{className:"h-3.5 w-3.5"})})]})})]},a.id))})]})})})]}),e.jsxs(me,{children:[e.jsxs(Se,{className:"pb-2 flex flex-row items-center justify-between gap-2",children:[e.jsx(ye,{className:"text-sm font-medium",children:"Laudos Cadastrados"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(w,{size:"sm",onClick:Fa,children:[e.jsx(ba,{className:"h-3.5 w-3.5 mr-1"})," Novo Laudo"]}),e.jsx(w,{size:"sm",variant:"outline",onClick:Ee,disabled:fe,children:"Ver últimos 20"}),e.jsxs(w,{size:"sm",variant:"outline",title:"Consulta a API Novo Sync e preenche o Lote nos laudos de milho pela NF (ignorando o sufixo -1)",onClick:async()=>
1{g({title:"Sincronizando lotes de milho..."});const{data:a,error:s}=await u.functions.invoke("sync-milho-laudos-lotes",{body:{pages:5,per_page:200}});if(s){g({title:"Falha ao sincronizar",description:s.message,variant:"destructive"});return}g({title:"Lotes de milho atualizados",description:`Verificados: ${(a==null?void 0:a.checked)??0} · Atualizados: ${(a==null?void 0:a.updated)??0}`}),Ee()},children:[e.jsx(Qa,{className:"h-3.5 w-3.5 mr-1"})," Sincronizar lotes (API)"]}),e.jsx(p,{type:"date",value:ne,onChange:a=>Ze(a.target.value),className:"h-9 w-40",title:"Filtrar por data de recebimento"}),ne&&e.jsx(w,{size:"sm",variant:"ghost",onClick:()=>Ze(""),children:"Limpar data"}),e.jsxs("div",{className:"relative w-64",children:[e.jsx(ze,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx(p,{placeholder:"Buscar por LC, OR, ticket, NF, placa, fornecedor...",value:se,onChange:a=>sa(a.target.value),className:"pl-8 h-9"})]})]})]}),e.jsx(ue,{children:ie||fe?e.jsx("div",{className:"flex justify-center py-8",children:e.jsx("div",{className:"animate-spin h-6 w-6 border-2 border-primary border-t-transparent rounded-full"})}):Ye?M.length===0?e.jsx("p",{className:"text-sm text-muted-foreground text-center py-6",children:"Nenhum laudo encontrado para a busca."}):e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(te,{children:[e.jsx(re,{children:e.jsxs(F,{children:[e.jsx(n,{children:"Nº Laudo"}),e.jsx(n,{children:"Nº Ordem"}),e.jsx(n,{children:"Ticket"}),e.jsx(n,{children:"Fornecedor"}),e.jsx(n,{children:"Data"}),e.jsx(n,{children:"NF"}),e.jsx(n,{children:"Placa"}),e.jsx(n,{children:"Umidade"}),e.jsx(n,{children:"Status"}),e.jsx(n,{children:"Classificador"}),e.jsx(n,{className:"w-24"})]})}),e.jsx(oe,{children:M.map(a=>{const s=!a.ordem_recebimento_id||K.has(a.ordem_recebimento_id),t=Ne(a);return e.jsxs(F,{className:s?"":"bg-destructive/5",children:[e.jsx(o,{className:"font-medium",children:a.numero_laudo!=null?`LC-${String(a.numero_laudo).padStart(4,"0")}`:"—"}),e.jsx(o,{children:a.numero_ordem!=null?`OR-${String(a.numero_ordem).padStart(4,"0")}`:"—"}),e.jsx(o,{children:Ta(a)||"—"}),e.jsx(o,{children:a.fornecedor}),e.jsx(o,{children:ee(a.data_recebimento)}),e.jsx(o,{children:a.nota_fiscal}),e.jsx(o,{children:a.placa}),e.jsx(o,{children:a.umidade!=null?`${a.umidade}%`:"—"}),e.jsx(o,{children:t?e.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-xs font-semibold bg-destructive/10 text-destructive ring-1 ring-destructive/30",children:"Fora do padrão"}):e.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-xs font-semibold bg-green-100 text-green-700 ring-1 ring-green-300 dark:bg-green-900/30 dark:text-green-400 dark:ring-green-700",children:"Dentro do padrão"})}),e.jsx(o,{children:a.classificador}),e.jsx(o,{children:e.jsxs("div",{className:"flex gap-1",children:[e.jsx(w,{size:"sm",variant:"ghost",onClick:()=>ca(a),title:"Editar",children:e.jsx(Ca,{className:"h-3.5 w-3.5"})}),e.jsx(w,{size:"sm",variant:"ghost",onClick:()=>xa(a),title:"Imprimir",children:e.jsx(Ve,{className:"h-3.5 w-3.5"})}),e.jsx(w,{size:"sm",variant:"ghost",onClick:()=>pa(a),title:"Imprimir etiqueta de amostra",children:e.jsx(va,{className:"h-3.5 w-3.5"})}),!s&&de.length>0&&e.jsx(w,{size:"sm",variant:"ghost",title:"Vincular a OR existente",onClick:()=>Ie(a),children:e.jsx(ke,{className:"h-3.5 w-3.5"})}),W&&e.jsx(is,{tableName:"laudos_classificacao",recordId:a.id}),(W||!s)&&e.jsxs(Ga,{children:[e.jsx(Ha,{asChild:!0,children:e.jsx(w,{size:"sm",variant:"ghost",className:"text-destructive hover:text-destructive",title:"Excluir",children:e.jsx(Wa,{className:"h-3.5 w-3.5"})})}),e.jsxs(Ka,{children:[e.jsxs(Ja,{children:[e.jsx(Xa,{children:"Excluir Laudo"}),e.jsx(Ya,{children:s?`Tem certeza que deseja excluir o laudo da ordem OR-${String(a.numero_ordem).padStart(4,"0")}? Esta ação não pode ser desfeita.`:`A ordem OR-${String(a.numero_ordem).padStart(4,"0")} não existe mais. Deseja excluir este laudo órfão?`})]}),e.jsxs(Za,{children:[e.jsx(es,{children:"Cancelar"}),e.jsx(as,{className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",onClick:async()=>{const{error:d}=await u.from("laudos_classificacao").delete().eq("id",a.id);
1d?g({title:"Erro",description:d.message,variant:"destructive"}):(g({title:"Laudo excluído"}),be())},children:"Excluir"})]})]})]})]})})]},a.id)})})]})}):e.jsxs("p",{className:"text-sm text-muted-foreground text-center py-6",children:["Digite ao menos 2 caracteres para buscar um laudo (Nº LC, OR, ticket, NF, placa, fornecedor, umidade, data...) ou clique em ",e.jsx("strong",{children:"Ver últimos 20"}),"."]})})]})]}),j==="dados"&&e.jsx("div",{className:"space-y-4",children:e.jsxs(me,{children:[e.jsxs(Se,{className:"pb-2 flex flex-row items-center justify-between gap-2",children:[e.jsx(ye,{className:"text-sm font-medium",children:"Dados da Classificação"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(w,{size:"sm",variant:"outline",onClick:()=>{const a=M.map(r=>{parseFloat(((r.peso_amostra_inicial||0)-(r.mei||0)-(r.quebrados||0)).toFixed(2));const b=r.ordem_recebimento_id?pe.get(r.ordem_recebimento_id):null,y=r.ordem_recebimento_id?I.find(we=>we.id===r.ordem_recebimento_id):null,B=(y==null?void 0:y.numero_ordem)||(b==null?void 0:b.numero_ordem)||r.numero_ordem,Q=(y==null?void 0:y.ticket_balanca)||(b==null?void 0:b.ticket_balanca)||"—",le=(y==null?void 0:y.cliente)||(b==null?void 0:b.cliente)||"—",Ce=Ne(r);return`<tr>
2                      <td>${r.numero_laudo!=null?`LC-${String(r.numero_laudo).padStart(4,"0")}`:"—"}</td>
3                      <td>${B?`OR-${String(B).padStart(4,"0")}`:"—"}</td>
4                      <td>${Q}</td>
5                      <td>${ee(r.data_recebimento)}</td>
6                      <td>${le}</td>
7                      <td>${r.fornecedor||""}</td>
8                      <td>${r.nota_fiscal||""}</td>
9                      <td class="text-right">${r.quantidade_recebida??""}</td>
10                      <td>${r.placa||""}</td>
11                      <td class="text-right">${r.peso_amostra_inicial??""}</td>
12                      <td class="text-right">${r.umidade!=null?`${r.umidade}%`:""}</td>
13                      <td class="text-right">${r.mei??""}</td>
14                      <td class="text-right">${r.quebrados??""}</td>
15                      <td class="text-right">${r.ardidos??""}</td>
16                      <td class="text-right">${r.mofados??""}</td>
17                      <td class="text-right">${r.fermentados??""}</td>
18                      <td class="text-right">${r.germinados??""}</td>
19                      <td class="text-right">${r.chochos_imaturos??""}</td>
20                      <td class="text-right">${r.gessado??""}</td>
21                      <td class="text-right">${r.total_avariados!=null?parseFloat(Number(r.total_avariados).toFixed(2)):""}</td>
22                      <td class="text-right">${r.carunchados??""}</td>
23                      <td class="text-center">${Ce?'<span class="text-red">Fora</span>':'<span class="text-green">OK</span>'}</td>
24                    </tr>`}),s=M.length,t=M.filter(r=>Ne(r)).length,d=s-t,m=(r,b=2)=>{const y=M.map(r).filter(Q=>Q!=null&&Number.isFinite(Q));return y.length===0?"—":(y.reduce((Q,le)=>Q+le,0)/y.length).toFixed(b)},c=(r,b=2)=>{const y=M.map(r).filter(B=>B!=null&&Number.isFinite(B));return y.length===0?"—":Math.max(...y).toFixed(b)},h=M.reduce((r,b)=>r+(Number(b.quantidade_recebida)||0),0),N=h>0?new Intl.NumberFormat("pt-BR",{maximumFractionDigits:0}).format(h)+" kg":"—",_=s>0?`${(d/s*100).toFixed(1)}%`:"—",x=Ue([{label:"Total de Laudos",value:s},{label:"Qtd. Recebida",value:N},{label:"Dentro do Padrão",value:d},{label:"Fora do Padrão",value:t},{label:"Conformidade",value:_}]),S=`
25                    <h2>Estatísticas das Amostras (Médias)</h2>
26                    ${Ue([{label:"Umidade média (%)",value:m(r=>r.umidade,2)},{label:"M.E.I médio (g)",value:m(r=>r.mei,2)},{label:"Quebrados médio (g)",value:m(r=>r.quebrados,2)},{label:"Ardidos médio (g)",value:m(r=>r.ardidos,2)},{label:"Mofados médio (g)",value:m(r=>r.mofados,2)},{label:"Fermentados médio (g)",value:m(r=>r.fermentados,2)},{label:"Gessado médio (g)",value:m(r=>r.gessado,2)},{label:"Tot. Avariados médio (g)",value:m(r=>r.total_avariados,2)}])}
27                    <h2>Máximos Registrados</h2>
28                    ${Ue([{label:"Umidade máx. (%)",value:c(r=>r.umidade,2)},{label:"M.E.I máx. (g)",value:c(r=>r.mei,2)},{label:"Quebrados máx. (g)",value:c(r=>r.quebrados,2)},{label:"Ardidos máx. (g)",value:c(r=>r.ardidos,2)},{label:"Mofados máx. (g)",value:c(r=>r.mofados,2)},{label:"Fermentados máx. (g)",value:c(r=>r.fermentados,2)},{label:"Gessado máx. (g)",value:c(r=>r.gessado,2)},{label:"Tot. Avariados máx. (g)",value:c(r=>r.total_avariados,2)}])}
29                  `,O=`${x}
30                    ${S}
31                    <h2 style="page-break-before: always;">Detalhamento dos Laudos</h2>
32                     <table class="detail-table compact">
33                      <thead><tr>
34                        <th>Nº Laudo</th><th>Ordem</th><th>Ticket</th><th>Data</th><th>Cliente</th><th>Fornecedor</th><th>NF</th>
35                        <th>Qtd (kg)</th><th>Placa</th><th>Peso Am. (g)</th><th>Umid.</th>
36                        <th>M.E.I (g)</th><th>Queb. (g)</th><th>Ard. (g)</th><th>Mof. (g)</th>
37                        <th>Ferm. (g)</th><th>
37Germ. (g)</th><th>Choch. (g)</th><th>Gess. (g)</th>
38                        <th>Tot. Av. (g)</th><th>Carun.</th><th>Status</th>
39                      </tr></thead>
40                      <tbody>${a.join("")}</tbody>
41                    </table>`;ss({title:"Dados da Classificação",subtitle:[J&&X?`Período: ${ee(J)} a ${ee(X)}`:null,se?`Filtro: "${se}"`:null,`${s} laudo(s) analisado(s)`].filter(Boolean).join(" • ")||void 0,content:O,orientation:"landscape",documentCode:"REL-CLASS",footerLeft:"Relatório de Classificação de Amostras",customLogoUrl:Ae||void 0,headerVariant:"laudo"})},children:[e.jsx(Ve,{className:"h-3.5 w-3.5 mr-1"})," Imprimir"]}),e.jsx(w,{size:"sm",variant:"outline",onClick:Ee,disabled:fe,children:"Ver últimos 20"}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(f,{className:"text-xs text-muted-foreground",children:"De"}),e.jsx(p,{type:"date",value:J,onChange:a=>ea(a.target.value),className:"h-9 w-40"}),e.jsx(f,{className:"text-xs text-muted-foreground",children:"Até"}),e.jsx(p,{type:"date",value:X,onChange:a=>aa(a.target.value),className:"h-9 w-40"}),(J||X)&&e.jsx(w,{size:"sm",variant:"ghost",onClick:()=>{ea(""),aa("")},children:"Limpar"})]}),e.jsxs("div",{className:"relative w-64",children:[e.jsx(ze,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx(p,{placeholder:"Buscar por LC, OR, ticket, NF, placa, fornecedor...",value:se,onChange:a=>sa(a.target.value),className:"pl-8 h-9"})]})]})]}),e.jsx(ue,{children:ie||fe?e.jsx("div",{className:"flex justify-center py-8",children:e.jsx("div",{className:"animate-spin h-6 w-6 border-2 border-primary border-t-transparent rounded-full"})}):Ye?e.jsx(ds,{children:e.jsxs(te,{children:[e.jsx(re,{children:e.jsxs(F,{children:[e.jsx(n,{children:"Nº Laudo"}),e.jsx(n,{children:"Ordem"}),e.jsx(n,{children:"Ticket"}),e.jsx(n,{children:"Data"}),e.jsx(n,{children:"Cliente"}),e.jsx(n,{children:"Fornecedor"}),e.jsx(n,{children:"NF"}),e.jsx(n,{children:"Qtd (kg)"}),e.jsx(n,{children:"Placa"}),e.jsx(n,{children:"Peso Amostra (g)"}),e.jsx(n,{children:"Umidade (%)"}),e.jsx(n,{children:"M.E.I (g)"}),e.jsx(n,{children:"Quebrados (g)"}),e.jsx(n,{children:"Ardidos (g)"}),e.jsx(n,{children:"Mofados (g)"}),e.jsx(n,{children:"Fermentados (g)"}),e.jsx(n,{children:"Germinados (g)"}),e.jsx(n,{children:"Chochos (g)"}),e.jsx(n,{children:"Gessado (g)"}),e.jsx(n,{children:"Total Av. (g)"}),e.jsx(n,{children:"Carunchados"}),e.jsx(n,{className:"w-24"})]})}),e.jsx(oe,{children:M.length===0?e.jsx(F,{children:e.jsx(o,{colSpan:22,className:"text-center text-muted-foreground py-6",children:"Nenhum dado encontrado."})}):M.map(a=>{const s=parseFloat(((a.peso_amostra_inicial||0)-(a.mei||0)-(a.quebrados||0)).toFixed(2)),t=a.ordem_recebimento_id?I.find(S=>S.id===a.ordem_recebimento_id):null,d=(t==null?void 0:t.produto)||a.codigo_produto||"",m=V("umidade",a.umidade,0,d),c=V("mei",a.mei,s,d),h=V("quebrados",a.quebrados,s,d),N=(S,O)=>e.jsxs("span",{className:S.exceeded?"inline-block px-1.5 py-0.5 rounded-full ring-2 ring-destructive text-destructive font-semibold":"",children:[O,S.exceeded&&e.jsx("span",{className:"block text-[10px] font-medium",children:S.limitText})]}),_=a.ordem_recebimento_id?pe.get(a.ordem_recebimento_id):null,x=(t==null?void 0:t.ticket_balanca)||(_==null?void 0:_.ticket_balanca)||"—";return e.jsxs(F,{children:[e.jsx(o,{className:"whitespace-nowrap font-medium",children:a.numero_laudo!=null?`LC-${String(a.numero_laudo).padStart(4,"0")}`:"—"}),e.jsx(o,{className:"whitespace-nowrap font-medium",children:t?`OR-${String(t.numero_ordem).padStart(4,"0")}`:_?`OR-${String(_.numero_ordem).padStart(4,"0")}`:a.numero_ordem?`OR-${String(a.numero_ordem).padStart(4,"0")}`:"—"}),e.jsx(o,{children:x}),e.jsx(o,{className:"whitespace-nowrap",children:ee(a.data_recebimento)}),e.jsx(o,{className:"whitespace-nowrap",children:(t==null?void 0:t.cliente)||(_==null?void 0:_.cliente)||"—"}),e.jsx(o,{children:a.fornecedor}),e.jsx(o,{children:a.nota_fiscal}),e.jsx(o,{children:a.quantidade_recebida}),e.jsx(o,{children:a.placa}),e.jsx(o,{children:a.peso_amostra_inicial}),e.jsx(o,{children:N(m,a.umidade)}),e.jsx(o,{children:N(c,a.mei)}),e.jsx(o,{children:N(h,a.quebrados)}),e.jsx(o,{children:a.ardidos}),e.jsx(o,{children:a.mofados}),e.jsx(o,{children:a.fermentados}),e.jsx(o,{children:a.germinados}),e.jsx(o,{children:a.chochos_imaturos}),e.jsx(o,{children:a.gessado}),e.jsx(o,{children:a.total_avariados!=null?parseFloat(Number(a.total_avariados).toFixed(2)):""}),e.jsx(o,{children:a.carunchados}),e.jsx(o,{children:e.jsx("div",{className:"flex gap-1",children:e.jsx(w,{size:"sm",variant:"ghost",onClick:()=>ca(a),title:"Editar",children:e.jsx(Ca,{className:"h-3.5 w-3.5"})})})})]},a.id)})})]})}):e.jsxs("p",{className:"text-sm text-muted-foreground text-center py-6",children:["Digite ao menos 2 caracteres para buscar (Nº LC, OR, ticket, NF, placa, fornecedor, umidade, data...) ou clique em ",e.jsx("strong",{children:"Ver últimos 20"}),"."]})})]})}),j==="amostra"&&e.jsx("div",{className:"space-y-4",children:e.jsxs(me,{children:[e.jsxs(Se,{className:"pb-2 flex flex-row items-center justify-between",children:[e.jsx(ye,{className:"text-sm font-medium",children:"Etiquetas de Amostra"}),e.jsxs("div",{className:"relative w-64",children:[e.jsx(ze,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx(p,{placeholder:"Buscar...",value:Pe,onChange:a=>$a(a.target.value),className:"pl-8 h-9"})]})]}),e.jsx(ue,{children:ie?e.jsx("div",{className:"flex justify-center py-8",children:e.jsx("div",{className:"animate-spin h-6 w-6 border-2 border-primary border-t-transparent roun
41ded-full"})}):(()=>{const a=Le.filter(s=>{var d,m,c,h;if(!Pe)return!0;const t=Pe.toLowerCase();return((d=s.fabricante)==null?void 0:d.toLowerCase().includes(t))||((m=s.cliente)==null?void 0:m.toLowerCase().includes(t))||((c=s.produto)==null?void 0:c.toLowerCase().includes(t))||((h=s.nf_remessa)==null?void 0:h.toLowerCase().includes(t))||String(s.numero_ordem).includes(t)});return a.length===0?e.jsx("p",{className:"text-sm text-muted-foreground text-center py-6",children:"Nenhuma ordem encontrada."}):e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(te,{children:[e.jsx(re,{children:e.jsxs(F,{children:[e.jsx(n,{children:"Data"}),e.jsx(n,{children:"Nº Ordem"}),e.jsx(n,{children:"Fabricante"}),e.jsx(n,{children:"Cliente"}),e.jsx(n,{children:"Produto"}),e.jsx(n,{children:"Nº Remessa"}),e.jsx(n,{className:"w-16"})]})}),e.jsx(oe,{children:a.map(s=>{var t;return e.jsxs(F,{children:[e.jsx(o,{className:"whitespace-nowrap",children:ee((t=s.created_at)==null?void 0:t.slice(0,10))}),e.jsx(o,{children:s.numero_ordem}),e.jsx(o,{children:s.fabricante||"—"}),e.jsx(o,{children:s.cliente||"—"}),e.jsx(o,{children:s.produto||"—"}),e.jsx(o,{children:s.nf_remessa||"—"}),e.jsx(o,{children:e.jsx(w,{size:"sm",variant:"ghost",title:"Imprimir Etiqueta",onClick:()=>Oa(s),children:e.jsx(Ve,{className:"h-3.5 w-3.5"})})})]},s.id)})})]})})})()})]})}),e.jsx(Be,{open:qe,onOpenChange:ae,children:e.jsxs(Qe,{className:"max-w-3xl max-h-[90vh] overflow-y-auto",children:[e.jsx(Ge,{children:e.jsx(He,{children:D?"Editar Laudo":"Novo Laudo de Classificação"})}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-foreground mb-3 border-b pb-1",children:"1. Conferência de Dados"}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-3",children:[e.jsxs("div",{children:[e.jsx(f,{children:"Fornecedor"}),e.jsx(p,{value:i.fornecedor||"",onChange:a=>L("fornecedor",a.target.value)})]}),e.jsxs("div",{children:[e.jsx(f,{children:"Lote"}),e.jsx(p,{value:i.lote||"",onChange:a=>L("lote",a.target.value)})]}),e.jsxs("div",{children:[e.jsx(f,{children:"Data"}),e.jsx(p,{type:"date",value:i.data_recebimento||"",onChange:a=>L("data_recebimento",a.target.value)})]}),e.jsxs("div",{children:[e.jsx(f,{children:"Cód. Produto"}),e.jsx(p,{value:i.codigo_produto||"",onChange:a=>L("codigo_produto",a.target.value)})]}),e.jsxs("div",{children:[e.jsx(f,{children:"Transportadora"}),e.jsx(p,{value:i.transportadora||"",onChange:a=>L("transportadora",a.target.value)})]}),e.jsxs("div",{children:[e.jsx(f,{children:"Qtd. Recebida (kg)"}),e.jsx(p,{type:"number",value:i.quantidade_recebida??"",onChange:a=>P("quantidade_recebida",a.target.value)})]}),e.jsxs("div",{children:[e.jsx(f,{children:"Nota Fiscal"}),e.jsx(p,{value:i.nota_fiscal||"",onChange:a=>L("nota_fiscal",a.target.value)})]}),e.jsxs("div",{children:[e.jsx(f,{children:"Hora"}),e.jsx(p,{value:i.hora||"",onChange:a=>L("hora",a.target.value)})]}),e.jsxs("div",{children:[e.jsx(f,{children:"Ticket Balança"}),e.jsx(p,{value:la(i.ordem_recebimento_id)||"—",readOnly:!0,className:"bg-muted"})]}),e.jsxs("div",{children:[e.jsx(f,{children:"Umidade (%)"}),(()=>{const a=V("umidade",i.umidade,0);return e.jsxs(e.Fragment,{children:[e.jsx(p,{type:"number",step:"0.01",value:i.umidade??"",onChange:s=>P("umidade",s.target.value),className:a.exceeded?"ring-2 ring-destructive border-destructive":""}),a.exceeded&&e.jsx("span",{className:"text-xs text-destructive font-medium",children:a.limitText})]})})()]}),e.jsxs("div",{children:[e.jsx(f,{children:"Placa"}),e.jsx(p,{value:i.placa||"",onChange:a=>L("placa",a.target.value)})]})]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-foreground mb-3 border-b pb-1",children:"2. Classificação"}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-3",children:[e.jsxs("div",{children:[e.jsx(f,{children:"Peso Amostra Inicial (g)"}),e.jsx(p,{type:"number",step:"0.001",value:i.peso_amostra_inicial??"",onChange:a=>P("peso_amostra_inicial",a.target.value)})]}),e.jsxs("div",{children:[e.jsx(f,{children:"M.E.I (g)"}),(()=>{const a=V("mei",i.mei,$);return e.jsxs(e.Fragment,{children:[e.jsx(p,{type:"number",step:"0.01",value:i.mei??"",onChange:s=>P("mei",s.target.value),className:a.exceeded?"ring-2 ring-destructive border-destructive":""}),a.exceeded&&e.jsx("span",{className:"text-xs text-destructive font-medium",children:a.limitText})]})})()]}),e.jsxs("div",{children:[e.jsx(f,{children:"Quebrados (g)"}),(()=>{const a=V("quebrados",i.quebrados,$);return e.jsxs(e.Fragment,{children:[e.jsx(p,{type:"number",step:"0.01",value:i.quebrados??"",onChange:s=>P("quebrados",s.target.value),className:a.exceeded?"ring-2 ring-destructive border-destructive":""}),a.exceeded&&e.jsx("span",{className:"text-xs text-destructive font-medium",children:a.limitText})]})})()]}),e.jsxs("div",{children:[e.jsx(f,{children:"Peso Amostra sem Impureza (g)"}),e.jsx(p,{type:"number",readOnly:!0,value:$||"",className:"bg-muted"})]})]}),e.jsx("h4",{className:"text-xs font-medium text-muted-foreground mt-4 mb-2",children:"Avariados"}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-3",children:[e.jsxs("div",{children:[e.jsxs(f,{children:["Ardidos (g) ",e.jsx("span",{className:"text-muted-foreground font-normal",children:z(i.ardidos,$)})]}),e.jsx(p,{type:"number",step:"0.01",value:i.ardidos??"",onChange:a=>P("ardidos",a.target.value)})]}),e.jsxs("div",{children:[e.jsxs(f,{children:["Mofados (g) ",e.jsx("span",{className:"text-muted-foreground font-normal",children:z(i.mofados,$)})]}),e.jsx(p,{type:"number",step:"0.01",value:i.mofados??"",onChange:a=>P("mofados",a.target.value)})]}),e.jsxs("div",{children:[e.jsxs(f,{children:["Fermentados (g) ",e.jsx("span",{className:"text-muted-foreground font-normal",children:z(i.fermentados,$)})]}),e.jsx(p,{type:"number",step:"0.01",value:i.fermentados??"",onChange:a=>P("fermentados",a.target.value)})]}),e.jsxs("div",{children:[e.jsxs(f,{children:["Germinados (g) ",e.jsx("span",{className:"text-muted-foreground font-normal",children:z(i.germinados,$)})]}),e.jsx(p,{type:"number",step:"0.01",value:i.germinados??"",onChange:a=>P("germinados",a.target.value)})]}),e.jsxs("div",{children:[e.jsxs(f,{children:["Chochos/Imaturos (g) ",e.jsx("span",{className:"text-muted-foreground font-normal",children:z(i.chochos_imaturos,$)})]}),e.jsx(p,{type:"number",step:"0.01",value:i.chochos_imaturos??"",onChange:a=>P("chochos_imaturos",a.target.value)})]}),e.jsxs("div",{children:[e.jsxs(f,{children:["Gessado (g) ",e.jsx("span",{className:"text-muted-foreground font-normal",children:z(i.gessado,$)})]}),e.jsx(p,{type:"number",step:"0.01",value:i.gessado??"",onChange:a=>P("gessado",a.target.value)})]})]}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-3 mt-3",children:[e.jsxs("div",{children:[e.jsxs(f,{children:["Total Avariados (g) ",e.jsx("span",{className:"text-muted-foreground font-normal",children:z(ve(),$)}
41)]}),e.jsx(p,{type:"number",readOnly:!0,value:ve()??"",className:"bg-muted"})]}),e.jsxs("div",{children:[e.jsxs(f,{children:["Carunchados (g) ",e.jsx("span",{className:"text-muted-foreground font-normal",children:z(i.carunchados,$)})]}),e.jsx(p,{type:"number",step:"0.01",value:i.carunchados??"",onChange:a=>P("carunchados",a.target.value)})]}),e.jsxs("div",{children:[e.jsxs(f,{children:["Pedaços Grão Sadios (g) ",e.jsx("span",{className:"text-muted-foreground font-normal",children:z(Me,$)})]}),e.jsx(p,{type:"number",readOnly:!0,value:Me||"",className:"bg-muted"})]})]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-foreground mb-3 border-b pb-1",children:"3. Condição de Descarga"}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(We,{checked:i.presenca_odores||!1,onCheckedChange:a=>L("presenca_odores",!!a)}),e.jsx(f,{children:"Presença de Odores"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(We,{checked:i.presenca_insetos||!1,onCheckedChange:a=>L("presenca_insetos",!!a)}),e.jsx(f,{children:"Presença de Insetos"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(We,{checked:i.liberado_descarga??!0,onCheckedChange:a=>L("liberado_descarga",!!a)}),e.jsx(f,{children:"Liberado p/ Descarga"})]})]}),e.jsxs("div",{className:"mt-3",children:[e.jsx(f,{children:"Observações"}),e.jsx(ts,{value:i.observacoes||"",onChange:a=>L("observacoes",a.target.value),rows:2})]})]}),e.jsxs("div",{children:[e.jsx(f,{children:"Classificador"}),e.jsx(p,{value:i.classificador||"",onChange:a=>L("classificador",a.target.value)})]}),e.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[e.jsx(w,{variant:"outline",onClick:()=>ae(!1),children:"Cancelar"}),D&&e.jsxs(w,{variant:"outline",onClick:()=>{const a=q.find(s=>s.id===D);a&&pa(a)},children:[e.jsx(va,{className:"h-4 w-4 mr-1"})," Etiqueta Amostra"]}),e.jsx(w,{onClick:Ra,children:D?"Salvar Alterações":"Criar Laudo"})]})]})]})}),e.jsx(Be,{open:!!ce,onOpenChange:a=>!a&&Oe(null),children:e.jsxs(Qe,{className:"max-w-3xl",children:[e.jsx(Ge,{children:e.jsxs(He,{children:["Vincular laudo existente à ",ce?`OR-${String(ce.numero_ordem).padStart(4,"0")}`:""]})}),e.jsx("div",{className:"max-h-[60vh] overflow-y-auto",children:Te.length===0?e.jsx("p",{className:"text-sm text-muted-foreground text-center py-6",children:"Nenhum laudo sem OR disponível."}):e.jsxs(te,{children:[e.jsx(re,{children:e.jsxs(F,{children:[e.jsx(n,{children:"Nº"}),e.jsx(n,{children:"Data"}),e.jsx(n,{children:"Fornecedor"}),e.jsx(n,{children:"NF"}),e.jsx(n,{children:"Placa"}),e.jsx(n,{children:"Lote"}),e.jsx(n,{className:"w-24"})]})}),e.jsx(oe,{children:Te.map(a=>e.jsxs(F,{children:[e.jsx(o,{children:a.numero_ordem!=null?`OR-${String(a.numero_ordem).padStart(4,"0")}`:"—"}),e.jsx(o,{children:ee(a.data_recebimento)}),e.jsx(o,{children:a.fornecedor||"—"}),e.jsx(o,{children:a.nota_fiscal||"—"}),e.jsx(o,{children:a.placa||"—"}),e.jsx(o,{children:a.lote||"—"}),e.jsx(o,{children:e.jsxs(w,{size:"sm",onClick:()=>ce&&da(ce,a),children:[e.jsx(ke,{className:"h-3.5 w-3.5 mr-1"})," Vincular"]})})]},a.id))})]})})]})}),e.jsx(Be,{open:!!Y,onOpenChange:a=>!a&&Ie(null),children:e.jsxs(Qe,{className:"max-w-3xl",children:[e.jsx(Ge,{children:e.jsxs(He,{children:["Vincular OR existente ao laudo ",(Y==null?void 0:Y.numero_ordem)!=null?`OR-${String(Y.numero_ordem).padStart(4,"0")}`:""]})}),e.jsx("div",{className:"max-h-[60vh] overflow-y-auto",children:de.length===0?e.jsx("p",{className:"text-sm text-muted-foreground text-center py-6",children:"Nenhuma OR sem laudo disponível."}):e.jsxs(te,{children:[e.jsx(re,{children:e.jsxs(F,{children:[e.jsx(n,{children:"Nº Ordem"}),e.jsx(n,{children:"Ticket"}),e.jsx(n,{children:"Cliente"}),e.jsx(n,{children:"Produto"}),e.jsx(n,{children:"NF"}),e.jsx(n,{children:"Placa"}),e.jsx(n,{className:"w-24"})]})}),e.jsx(oe,{children:de.map(a=>e.jsxs(F,{children:[e.jsxs(o,{children:["OR-",String(a.numero_ordem).padStart(4,"0")]}),e.jsx(o,{children:a.ticket_balanca||"—"}),e.jsx(o,{children:a.cliente}),e.jsx(o,{children:a.produto}),e.jsx(o,{children:a.nf||a.nf_remessa}),e.jsx(o,{children:a.placa}),e.jsx(o,{children:e.jsxs(w,{size:"sm",onClick:()=>Y&&da(a,Y),children:[e.jsx(ke,{className:"h-3.5 w-3.5 mr-1"})," Vincular"]})})]},a.id))})]})})]})})]})}export{ks 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.