+
+
+
+ 🍽️ Alimentação
+ + Linha
+
+
${cartAliHTML}
+
+
+
+
+
+ 📱 PIX
+ + Linha
+
+
${cartPixHTML}
+
+
+
+
+
+ 📋 Vales
+ + Linha
+
+
${valesHTML}
+
+
+
+
+
+ 💸 Despesas
+ + Linha
+
+
${despesasHTML}
+
+
+
+
+
+ 🏧 Sangrias
+ + Linha
+
+
${sangriasHTML}
+
+
+
+
+
+ PIX CNPJ
+ + Linha
+
+
${pixcnpjHTML}
+
+
+
+
+
+ 📬 A Receber
+ + Linha
+
+
${receberHTML}
+
+
+
+
+
+ ❌ Cancelamentos
+ + Linha
+
+
${cancelHTML}
+
+
+
+
+
+
+
+
+
+
Observações:
-
+
@@ -2608,7 +2833,7 @@ function closeEditModal() {
window._editModalOpen = false;
}
-// Salva edições do modal de edição separado
+// Salva edições do modal de edição completo
window.salvarEdicaoModal = async function() {
const full = window._currentConsulta;
if (!full) return;
@@ -2616,27 +2841,92 @@ window.salvarEdicaoModal = async function() {
const p = v => parseNum(v);
const inp = id => { const el = document.getElementById(id); return el ? el.value : ''; };
+ // Lê todas as grades editáveis
+ const tables = readEditTables();
+
+ // Calcula totais dos cartões
+ const cartCred_tot = (tables.credito || []).reduce((s, r) => s + (r[0] || 0), 0);
+ const cartDeb_tot = (tables.debito || []).reduce((s, r) => s + (r[0] || 0), 0);
+ const cartAli_tot = (tables.alimentacao || []).reduce((s, r) => s + (r[0] || 0), 0);
+ const cartPix_tot = (tables.pix || []).reduce((s, r) => s + (r[0] || 0), 0);
+ const vales_tot = (tables.vales || []).reduce((s, r) => s + (r[1] || 0), 0);
+ const desp_tot = (tables.despesas || []).reduce((s, r) => s + (r[2] || 0), 0);
+ const sang_tot = (tables.sangrias || []).reduce((s, r) => s + (r[1] || 0), 0);
+ const pixcnpj_tot = (tables.pixcnpj || []).reduce((s, r) => s + (r[1] || 0), 0);
+ const recv_tot = (tables.receber || []).reduce((s, r) => s + (r[1] || 0), 0);
+ const canc_tot = (tables.cancelamentos || []).reduce((s, r) => s + (r[1] || 0), 0);
+
+ // Monta estruturas de volta
+ const cartoes = {
+ credito: (tables.credito || []).map(r => r[0]),
+ debito: (tables.debito || []).map(r => r[0]),
+ alimentacao: (tables.alimentacao || []).map(r => r[0]),
+ pix: (tables.pix || []).map(r => r[0]),
+ };
+
+ const vales = (tables.vales || []).map(r => ({ nome: r[0], valor: r[1], obs: r[2]||'' }));
+ const despesas = (tables.despesas || []).map(r => ({ desc: r[0], obs: r[1]||'', valor: r[2] }));
+ const sangrias = (tables.sangrias || []).map(r => ({ hora: r[0], retirada: r[1], gerente: r[2]||'' }));
+ const cancelamentos = (tables.cancelamentos || []).map(r => ({ numero: r[0], valor: r[1], motivo: r[2]||'' }));
+ const pixcnpj = (tables.pixcnpj || []).map(r => ({ nome: r[0], valor: r[1] }));
+ const receber = (tables.receber || []).map(r => ({ nome: r[0], valor: r[1] }));
+
const now = new Date().toISOString();
const operador = estado.operador || full.operador || '';
const updates = {
- saldo_troco: p(inp('edit-troco')),
- saldo_credito: p(inp('edit-credito')),
- saldo_debito: p(inp('edit-debito')),
- saldo_alimentacao: p(inp('edit-alimentacao')),
- saldo_vales: p(inp('edit-vales')),
- total_pixcnpj: p(inp('edit-pixcnpj')),
- saldo_areceber: p(inp('edit-areceber')),
- fechamento_dinheiro: p(inp('edit-fd')),
- fechamento_cartoes: p(inp('edit-fc')),
- fechamento_areceber: p(inp('edit-fr')),
- total_sangrias: p(inp('edit-sangrias')),
- total_despesas: p(inp('edit-despesas')),
+ // Identificação
+ loja: inp('edit-loja'),
+ data: inp('edit-data'),
+ turno: inp('edit-turno'),
+ operador: inp('edit-operador'),
+
+ // Cartões (como arrays de números crus)
+ cartoes_credito: cartoes.credito,
+ cartoes_debito: cartoes.debito,
+ cartoes_alimentacao: cartoes.alimentacao,
+ cartoes_pix: cartoes.pix,
+
+ // Totais de cartões
+ total_cartao_credito: cartCred_tot,
+ total_cartao_debito: cartDeb_tot,
+ total_cartao_alimentacao: cartAli_tot,
+ total_cartao_pix: cartPix_tot,
+
+ // Saldo de caixa (editável via tabela saldo)
+ saldo_troco: p(inp('edit-troco')),
+ saldo_credito: p(inp('edit-sld-credito')),
+ saldo_debito: p(inp('edit-sld-debito')),
+ saldo_alimentacao: p(inp('edit-sld-alimentacao')),
+ saldo_vales: p(inp('edit-sld-vales')),
+ total_pixcnpj: p(inp('edit-sld-pixcnpj')),
+ saldo_areceber: p(inp('edit-sld-areceber')),
+
+ // Totais
+ total_vales: vales_tot,
+ total_despesas: desp_tot,
+ total_sangrias: sang_tot,
+ total_areceber: recv_tot,
+ total_cancelamentos: canc_tot,
+
+ // Lançamentos detalhados
+ vales: vales,
+ despesas: despesas,
+ sangrias: sangrias,
+ cancelamentos: cancelamentos,
+ pixcnpj: pixcnpj,
+ receber: receber,
+
+ // Contadores
clientes: parseInt(inp('edit-clientes') || '0'),
frango: parseInt(inp('edit-frango') || '0'),
vendas: p(inp('edit-vendas')),
+
+ // Meta
saldo_esperado: p(inp('edit-esperado')),
observacoes: inp('edit-obs'),
+
+ // Edit log
edited_at: now,
edited_by: operador,
};
@@ -2645,7 +2935,7 @@ window.salvarEdicaoModal = async function() {
if (!hasTauri) { alert('Tauri não disponível.'); return; }
try {
- const id = document.getElementById('edit-id').value || full.id;
+ const id = inp('edit-id') || full.id;
if (!id) { alert('ID do registro não encontrado.'); return; }
await window.__TAURI__.core.invoke('sb_atualizar_fechamento', { id, updates });