1import{u as B,r as k,j as e}from"./react-vendor-BorBU4Bs.js";import{a as z}from"./query-vendor-dlntIC_S.js";import{b as K,B as w,A as W,cd as O,K as F,an as U,ao as M,dv as G,M as Q,dV as T,n as J,P as X,o as L,N as Y,O as Z,Q as H,U as q,V as ee,s as E,D as te,i as ae,j as se,k as oe,L as S,I as y,J as ie,W as _,T as le}from"./index-DkhxOMdR.js";import{u as ne}from"./useLabelConfig-B0Or7kgL.js";import{g as R,e as r,f as $,b as re}from"./labelTemplate-DcdOT5Ix.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 de(t,s,i){const x=t.qrPayload&&t.qrPayload.length>0?t.qrPayload:`${s}/rastreabilidade?lote=${encodeURIComponent(t.lote||"")}&codigo=${encodeURIComponent(t.codigo||"")}`,d=re(x,600),n=t.emissao||new Date().toISOString().slice(0,10);return i?` 2 <div class="label compact"> 3 <div class="c-qr"> 4 <img src="${d}" alt="QR" /> 5 <div class="c-cod">${r(t.codigo||"â")}</div> 6 </div> 7 <div class="c-body"> 8 <div class="c-nome">${r(t.nome||"â")}</div> 9 <div class="c-grid"> 10 <span><b>Lote:</b> ${r(t.lote||"â")}</span> 11 <span><b>Peso:</b> ${t.peso?r(`${t.peso} kg`):"â"}</span> 12 <span><b>Val.:</b> ${r($(t.validade))}</span> 13 <span><b>Emis.:</b> ${r($(n))}</span> 14 ${t.paletTotal?`<span><b>Palet:</b> ${r(String(t.paletIndex??1))} de ${r(String(t.paletTotal))}</span>`:""} 15 ${t.unidadesPorPalet?`<span><b>Qtd:</b> ${r(String(t.unidadesPorPalet))}</span>`:""} 16 ${t.ordem?`<span><b>OR:</b> ${r(t.ordem)}</span>`:""} 17 ${t.cliente?`<span class="c-full"><b>Cliente:</b> ${r(t.cliente)}</span>`:""} 18 </div> 19 </div> 20 </div>`:` 21 <div class="label amostra"> 22 <header class="hd"> 23 <div class="hd-eyebrow">CONTROLE DE ESTOQUE</div> 24 <div class="hd-title">ETIQUETA DE ESTOQUE</div> 25 </header> 26 27 <section class="id-block"> 28 <div class="id-eyebrow">CÃDIGO DO PRODUTO</div> 29 <div class="id-code">${r(t.codigo||"â")}</div> 30 </section> 31 32 <section class="qr-block"> 33 <div class="qr-frame"> 34 <img src="${d}" alt="QR" /> 35 </div> 36 <div class="qr-hint">Escaneie para ver a rastreabilidade</div> 37 </section> 38 39 <section class="info-grid"> 40 <div class="info-cell info-full"> 41 <div class="info-label">Produto</div> 42 <div class="info-value">${r(t.nome||"â")}</div> 43 </div> 44 ${t.paletTotal?`<div class="info-cell"> 45 <div class="info-label">Palet</div> 46 <div class="info-value">${r(String(t.paletIndex??1))} de ${r(String(t.paletTotal))}</div> 47 </div> 48 <div class="info-cell"> 49 <div class="info-label">Qtd. no palet</div> 50 <div class="info-value">${t.unidadesPorPalet?r(String(t.unidadesPorPalet)):"â"}</div> 51 </div>`:""} 52 ${t.ordem?`<div class="info-cell"> 53 <div class="info-label">Recebimento</div> 54 <div class="info-value">${r(t.ordem)}</div> 55 </div> 56 <div class="info-cell"> 57 <div class="info-label">Cliente</div> 58 <div class="info-value">${r(t.cliente||"â")}</div> 59 </div>`:""} 60 <div class="info-cell"> 61 <div class="info-label">Lote</div> 62 <div class="info-value">${r(t.lote||"â")}</div> 63 </div> 64 <div class="info-cell"> 65 <div class="info-label">Peso</div> 66 <div class="info-value">${t.peso?r(`${t.peso} kg`):"â"}</div> 67 </div> 68 <div class="info-cell"> 69 <div class="info-label">Validade</div> 70 <div class="info-value">${r($(t.validade))}</div> 71 </div> 72 <div class="info-cell"> 73 <div class="info-label">Emissão</div> 74 <div class="info-value">${r($(n))}</div> 75 </div> 76 </section> 77 78 <footer class="ft"> 79 <div class="ft-cap"> 80 <span class="ft-cap-label">Emissão</span> 81 <span class="ft-cap-value">${r($(n))}</span> 82 </div> 83 <div class="ft-brand">3BS · Estoque</div> 84 </footer> 85 </div>`}function ce(t){const s=Number.isFinite(t.margemEsquerda)?t.margemEsquerda:2,i=Number.isFinite(t.margemDireita)?t.margemDireita:2,x=Number.isFinite(t.margemSuperior)?t.margemSuperior:2,d=Number.isFinite(t.margemInferior)?t.margemInferior:2,n=Number(t.largura)>20?Number(t.largura):100,l=Number(t.altura)>20?Number(t.altura):150,f=n-s-i,h=l-x-d,b=Math.max(14,Math.min(h-8,28));return` 86 @page { size: ${n}mm ${l}mm; margin: ${x}mm ${i}mm ${d}mm ${s}mm; } 87 * { box-sizing: border-box; margin: 0; padding: 0; } 88 html, body { font-family: 'Segoe UI', 'Helvetica Neue', Arial, sans-serif; color: #000; background: #fff; } 89 body { display: flex; flex-direction: column; align-items: center; } 90 .label { width: ${f}mm; height: ${h}mm; overflow: hidden; page-break-after: always; } 91 .label:last-child { page-break-after: auto; } 92 .label.compact { 93 display: flex; align-items: stretch; gap: 2mm; 94 border: 1px solid #000; border-radius: 1.5mm; padding: 1.5mm 2mm; 95 } 96 .c-qr { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.6mm; flex: 0 0 auto; } 97 .c-qr img { width: ${b}mm; height: ${b}mm; display: block; image-rendering: pixelated; } 98 .c-cod { font-size: 8pt; font-weight: 800; letter-spacing: 0.3px; text-align: center; word-break: break-all; } 99 .c-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 0.8mm; } 100 .c-nome { font-size: 9pt; font-weight: 800; line-height: 1.1; text-transform: uppercase; 101 display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } 102 .c-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.4mm 1.5mm; font-size: 7pt; line-height: 1.2; } 103 .c-grid span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } 104 .c-grid b { font-weight: 700; } 105 .c-grid .c-full { grid-column: 1 / -1; } 106 .label.amostra { 107 margin: 0 auto; padding: 2.5mm 3.5mm 2mm; 108 display: flex; flex-direction: column; align-items: stretch; gap: 1.8mm; 109 } 110 .hd { text-align: center; border-bottom: 1.5px solid #000; padding-bottom: 1mm; } 111 .hd-eyebrow { font-size: 6pt; font-weight: 600; letter-spacing: 2.5px; color: #555; text-transform: uppercase; } 112 .hd-title { margin-top: 0.4mm; font-size: 11pt; font-weight: 800; letter-spacing: 1.2px; text-transform: uppercase; } 113 .id-block { background: #000; color: #fff; border-radius: 1.5mm; padding: 1.6mm 2.5mm; text-align: center; } 114 .id-eyebrow { font-size: 6pt; font-weight: 700; letter-spacing: 2px; opacity: 0.8; text-transform: uppercase; } 115 .id-code { margin-top: 0.5mm; font-size: 17pt; font-weight: 800; line-height: 1; letter-spacing: 0.5px; word-break: break-all; } 116 .qr-block { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.8mm; flex: 0 0 auto; } 117 .qr-frame { padding: 1.2mm; border: 1px solid #000; border-radius: 1.5mm; background: #fff; display: flex; align-items: center; justify-content: center; } 118 .qr-frame img { width: 32mm; height: 32mm; display: block; image-rendering: pixelated; } 119 .qr-hint { font-size: 6.5pt; font-style: italic; color: #333; text-align: center; } 120 .info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2mm; } 121 .info-cell { border: 1px solid #000; border-radius: 1.2mm; padding: 1mm 1.6mm; min-height: 7mm; display: flex; flex-direction: column; justify-content: center; } 122 .info-cell.info-full { grid-column: 1 / -1; } 123 .info-label { font-size: 5.8pt; font-weight: 700; letter-spacing: 1px; color: #555; text-transform: uppercase; margin-bottom: 0.2mm; } 124 .info-value { font-size: 8pt; font-weight: 700; line-height: 1.1; word-break: break-word; } 125 .ft { margin-top: auto; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid #000; padding-top: 1mm; } 126 .ft-cap { display: flex; align-items: baseline; gap: 1.2mm; } 127 .ft-cap-label { font-size: 6pt; font-weight: 700; letter-spacing: 1px; color: #555; text-transform: uppercase; } 128 .ft-cap-value { font-size: 8pt; font-weight: 800; } 129 .ft-brand { font-size: 6pt; font-weight: 700; letter-spacing: 1.2px; color: #555; text-transform: uppercase; } 130 @media print { body { -webkit-print-color-adjust: exact; print-color-adjust: exact; } } 131 `}function me(t,s,i){return`<!doctype html><html><head><meta charset="utf-8"><title>${r(t)}</title> 132<style>${ce(s)}</style></head> 133<body> 134 ${i} 135 <script> 136 window.addEventListener('load', () => { setTimeout(() => { window.print(); }, 350); }); 137 <\/script> 138</body></html>`}function ue(t){const s=document.createElement("iframe");s.setAttribute("aria-hidden","true"),s.style.position="fixed",s.style.right="0",s.style.bottom="0",s.style.width="0",s.style.height="0",s.style.border="0",s.srcdoc=t,
138s.onload=()=>{try{const i=s.contentWindow;i&&(i.focus(),i.print())}catch{}setTimeout(()=>{try{s.remove()}catch{}},6e4)},document.body.appendChild(s)}function A(t,s){if(t.length===0)return;const i=R(),d=(Number(s.altura)>20?Number(s.altura):150)<110,n=t.map(h=>de(h,i,d)).join(` 139`),l=me(`Etiquetas de Estoque (${t.length})`,s,n),f=window.open("","_blank","width=520,height=780");if(f){f.document.write(l),f.document.close();return}ue(l)}const V=()=>({id:crypto.randomUUID(),codigo:"",nome:"",validade:"",lote:"",peso:"",copias:1});function pe({ordem:t,onClose:s,onPrint:i}){const[x,d]=k.useState("1"),[n,l]=k.useState(""),[f,h]=k.useState(0),{data:b=[]}=z({queryKey:["etiquetas-estoque:itens-or",t.id],queryFn:async()=>{const{data:u,error:v}=await E.from("recebimento_conferencia_itens").select("cod_produto, produto, lote, data_validade, peso_unitario, peso_total, quantidade").eq("ordem_recebimento_id",t.id);if(v)throw v;const I=u??[],N=new Map;return I.forEach(g=>{const D=`${g.cod_produto??""}|${g.lote??""}|${g.data_validade??""}`,P=N.get(D);P?(P.quantidade=(P.quantidade??0)+(Number(g.quantidade)||0),P.peso_total=(P.peso_total??0)+(Number(g.peso_total)||0)):N.set(D,{cod_produto:g.cod_produto??null,produto:g.produto??null,lote:g.lote??null,data_validade:g.data_validade??null,peso_unitario:g.peso_unitario!=null?Number(g.peso_unitario):null,peso_total:Number(g.peso_total)||0,quantidade:Number(g.quantidade)||0})}),Array.from(N.values())}}),C={cod_produto:t.cod_produto??null,produto:t.produto??null,lote:null,data_validade:null,peso_unitario:null,peso_total:null,quantidade:null},j=b.length>0?b:[C],a=j[Math.min(f,j.length-1)],o=Math.max(1,Number(x)||1),c=Math.max(0,Number(n)||0),m=a.peso_unitario!=null&&c>0?(a.peso_unitario*c).toFixed(3):a.peso_total!=null&&o>0?(Number(a.peso_total)/o).toFixed(3):"",p=()=>{const u=R(),v=String(a.cod_produto??"").trim(),I=[];for(let N=1;N<=o;N++)I.push({codigo:v,nome:a.produto??"",lote:a.lote,validade:a.data_validade,peso:m||null,ordem:T(t.numero_ordem),cliente:t.cliente??null,paletIndex:N,paletTotal:o,unidadesPorPalet:c||null,qrPayload:`${u}/rastreabilidade?lote=${encodeURIComponent(a.lote||"")}&codigo=${encodeURIComponent(v)}`});i(I)};return e.jsx(te,{open:!0,onOpenChange:u=>{u||s()},children:e.jsxs(ae,{className:"max-w-lg",children:[e.jsx(se,{children:e.jsxs(oe,{children:["Etiquetas · ",T(t.numero_ordem)]})}),e.jsxs("div",{className:"space-y-4",children:[j.length>1&&e.jsxs("div",{children:[e.jsx(S,{className:"text-xs",children:"Produto recebido"}),e.jsx("select",{className:"mt-1 w-full h-10 rounded-md border border-input bg-background px-3 text-sm",value:f,onChange:u=>h(Number(u.target.value)),children:j.map((u,v)=>e.jsxs("option",{value:v,children:[u.produto," ",u.lote?`· Lote ${u.lote}`:""]},v))})]}),e.jsxs("div",{className:"rounded-md border p-3 text-sm space-y-1",children:[e.jsx("p",{className:"font-semibold",children:a.produto||"â"}),e.jsxs("p",{className:"text-muted-foreground text-xs",children:["Cód. ",a.cod_produto||"â"," · Lote ",a.lote||"â"," · Validade ",$(a.data_validade)]}),e.jsxs("p",{className:"text-muted-foreground text-xs",children:["Cliente: ",t.cliente||"â"," · Qtd. c
139onferida: ",a.quantidade??"â"," · Peso total:"," ",a.peso_total!=null?`${Number(a.peso_total).toFixed(3)} kg`:"â"]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{children:[e.jsx(S,{className:"text-xs",children:"Qtd. de palets"}),e.jsx(y,{type:"number",min:1,value:x,onChange:u=>d(u.target.value)})]}),e.jsxs("div",{children:[e.jsx(S,{className:"text-xs",children:"Produtos por palet"}),e.jsx(y,{type:"number",min:0,value:n,onChange:u=>l(u.target.value),placeholder:"Ex: 40"})]})]}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:["Serão geradas ",o," etiqueta(s) â uma por palet",m?`, com ${m} kg por palet`:"","."]})]}),e.jsxs(ie,{children:[e.jsx(w,{variant:"outline",onClick:s,children:"Cancelar"}),e.jsxs(w,{onClick:p,children:[e.jsx(L,{className:"h-4 w-4 mr-1"})," Imprimir etiquetas"]})]})]})})}function xe(){return z({queryKey:["etiquetas-estoque:produtos"],queryFn:async()=>{const{data:t,error:s}=await E.from("estoque_itens").select("codigo, nome").eq("ativo",!0).order("nome");if(s)throw s;return t??[]}})}function fe(t){const s=t.trim();return z({enabled:s.length>0,queryKey:["etiquetas-estoque:lotes",s],queryFn:async()=>{const[i,x]=await Promise.all([E.from("amostras").select("lote, data_validade, data_coleta").eq("codigo_produto",s).not("lote","is",null).order("data_coleta",{ascending:!1}).limit(200),E.from("estoque_lancamentos").select("lote, data_evento").eq("codigo_produto",s).not("lote","is",null).order("data_evento",{ascending:!1}).limit(200)]),d=new Map;return(i.data??[]).forEach(n=>{const l=String(n.lote??"").trim();l&&(d.has(l)?!d.get(l).validade&&n.data_validade&&(d.get(l).validade=n.data_validade):d.set(l,{lote:l,validade:n.data_validade??null}))}),(x.data??[]).forEach(n=>{const l=String(n.lote??"").trim();l&&(d.has(l)||d.set(l,{lote:l,validade:null}))}),Array.from(d.values())}})}function ge({it:t,produtos:s,onChange:i,onPrint:x,onRemove:d,canRemove:n}){const{data:l=[]}=fe(t.codigo),f=a=>{const o={codigo:a},c=s.find(m=>{var p;return((p=m.codigo)==null?void 0:p.toLowerCase())===a.trim().toLowerCase()});c&&(o.nome=c.nome),a!==t.codigo&&(o.lote="",o.validade=""),i(o)},h=a=>{const o=a.replace(/[,\s]/g,""),c={lote:o},m=l.find(p=>p.lote===o);m!=null&&m.validade&&(c.validade=m.validade),i(c)},b=`produtos-${t.id}`,C=`lotes-${t.id}`,j=`nomes-${t.id}`;return e.jsxs(H,{children:[e.jsxs(_,{children:[e.jsx(y,{list:b,value:t.codigo,onChange:a=>f(a.target.value),placeholder:"Ex: 7074"}),e.jsx("datalist",{id:b,children:s.map(a=>e.jsx("option",{value:a.codigo,children:a.nome},a.codigo))})]}),e.jsxs(_,{children:[e.jsx(y,{list:j,value:t.nome,onChange:a=>{const o=a.target.value,c={nome:o},m=s.find(p=>{var u;return((u=p.nome)==null?void 0:u.toLowerCase())===o.trim().toLowerCase()});m&&(c.codigo=m.codigo),i(c)},placeholder:"Nome do produto"}),e.jsx("datalist",{id:j,children:s.map(a=>e.jsx("option",{value:a.nome,children:a.codigo},a.codigo))})]}),e.jsxs(_,{children:[e.jsx(y,{list:C,value:t.lote,onChange:a=>h(a.target.value),placeholder:l.length?"Selecione ou digite":"Digite o lote"}),e.jsx("datalist",{id:C,children:l.map(a=>e.jsx("option",{value:a.lote,children:a.validade?`Validade ${$(a.validade)}`:""},a.lote))})]}),e.jsx(_,{children:e.jsx(y,{type:"date",value:t.validade,onChange:a=>i({validade:a.target.value})})}),e.jsx(_,{children:e.jsx(y,{inputMode:"decimal",value:t.peso,onChange:a=>i({peso:a.target.value.replace(",",".")}),placeholder:"0,000"})}),e.jsx(_,{children:e.jsx(y,{type:"number",min:1,value:t.copias,onChange:a=>i({copias:Math.max(1,Number(a.target.value)||1)})})}),e.jsx(_,{className:"text-right",children:e.jsxs("div",{className:"flex justify-end gap-1",children:[e.jsx(w,{variant:"outline",size:"sm",onClick:x,children:e.jsx(L,{className:"h-4 w-4"})}),e.jsx(w,{variant:"ghost",size:"sm",onClick:d,disabled:!n,children:e.jsx(le,{className:"h-4 w-4"})})]})})]})}function Ce(){const t=B(),{toast:s}=K(),{config:i}=ne(),{data:x=[]}=xe(),[d,n]=k.useState([V()]),[l,f]=k.useState(null),{data:h=[]}=z({queryKey:["etiquetas-estoque:ordens-fabrica"],queryFn:async()=>{const{data:a,error:o}=await E.from("ordens_recebimento").select("id, numero_ordem, produto, c
139od_produto, cliente, nf, nf_remessa, status, local_estoque, tipo, data_finalizacao, created_at").eq("excluida",!1).eq("status","finalizado").neq("tipo","nf_papel").not("local_estoque","is",null).ilike("local_estoque","FABRICA%").order("numero_ordem",{ascending:!1}).limit(40);if(o)throw o;return a??[]}}),b=(a,o)=>{n(c=>c.map(m=>m.id===a?{...m,...o}:m))},C=a=>{const c=`${R()}/rastreabilidade?lote=${encodeURIComponent(a.lote||"")}&codigo=${encodeURIComponent(a.codigo||"")}`;return{codigo:a.codigo,nome:a.nome,lote:a.lote,peso:a.peso,validade:a.validade,qrPayload:c}},j=a=>{const c=(a?[a]:d).filter(p=>p.codigo.trim()||p.nome.trim()||p.lote.trim());if(c.length===0){s({title:"Nada para imprimir",description:"Preencha pelo menos uma etiqueta.",variant:"destructive"});return}const m=[];c.forEach(p=>{const u=Math.max(1,Number(p.copias)||1);for(let v=0;v<u;v++)m.push(C(p))}),A(m,i)};return e.jsxs("div",{className:"max-w-6xl mx-auto",children:[e.jsxs(w,{variant:"ghost",size:"sm",className:"-ml-2 mb-4",onClick:()=>t("/controle-estoque"),children:[e.jsx(W,{className:"h-4 w-4 mr-2"})," Voltar"]}),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(O,{className:"h-6 w-6"})}),e.jsx("h1",{className:"text-2xl font-bold text-foreground",children:"Etiquetas de Estoque"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Gere e imprima etiquetas com Código, Nome, Validade, Lote e Peso"})]}),e.jsxs(F,{className:"mb-6",children:[e.jsxs(U,{className:"pb-2",children:[e.jsxs(M,{className:"text-base flex items-center gap-2",children:[e.jsx(G,{className:"h-4 w-4 text-primary"})," Recebimentos da Fábrica finalizados"]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Escolha uma OR finalizada e informe a quantidade de palets e de produtos por palet para imprimir as etiquetas."})]}),e.jsx(Q,{children:h.length===0?e.jsx("p",{className:"text-sm text-muted-foreground py-2",children:"Nenhum recebimento da fábrica finalizado."}):e.jsx("div",{className:"max-h-72 overflow-y-auto divide-y",children:h.map(a=>e.jsxs("div",{className:"flex items-center justify-between gap-3 py-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-semibold text-sm",children:T(a.numero_ordem)}),e.jsx(J,{variant:"outline",className:"text-[10px]",children:a.local_estoque})]}),e.jsxs("p",{className:"text-xs text-muted-foreground truncate",children:[a.produto||"â"," · ",a.cliente||"â"," · NF ",a.nf||a.nf_remessa||"â"]})]}),e.jsxs(w,{variant:"outline",size:"sm",onClick:()=>f(a),children:[e.jsx(O,{className:"h-4 w-4 mr-1"})," Etiquetas"]})]},a.id))})})]}),l&&e.jsx(pe,{ordem:l,onClose:()=>f(null),onPrint:a=>{A(a,i),f(null)}}),e.jsxs(F,{children:[e.jsxs(U,{className:"flex-row items-center justify-between space-y-0",children:[e.jsx(M,{className:"text-base",children:"Itens"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(w,{variant:"outline",size:"sm",onClick:()=>n(a=>[...a,V()]),children:[e.jsx(X,{className:"h-4 w-4 mr-1"})," Adicionar"]}),e.jsxs(w,{size:"sm",onClick:()=>j(),children:[e.jsx(L,{className:"h-4 w-4 mr-1"})," Imprimir todas"]})]})]}),e.jsxs(Q,{children:[e.jsx("div",{className:"overflow-x-auto",children:e.jsxs(Y,{children:[e.jsx(Z,{children:e.jsxs(H,{children:[e.jsx(q,{className:"w-[140px]",children:"Cód. Produto"}),e.jsx(q,{children:"Nome"}),e.jsx(q,{className:"w-[140px]",children:"Lote"}),e.jsx(q,{className:"w-[150px]",children:"Validade"}),e.jsx(q,{className:"w-[120px]",children:"Peso (kg)"}),e.jsx(q,{className:"w-[90px]",children:"Cópias"}),e.jsx(q,{className:"w-[150px] text-right",children:"Ações"})]})}),e.jsx(ee,{children:d.map(a=>e.jsx(ge,{it:a,produtos:x,onChange:o=>b(a.id,o),onPrint:()=>j(a),onRemove:()=>n(o=>o.length>1?o.filter(c=>c.id!==a.id):o),canRemove:d.length>1},a.id))})]})}),e.jsx("p",{className:"text-xs text-muted-foreground mt-4",children:"Digite o código para preencher o nome automaticamente. Ao escolher um lote já cadastrado, a validade é preenchida."})]})]})]})}export{Ce 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.