diff --git a/src-tauri/src/plugins/supabase.rs b/src-tauri/src/plugins/supabase.rs index 1ed3130..2e580a1 100644 --- a/src-tauri/src/plugins/supabase.rs +++ b/src-tauri/src/plugins/supabase.rs @@ -140,6 +140,7 @@ impl SupabaseClient { "observacoes": estado.get("observacoes").and_then(|v| v.as_str()).unwrap_or(""), "clientes": estado.get("clientes").and_then(|v| v.as_i64()).unwrap_or(0), "frango": estado.get("frango").and_then(|v| v.as_i64()).unwrap_or(0), + "vendas": estado.get("vendas").and_then(|v| v.as_f64()).unwrap_or(0.0), }); // Primeiro tenta INSERT (upsert via Prefer) diff --git a/src/index.html b/src/index.html index f30a88a..b04b82a 100644 --- a/src/index.html +++ b/src/index.html @@ -427,6 +427,17 @@ + +
+
📦 Vendas
+
+
+ + +
+
+
+
👥 Clientes & Frango Assado
@@ -593,7 +604,7 @@ let estado = { despesas: [], sangrias: [], pixcnpj: [], vales: [], receber: [], cancelamentos: [], cartoes: { credito: [], debito: [], alimentacao: [], pix: [] }, fechamento_contado: { dinheiro: 0, cartoes: 0, receber: 0 }, - clientes: 0, frango: 0, // contadores + clientes: 0, frango: 0, vendas: 0, // contadores observacoes: '', id_local: null, sync_status: 'local' }; @@ -1119,6 +1130,7 @@ function buildEstadoForBackend() { observacoes: estado.observacoes, clientes: estado.clientes, frango: estado.frango, + vendas: estado.vendas, sync_status: estado.sync_status, }; } @@ -1137,6 +1149,7 @@ function saveState() { }; estado.clientes = parseInt(document.getElementById('f-clientes').value) || 0; estado.frango = parseInt(document.getElementById('f-frango').value) || 0; + estado.vendas = parseFloat(document.getElementById('f-vendas').value) || 0; estado.updatedAt = new Date().toISOString(); try { localStorage.setItem(LS_KEY, JSON.stringify(estado)); } catch(e) {} } @@ -1158,6 +1171,7 @@ function loadState() { estado.observacoes = saved.observacoes || ''; estado.clientes = saved.clientes || 0; estado.frango = saved.frango || 0; + estado.vendas = saved.vendas || 0; estado.sync_status = saved.sync_status || 'local'; // Restore tables (always as arrays of objects) estado.despesas = Array.isArray(saved.despesas) ? saved.despesas : []; @@ -1741,6 +1755,7 @@ function buildReportHTML(data) {
👥 Clientes:${data.clientes || 0}
🍗 Frango Assado:${data.frango || 0}
+
💰 Vendas:${fmt(data.vendas || 0)}

ID: ${data.loja}_${data.data}_${data.operador}
@@ -1957,6 +1972,7 @@ function openConfirmModal() {
❌ Cancelamentos: ${fmt(cancelamentos)}
👥 Clientes: ${estado.clientes || 0}
🍗 Frango Assado: ${estado.frango || 0}
+
💰 Vendas: ${fmt(estado.vendas || 0)}
📋 Fechamento (contado): ${fmt(fechamento)}
🖥️ Total Sistema: ${fmt(sysTotal)}

@@ -2318,6 +2334,7 @@ function buildRelatorioModal(full) {
Total Despesas${fmtMoney(totalDespesas)}
Clientes${clientes}
Frango Assado${frango}
+
Vendas${fmtMoney(full.vendas || 0)}
@@ -2392,6 +2409,10 @@ function buildRelatorioModal(full) { +
+ + +
📋 Meta / Observacoes:
@@ -2406,7 +2427,7 @@ function buildRelatorioModal(full) {
- +
@@ -2437,6 +2458,7 @@ window.abrirFechamentoEdicao = function(full) { estado.turno = dados.turno || full.turno || ''; estado.clientes = dados.clientes ?? full.clientes ?? 0; estado.frango = dados.frango ?? full.frango ?? 0; + estado.vendas = dados.vendas ?? full.vendas ?? 0; estado.observacoes = dados.observacoes || full.observacoes || ''; estado.saldo_esperado = dados.saldo_esperado ?? full.saldo_esperado ?? 0; @@ -2466,6 +2488,7 @@ window.abrirFechamentoEdicao = function(full) { setVal('f-turno', estado.turno); setVal('f-clientes', estado.clientes); setVal('f-frango', estado.frango); + setVal('f-vendas', estado.vendas); // Renderiza todas as tabelas com os dados restaurados renderTable('tbl-sangrias', estado.sangrias); @@ -2567,6 +2590,7 @@ window.salvarEdicaoConsulta = async function() { total_despesas: p(inp('edit-despesas')), clientes: parseInt(inp('edit-clientes') || '0'), frango: parseInt(inp('edit-frango') || '0'), + vendas: p(inp('edit-vendas')), saldo_esperado: p(inp('edit-esperado')), observacoes: inp('edit-obs') };