Controle de Pedidos

Acesso à operação Gods Salgados

Controle de
Pedidos
Rede Local • Multiusuário
•••Mais
AD
Administrador Online
Visão Geral da Operação

Acompanhe seus pedidos em tempo real

Sabor que aproxima!
☷   Pedidos do DiaLista de pedidos conforme os filtros selecionados
▦   Cards
Indicadores do mês atual

Pedidos por status

Pedidos recebidos por dia

Produção e perdas

Produtos com maiores perdas

ProdutoPlanejadoProduzidoPerdas% PerdaResponsávelEquipeStatusInícioFimAções
`);w.document.close()} $("status").innerHTML=statuses.map(s=>``).join(""); checkLogin().then(ok=>{if(ok){loadColabs();loadProdutos();load();setInterval(load,2000)}}); async function loadDashboard(){ let r=await fetch("/api/dashboard"); if(!r.ok)return; let d=await r.json(); $("dashPeriodo").textContent=`${d.periodo.inicio.split("-").reverse().join("/")} a ${d.periodo.fim.split("-").reverse().join("/")}`; let p=d.pedidos,q=d.producao; let money=v=>Number(v||0).toLocaleString("pt-BR",{style:"currency",currency:"BRL"}); let num=v=>Number(v||0).toLocaleString("pt-BR",{maximumFractionDigits:1}); $("dashKpis").innerHTML=[ ["Pedidos no mês",p.total],["Em aberto",p.abertos],["Entregues",p.entregues], ["Pedidos atrasados",p.atrasados],["Valor dos pedidos",money(p.valor)], ["Tempo médio separação",num(p.tempo_medio_separacao)+" min"] ].map(x=>`
${x[1]}${x[0]}
`).join(""); let sts=Object.entries(p.status||{}), mx=Math.max(1,...sts.map(x=>x[1])); $("dashStatus").innerHTML=sts.length?sts.map(([k,v])=>`
${esc(k)}
${v}
`).join(""):"Sem pedidos no período."; let days=p.por_dia||[], dm=Math.max(1,...days.map(x=>x.qtd)); $("dashDias").innerHTML=days.length?days.map(x=>`
`).join(""):"Sem dados"; $("dashProd").innerHTML=`
${num(q.planejado)}Quantidade planejada
${num(q.produzido)}Quantidade produzida
${num(q.perdas)}Perdas registradas
${num(q.perda_pct)}%Percentual de perdas
`; let losses=q.top_perdas||[], lm=Math.max(1,...losses.map(x=>x.perdas)); $("dashPerdas").innerHTML=losses.length?losses.map(x=>`
${esc(x.produto).slice(0,22)}
${num(x.perdas)}
`).join(""):"Ainda não há perdas registradas."; }