From 9ac4eb7042b75552c48b0c1e7f2c9331c08a267c Mon Sep 17 00:00:00 2001 From: root Date: Fri, 26 Jun 2026 21:55:44 +0000 Subject: [PATCH] v1.3.27: buildEstadoForBackend envia TODOS totais pro Postgres (colunas SQL) --- src-tauri/src/plugins/supabase.rs | 8 +++---- src/index.html | 36 ++++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/src-tauri/src/plugins/supabase.rs b/src-tauri/src/plugins/supabase.rs index 6d9e5d8..9ab8a01 100644 --- a/src-tauri/src/plugins/supabase.rs +++ b/src-tauri/src/plugins/supabase.rs @@ -131,10 +131,10 @@ impl SupabaseClient { "total_vales": estado.get("total_vales").and_then(|v| v.as_f64()).unwrap_or(0.0), "total_pixcnpj": estado.get("total_pixcnpj").and_then(|v| v.as_f64()).unwrap_or(0.0), "total_areceber": estado.get("total_areceber").and_then(|v| v.as_f64()).unwrap_or(0.0), - "total_cartao_credito": estado.get("total_credito").and_then(|v| v.as_f64()).unwrap_or(0.0), - "total_cartao_debito": estado.get("total_debito").and_then(|v| v.as_f64()).unwrap_or(0.0), - "total_cartao_alimentacao": estado.get("total_alimentacao").and_then(|v| v.as_f64()).unwrap_or(0.0), - "total_cartao_pix": estado.get("total_pix").and_then(|v| v.as_f64()).unwrap_or(0.0), + "total_cartao_credito": estado.get("total_cartao_credito").and_then(|v| v.as_f64()).unwrap_or(0.0), + "total_cartao_debito": estado.get("total_cartao_debito").and_then(|v| v.as_f64()).unwrap_or(0.0), + "total_cartao_alimentacao": estado.get("total_cartao_alimentacao").and_then(|v| v.as_f64()).unwrap_or(0.0), + "total_cartao_pix": estado.get("total_cartao_pix").and_then(|v| v.as_f64()).unwrap_or(0.0), "saldo_esperado": estado.get("saldo_esperado").and_then(|v| v.as_f64()).unwrap_or(0.0), "dados": estado, "observacoes": estado.get("observacoes").and_then(|v| v.as_str()).unwrap_or(""), diff --git a/src/index.html b/src/index.html index e84f5af..e5a1cc6 100644 --- a/src/index.html +++ b/src/index.html @@ -1059,6 +1059,18 @@ const LS_KEY = 'fc_v7'; const CFG_KEY = 'fc_cfg'; function buildEstadoForBackend() { + // Calcula totais das tabelas (mesma lógica do updateTotals) + const sangriasTotal = estado.sangrias.reduce((s, r) => s + (parseNum(r['retirada'] || 0) || 0), 0); + const despesasTotal = estado.despesas.reduce((s, r) => s + (parseNum(r['valor'] || 0) || 0), 0); + const pixcnpjTotal = estado.pixcnpj.reduce((s, r) => s + (parseNum(r['valor'] || 0) || 0), 0); + const valesTotal = estado.vales.reduce((s, r) => s + (parseNum(r['valor'] || 0) || 0), 0); + const receberTotal = estado.receber.reduce((s, r) => s + (parseNum(r['valor'] || 0) || 0), 0); + const cancelTotal = estado.cancelamentos.reduce((s, r) => s + (parseNum(r['valor'] || 0) || 0), 0); + const cartCred = estado.cartoes.credito.reduce((s, r) => s + (r.valor || 0), 0); + const cartDeb = estado.cartoes.debito.reduce((s, r) => s + (r.valor || 0), 0); + const cartAli = estado.cartoes.alimentacao.reduce((s, r) => s + (r.valor || 0), 0); + const cartPix = estado.cartoes.pix.reduce((s, r) => s + (r.valor || 0), 0); + // Monta o objeto exactly as o backend espera (storage.rs → salvar_fechamento) return { uuid: estado.uuid, @@ -1067,9 +1079,31 @@ function buildEstadoForBackend() { data: estado.data, operador: estado.operador, turno: estado.turno, - saldo_troco: parseNum(val('sys-troco')), // troco do sistema + saldo_troco: parseNum(val('sys-troco')), saldo_esperado: parseNum(val('f-saldo-esperado')), fechamento: parseNum(val('f-fech-dinheiro')) + parseNum(val('f-fech-cartoes')) + parseNum(val('f-fech-receber')), + // Saldos de cartões (do Sys / Saldo de Caixa) + credito: parseNum(val('sys-credito')) || cartCred, + debito: parseNum(val('sys-debito')) || cartDeb, + alimentacao: parseNum(val('sys-alimentacao')) || cartAli, + pixcnpj: parseNum(val('sys-pixcnpj')) || pixcnpjTotal, + vales: parseNum(val('sys-vales')) || valesTotal, + receber: parseNum(val('sys-receber')) || receberTotal, + // Totais para colunas SQL + total_sangrias: sangriasTotal, + total_despesas: despesasTotal, + total_pixcnpj: pixcnpjTotal, + total_vales: valesTotal, + total_areceber: receberTotal, + total_cancelamentos: cancelTotal, + total_cartao_credito: cartCred, + total_cartao_debito: cartDeb, + total_cartao_alimentacao: cartAli, + total_cartao_pix: cartPix, + // Fechamento contado + fd: parseNum(val('f-fech-dinheiro')), + fc: parseNum(val('f-fech-cartoes')), + fr: parseNum(val('f-fech-receber')), despesas: estado.despesas.map(r => ({ desc: r.desc || '', obs: r.obs || '', valor: r.valor || 0 })), sangrias: estado.sangrias.map(r => ({ hora: r.hora || '', retirada: r.retirada || 0, gerente: r.gerente || '' })), pixcnpj: estado.pixcnpj.map(r => ({ nome: r.nome || '', valor: r.valor || 0 })),