From f45d1e8170f355ae04b89eeb0c968d6062c7743f Mon Sep 17 00:00:00 2001 From: root Date: Tue, 30 Jun 2026 18:33:38 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20somat=C3=B3rio=20atualiza=20ap=C3=B3s=20?= =?UTF-8?q?add=20linha;=20saldo=20caixa=20s=C3=B3=20troco=20edit=C3=A1vel;?= =?UTF-8?q?=20printRelatorio=20fixed;=20salvamento=20via=20uuid;=20edited?= =?UTF-8?q?=5Fat/by;=20totales=20completos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.html | 87 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 56 insertions(+), 31 deletions(-) diff --git a/src/index.html b/src/index.html index df8bd11..38e9e11 100644 --- a/src/index.html +++ b/src/index.html @@ -1853,9 +1853,11 @@ function triggerWindowPrint() { window.print(); } -// ─── Recibo 80mm via Tauri (ESC/POS USB) ───────────────────────────────── -// ─── Recibo 80mm via Tauri (ESC/POS USB) ───────────────────────────────── -// Build data object shared by both ESC/POS and preview +// ─── buildReciboData — lê do FORMULÁRIO principal (não do estado carregado do BD) ─── +// Importante: quando editing, o estado estápopulado pelo abrirFechamentoEdicao, não do BD + +// ─── buildReciboData — lê do FORMULÁRIO principal ─────────────────────────── +// usado tanto para novo fechamento quanto para edição function buildReciboData() { 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); @@ -1876,6 +1878,7 @@ function buildReciboData() { return { uuid: estado.uuid, id_local: estado.id_local, + id: estado.id, loja: estado.loja, data: estado.data, operador: estado.operador, @@ -1899,7 +1902,7 @@ function buildReciboData() { vales: valesTotal, areceber: receberTotal, cancelamentos: cancelTotal, - // Full arrays for preview + // Full arrays for preview / Supabase despesas_arr: estado.despesas.map(r => ({ desc: r.desc||'', obs: r.obs||'', valor: r.valor||0 })), sangrias_arr: estado.sangrias.map(r => ({ hora: r.hora||'', retirada: parseNum(r.retirada)||0, gerente: r.gerente||'' })), pixcnpj_arr: estado.pixcnpj.map(r => ({ nome: r.nome||'', valor: r.valor||0 })), @@ -1910,10 +1913,22 @@ function buildReciboData() { cartoes_debito: estado.cartoes.debito.map(r => r.valor || 0), cartoes_alimentacao: estado.cartoes.alimentacao.map(r => r.valor || 0), cartoes_pix: estado.cartoes.pix.map(r => r.valor || 0), + total_cartao_credito: cartCred, + total_cartao_debito: cartDeb, + total_cartao_alimentacao: cartAli, + total_cartao_pix: cartPix, + total_pixcnpj: pixCnpjTotal, + total_sangrias: sangriasTotal, + total_despesas: despesasTotal, + total_vales: valesTotal, + total_areceber: receberTotal, + total_cancelamentos: cancelTotal, observacoes: estado.observacoes, clientes: estado.clientes, frango: estado.frango, vendas: estado.vendas || 0, + edited_at: new Date().toISOString(), + edited_by: config.admin_user || 'admin', sync_status: estado.sync_status, }; } @@ -2817,25 +2832,26 @@ function openEditModal(full) {
${cancelHTML}
- -
- 💰 Saldo de Caixa + +
+ 💰 Saldo de Caixa (apenas Troco é editável)
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
+
@@ -2970,10 +2986,12 @@ window.salvarEdicaoModal = async function() { if (!hasTauri) { alert('Tauri não disponível.'); return; } try { - const id = inp('edit-id') || full.id; - if (!id) { alert('ID do registro não encontrado.'); return; } + // Usa uuid (string) — que é o id externo do registro no Supabase + const uuid = full.uuid || full.id; + if (!uuid) { alert('UUID do registro não encontrado.'); return; } + console.log('[DEBUG] salvarEdicaoModal uuid:', uuid, 'updates:', JSON.stringify(updates)); - await window.__TAURI__.core.invoke('sb_atualizar_fechamento', { id, updates }); + await window.__TAURI__.core.invoke('sb_atualizar_fechamento', { uuid, updates: JSON.stringify(updates) }); closeEditModal(); closeRelatorioModal(); alert('✅ Atualizado com sucesso!'); @@ -3126,27 +3144,31 @@ function consultaToPrintData(full) { // Imprime o relatório — usa iframe como openPrintPreview (Tauri não bloqueia) window.printRelatorio = function() { + const full = window._currentConsulta; + if (!full) return; + const data = consultaToPrintData(full); + let html = ` Fechamento de Caixa