Compare commits

...

5 Commits

Author SHA1 Message Date
root d89b79a3f8 fix: _editingRecord preserves full object; dados.vales etc (not full.vales_arr)
Build Fechamento de Caixa / build (macos-14, app) (push) Has been cancelled
Build Fechamento de Caixa / build (ubuntu-22.04, deb) (push) Has been cancelled
Build Fechamento de Caixa / build (windows-2022, msi) (push) Has been cancelled
2026-07-01 01:32:11 +00:00
root c4dda7e2e5 debug: add console.log to salvarEdicaoModal to trace where it hangs
Build Fechamento de Caixa / build (macos-14, app) (push) Has been cancelled
Build Fechamento de Caixa / build (ubuntu-22.04, deb) (push) Has been cancelled
Build Fechamento de Caixa / build (windows-2022, msi) (push) Has been cancelled
2026-07-01 01:25:01 +00:00
root 662f3681a5 Revert "fix: fórmula diferença = sys_total - saldo_esperado - cancelamentos (todas as 3 functions de print); aumenta fonte print para 17px + ajustes de padding/margens"
Build Fechamento de Caixa / build (macos-14, app) (push) Has been cancelled
Build Fechamento de Caixa / build (ubuntu-22.04, deb) (push) Has been cancelled
Build Fechamento de Caixa / build (windows-2022, msi) (push) Has been cancelled
This reverts commit a56d7188f2.
2026-06-30 22:26:52 +00:00
root a56d7188f2 fix: fórmula diferença = sys_total - saldo_esperado - cancelamentos (todas as 3 functions de print); aumenta fonte print para 17px + ajustes de padding/margens
Build Fechamento de Caixa / build (macos-14, app) (push) Has been cancelled
Build Fechamento de Caixa / build (ubuntu-22.04, deb) (push) Has been cancelled
Build Fechamento de Caixa / build (windows-2022, msi) (push) Has been cancelled
2026-06-30 22:03:12 +00:00
root 7e1ee6bc04 fix: diff=sysTotal-esperado; toggleEdit fecha relatorio; saldo=soma carts; print diff=sysTotal
Build Fechamento de Caixa / build (macos-14, app) (push) Has been cancelled
Build Fechamento de Caixa / build (ubuntu-22.04, deb) (push) Has been cancelled
Build Fechamento de Caixa / build (windows-2022, msi) (push) Has been cancelled
2026-06-30 20:54:02 +00:00
+31 -22
View File
@@ -1486,9 +1486,11 @@ ${data.observacoes ? `<div class="obs">${data.observacoes}</div>` : ''}
function buildPrintHTML(data) {
const fmt = v => 'R$ ' + (v || 0).toFixed(2).replace('.', ',');
const fmtNeg = v => (v < 0 ? '-' : '') + 'R$ ' + Math.abs(v || 0).toFixed(2).replace('.', ',');
// Diferença = fechamento - saldo_esperado - cancelamentos
const diferenca = data.diferenca !== undefined ? data.diferenca
: ((data.fechamento || 0) - (data.saldo_esperado || 0) - (data.cancelamentos || 0));
// Diferença = Total Sistema - Saldo Esperado - Cancelamentos
const sysTotalCalc = (data.sysTotal || 0);
const saldoEsperadoCalc = (data.saldo_esperado || 0);
const cancelamentosCalc = (data.cancelamentos || 0);
const diferenca = sysTotalCalc - saldoEsperadoCalc - cancelamentosCalc;
const diffStr = diferenca >= 0 ? `+${fmt(diferenca)}` : fmtNeg(diferenca);
const diffColor = diferenca === 0 ? '#2e7d32' : (diferenca > 0 ? '#e65100' : '#c0272d');
@@ -2283,10 +2285,10 @@ function buildRelatorioModal(full) {
const totalSangrias = parseFloat(full.total_sangrias || 0);
const totalCancelamentos = parseFloat(full.total_cancelamentos || 0);
// Esperado e diferença
// Esperado e diferença — calculada: Total Sistema - Saldo Esperado - Cancelamentos
const saldoEsperado = parseFloat(full.saldo_esperado || 0);
const diferenca = parseFloat(full.diferenca || 0);
const statusDif = full.status_diferenca || '?';
const diferenca = sysTotal - saldoEsperado - totalCancelamentos;
const statusDif = diferenca === 0 ? 'ok' : (diferenca > 0 ? 'sobrando' : 'faltando');
const diffClass = statusDif === 'ok' ? '#2e7d32' : (statusDif === 'sobrando' ? '#e65100' : '#c0272d');
const diffLabel = statusDif === 'ok' ? '✓ OK' : (statusDif === 'sobrando' ? '⚠ SOBRANDO' : (statusDif === 'faltando' ? '⚠ FALTANDO' : statusDif));
@@ -2495,6 +2497,7 @@ window.toggleEditConsulta = async function() {
}
openEditModal(full);
closeRelatorioModal();
};
// Pede senha admin — retorna Promise<boolean>
@@ -2646,6 +2649,8 @@ window._recalcEditTotals = function() {
// Modal de edição completo com todas as grades
function openEditModal(full) {
window._editModalOpen = true;
// Salva o registro ANTES de fechar o modal de relatório — usa variável separada para não conflitar
window._editingRecord = full;
const dados = full.dados || {};
@@ -2676,27 +2681,27 @@ function openEditModal(full) {
const cartPixHTML = editTableHTML('pix', ['Valor (R$)'], cartPix_rows.length ? cartPix_rows : [['']], [0]);
// --- Vales ---
const vales_rows = (full.vales_arr || []).map(r => [r.nome||r.Nome||'', r.valor||0, r.obs||r.Obs||'']);
const vales_rows = (dados.vales || []).map(r => [r.nome||'', r.valor||0, r.obs||'']);
const valesHTML = editTableHTML('vales', ['Nome', 'Valor (R$)', 'Obs'], vales_rows.length ? vales_rows : [['','','']], [1]);
// --- Despesas ---
const despesas_rows = (full.despesas_arr || []).map(r => [r.desc||r.Desc||'', r.obs||r.Obs||'', r.valor||0]);
const despesas_rows = (dados.despesas || []).map(r => [r.desc||'', r.obs||'', r.valor||0]);
const despesasHTML = editTableHTML('despesas', ['Descrição', 'Obs', 'Valor (R$)'], despesas_rows.length ? despesas_rows : [['','','']], [2]);
// --- Sangrias ---
const sangrias_rows = (full.sangrias_arr || []).map(r => [r.hora||r.Hora||'', r.retirada||r.valor||0, r.gerente||r.Gerente||'']);
const sangrias_rows = (dados.sangrias || []).map(r => [r.hora||'', r.retirada||r.valor||0, r.gerente||'']);
const sangriasHTML = editTableHTML('sangrias', ['Hora', 'Valor (R$)', 'Gerente'], sangrias_rows.length ? sangrias_rows : [['','','']], [1]);
// --- Cancelamentos ---
const cancel_rows = (full.cancelamentos_arr || []).map(r => [r.numero||r.Numero||'', r.valor||0, r.motivo||r.Motivo||'']);
const cancel_rows = (dados.cancelamentos || []).map(r => [r.numero||'', r.valor||0, r.motivo||'']);
const cancelHTML = editTableHTML('cancelamentos', ['Número', 'Valor (R$)', 'Motivo'], cancel_rows.length ? cancel_rows : [['','','']], [1]);
// --- PIX CNPJ ---
const pixcnpj_rows = (full.pixcnpj_arr || []).map(r => [r.nome||r.desc||r.Desc||'', r.valor||0]);
const pixcnpj_rows = (dados.pixcnpj || []).map(r => [r.nome||r.desc||'', r.valor||0]);
const pixcnpjHTML = editTableHTML('pixcnpj', ['Nome', 'Valor (R$)'], pixcnpj_rows.length ? pixcnpj_rows : [['','']], [1]);
// --- A Receber ---
const receber_rows = (full.receber_arr || []).map(r => [r.nome||r.Nome||'', r.valor||0]);
const receber_rows = (dados.receber || []).map(r => [r.nome||'', r.valor||0]);
const receberHTML = editTableHTML('receber', ['Nome', 'Valor (R$)'], receber_rows.length ? receber_rows : [['','']], [1]);
// --- Totais (só leitura formatado) ---
@@ -2894,8 +2899,10 @@ function closeEditModal() {
// Salva edições do modal de edição completo
window.salvarEdicaoModal = async function() {
const full = window._currentConsulta;
if (!full) return;
console.log('[DEBUG] salvarEdicaoModal called');
const full = window._editingRecord;
if (!full) { console.log('[DEBUG] _editingRecord is null'); alert('Nenhum registro selecionado.'); return; }
console.log('[DEBUG] full.uuid:', full.uuid, 'full.id:', full.id);
const p = v => parseNum(v);
const inp = id => { const el = document.getElementById(id); return el ? el.value : ''; };
@@ -2952,14 +2959,14 @@ window.salvarEdicaoModal = async function() {
total_cartao_alimentacao: cartAli_tot,
total_cartao_pix: cartPix_tot,
// Saldo de caixa (editável via tabela saldo)
// Saldo de caixa — soma automática dos itens editados (não dos campos readonly)
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')),
saldo_credito: cartCred_tot,
saldo_debito: cartDeb_tot,
saldo_alimentacao: cartAli_tot,
saldo_vales: vales_tot,
total_pixcnpj: pixcnpj_tot,
saldo_areceber: recv_tot,
// Totais
total_vales: vales_tot,
@@ -2999,7 +3006,9 @@ window.salvarEdicaoModal = async function() {
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: uuid, updates: JSON.stringify(updates) });
console.log('[DEBUG] invoking sb_atualizar_fechamento...');
const result = await window.__TAURI__.core.invoke('sb_atualizar_fechamento', { id: uuid, updates: JSON.stringify(updates) });
console.log('[DEBUG] invoke result:', result);
closeEditModal();
closeRelatorioModal();
alert('✅ Atualizado com sucesso!');