Entre com seu login e senha para continuar
Defina uma nova senha para o seu acesso de Administrador.
Use pelo menos 12 caracteres, com letra maiúscula, minúscula e número.
Catálogos completos de produtos, em PDF.
Toque em "Baixar PDF" para salvar o catálogo no seu dispositivo.
Especificação técnica de cada produto, em PDF.
Ainda faltam as fichas dos outros produtos Nova Era e de toda a linha New Green — assim que vocês me enviarem, eu adiciono aqui.
Preencha os dados abaixo para cadastrar um novo cliente.
| Insumo | Qtd | Preço R$ | Perda % | CIC |
|---|
Nenhum rascunho salvo ainda para ${curBrand().label}.
`; return; } wrap.innerHTML = drafts.map(d => `Nenhum rascunho salvo ainda.
`; return; } wrap.innerHTML = drafts.map(d => `Nenhum pedido gerado ainda para ${curBrand().label}. Toda vez que você clicar em "Gerar PDF do pedido", "Enviar por WhatsApp" ou "Enviar por e-mail" dentro de Gerar Pedido, ele fica registrado aqui.
`; return; } // agrupa por mês (a partir da data do pedido, não da data em que foi salvo) const byMonth = {}; orders.forEach(o => { const d = new Date(o.dataPedido + 'T00:00:00'); const key = `${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,'0')}`; if(!byMonth[key]) byMonth[key] = { label: d.toLocaleDateString('pt-BR', {month:'long', year:'numeric'}), orders:[], total:0 }; byMonth[key].orders.push(o); byMonth[key].total += o.totalComFrete; }); const monthKeys = Object.keys(byMonth).sort().reverse(); body.innerHTML = monthKeys.map(key => { const m = byMonth[key]; return `Nenhum cenário salvo ainda para ${curBrand().label}.
` : ''} ${list.map(sc => `Mantendo o preço de venda, IPI e demais condições atuais desse produto — o ICMS muda por estado e o frete recalcula pela parametrização de cada estado (ou fica manual, conforme configurado). O ICMS-ST fica zerado para SP, como no resto do app.
| UF | ICMS | Margem sem IPI/ST | Margem com IPI/ST |
|---|---|---|---|
| ${r.code}${r.isCurrent ? ' atual' : ''} | ${fmtPct(r.icms)} | ${fmtPct2(r.AM)} | ${fmtPct2(r.AT)} |