diff --git a/src/index.html b/src/index.html
index 28ff288..c85c88d 100644
--- a/src/index.html
+++ b/src/index.html
@@ -686,7 +686,7 @@ function makeRow(tblId, rowIndex, rowData) {
// For numeric cols that hold money, format with 2 decimals
// For text cols (hora, desc, obs, nome, gerente, motivo, numero) keep as-is
const numericCols = ['valor', 'retirada'];
- inp.value = rowData[col] !== undefined
+ inp.value = rowData[col] !== undefined && rowData[col] !== null
? (numericCols.includes(col) ? (rowData[col] === 0 ? '' : fmtNum(rowData[col])) : (rowData[col] || ''))
: '';
inp.placeholder = col === 'valor' || col === 'retirada' ? '0,00' : (col === 'hora' ? 'HH:MM' : '');
@@ -2471,6 +2471,15 @@ window.abrirFechamentoEdicao = function(full) {
estado.vendas = dados.vendas ?? full.vendas ?? 0;
estado.observacoes = dados.observacoes || full.observacoes || '';
estado.saldo_esperado = dados.saldo_esperado ?? full.saldo_esperado ?? 0;
+ // Campos de sistema — vem dos campos flat do Supabase
+ estado.saldo_troco = parseFloat(full.saldo_troco || dados.saldo_troco || 0);
+ estado.saldo_credito = parseFloat(full.saldo_credito || dados.saldo_credito || 0);
+ estado.saldo_debito = parseFloat(full.saldo_debito || dados.saldo_debito || 0);
+ estado.saldo_alimentacao = parseFloat(full.saldo_alimentacao || dados.saldo_alimentacao || 0);
+ estado.saldo_vales = parseFloat(full.saldo_vales || dados.saldo_vales || 0);
+ estado.saldo_areceber = parseFloat(full.saldo_areceber || dados.saldo_areceber || 0);
+ estado.total_cartao_pix = parseFloat(full.total_cartao_pix || dados.total_cartao_pix || 0);
+ estado.total_pixcnpj = parseFloat(full.total_pixcnpj || dados.total_pixcnpj || 0);
// Listas detalhadas
estado.sangrias = (dados.sangrias || []).map(r => ({ hora: r.hora||r.Hora||'', retirada: r.retirada||r.Retirada||r.valor||0, gerente: r.gerente||r.Gerente||'' }));
@@ -2480,17 +2489,30 @@ window.abrirFechamentoEdicao = function(full) {
estado.receber = (dados.receber || []).map(r => ({ nome: r.nome||r.Nome||'', valor: r.valor||r.Valor||0 }));
estado.cancelamentos = (dados.cancelamentos || []).map(r => ({ numero: r.numero||r.Numero||'', valor: r.valor||r.Valor||0 }));
estado.cartoes = {
- credito: (dados.cartoes?.credito || dados.cartoes_credito || []).map(r => ({ valor: r.valor||r.Valor||0 })),
- debito: (dados.cartoes?.debito || dados.cartoes_debito || []).map(r => ({ valor: r.valor||r.Valor||0 })),
- alimentacao:(dados.cartoes?.alimentacao|| dados.cartoes_alimentacao || []).map(r => ({ valor: r.valor||r.Valor||0 })),
- pix: (dados.cartoes?.pix || dados.cartoes_pix || []).map(r => ({ valor: r.valor||r.Valor||0 }))
+ credito: (dados.cartoes?.credito || dados.cartoes_credito || []).map(r => ({ valor: typeof r === 'object' ? (r.valor ?? r.Valor ?? 0) : (parseFloat(r) || 0) })),
+ debito: (dados.cartoes?.debito || dados.cartoes_debito || []).map(r => ({ valor: typeof r === 'object' ? (r.valor ?? r.Valor ?? 0) : (parseFloat(r) || 0) })),
+ alimentacao:(dados.cartoes?.alimentacao|| dados.cartoes_alimentacao || []).map(r => ({ valor: typeof r === 'object' ? (r.valor ?? r.Valor ?? 0) : (parseFloat(r) || 0) })),
+ pix: (dados.cartoes?.pix || dados.cartoes_pix || []).map(r => ({ valor: typeof r === 'object' ? (r.valor ?? r.Valor ?? 0) : (parseFloat(r) || 0) }))
};
+ estado.pixcnpj = (dados.pixcnpj || []).map(r => ({ nome: r.nome || r.Nome || r.desc || r.Desc || '', valor: typeof r === 'object' ? (r.valor ?? r.Valor ?? 0) : (parseFloat(r) || 0) }));
estado.fechamento_contado = dados.fechamento_contado || { dinheiro: 0, cartoes: 0, receber: 0 };
// Fecha o modal de consulta
closeRelatorioModal();
closeConsultaModal();
+ // Campos de sistema (saldo de caixa)
+ setVal('sys-troco', fmtNum(estado.saldo_troco));
+ setVal('sys-credito', fmtNum(estado.saldo_credito));
+ setVal('sys-debito', fmtNum(estado.saldo_debito));
+ setVal('sys-alimentacao',fmtNum(estado.saldo_alimentacao));
+ setVal('sys-pixcnpj', fmtNum(estado.total_pixcnpj));
+ // Fechamento contado
+ setVal('f-fech-dinheiro', estado.fechamento_contado?.dinheiro || '');
+ setVal('f-fech-cartoes', estado.fechamento_contado?.cartoes || '');
+ setVal('f-fech-receber', estado.fechamento_contado?.receber || '');
+ setVal('f-saldo-esperado', estado.saldo_esperado || '');
+
// Preenche os campos do formulário
setVal('f-loja', estado.loja);
setVal('f-data', estado.data);