2
function removerProduto(id){
if(confirm("Remover?")) produtosRef.child(id).remove();
}
function cancelarEdicao(){
titulo.value="";descricao.value="";preco.value="";estoque.value="";
imagemProduto="";editando=null;
}
/* CARRINHO */
function addCarrinho(id){
if(!LOJA_ABERTA){ alert("A loja está fechada para pedidos!"); return; }
const p = listaProdutos.find(x=>x.id===id);
if(!p) return;
if((p.estoque||0)<=0){
alert("Sem estoque");
return;
}
produtosRef.child(id).child("estoque").transaction(e=>{
if(!e || e<=0) return e;
return e-1;
});
let item=carrinho.find(x=>x.id===id);
if(item) item.qtd++;
else carrinho.push({id:p.id,titulo:p.titulo,preco:Number(p.preco||0),qtd:1});
renderCarrinho();
}
function alterarQtd(id,delta){
let item=carrinho.find(x=>x.id===id);
if(!item) return;
const prod=listaProdutos.find(p=>p.id===id);
if(delta>0){
if((prod.estoque||0)<=0) return alert("Sem estoque");
produtosRef.child(id).child("estoque").transaction(e=>{
if(!e || e<=0) return e;
return e-1;
});
item.qtd++;
}else{
if(item.qtd>1){
produtosRef.child(id).child("estoque").transaction(e=>(e||0)+1);
item.qtd--;
}else{
removerDoCarrinho(id);
return;
}
}
renderCarrinho();
}
function removerDoCarrinho(id){
let item=carrinho.find(x=>x.id===id);
if(!item) return;
produtosRef.child(id).child("estoque").transaction(e=>(e||0)+item.qtd);
carrinho=carrinho.filter(x=>x.id!==id);
renderCarrinho();
}
function renderCarrinho(){
itens.innerHTML="";
let totalValor=0;
carrinho.forEach(p=>{
totalValor+=p.preco*p.qtd;
itens.innerHTML+=`
`;
});
total.innerText="Total: R$ "+totalValor.toFixed(2);
}
/* REGISTRAR VENDA */
function registrarVenda() {
let total = 0;
let itensVenda = [];
carrinho.forEach(p => {
total += p.preco * p.qtd;
itensVenda.push({
id: p.id,
titulo: p.titulo,
qtd: p.qtd,
total: p.preco * p.qtd
});
});
vendasRef.push({
data: Date.now(),
total: total,
itens: itensVenda
});
}
/* RELATORIO */
function toggleRelatorio() {
const div = document.getElementById("relatoriosBox");
div.style.display = div.style.display === "none" ? "block" : "none";
}
vendasRef.on("value", snap => {
let hojeTotal = 0, mesTotal = 0, geralTotal = 0, pedidos = 0;
let contadorProdutos = {};
const agora = new Date();
const diaHoje = agora.getDate();
const mesHoje = agora.getMonth();
const anoHoje = agora.getFullYear();
snap.forEach(s => {
const v = s.val();
pedidos++;
geralTotal += v.total;
const d = new Date(v.data);
if(d.getDate() === diaHoje && d.getMonth() === mesHoje && d.getFullYear() === anoHoje) {
hojeTotal += v.total;
}
if(d.getMonth() === mesHoje && d.getFullYear() === anoHoje) {
mesTotal += v.total;
}
(v.itens || []).forEach(i => {
if(!contadorProdutos[i.titulo]) contadorProdutos[i.titulo] = 0;
contadorProdutos[i.titulo] += i.qtd;
});
});
relHoje.innerText = hojeTotal.toFixed(2);
relMes.innerText = mesTotal.toFixed(2);
relTotal.innerText = geralTotal.toFixed(2);
relPedidos.innerText = pedidos;
let topNome = "Nenhum ainda";
let maior = 0;
for(let k in contadorProdutos){
if(contadorProdutos[k] > maior){
maior = contadorProdutos[k];
topNome = k;
}
${p.titulo}
R$ ${p.preco.toFixed(2)}
R$ ${p.preco.toFixed(2)}
${p.qtd}
Comentários
Postar um comentário