v1.3.16: Diferença=SaldoCaixa(Sistema)-SaldoEsperado-Cancelamentos; nomes padronizados
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 commit is contained in:
root
2026-06-26 13:52:34 +00:00
parent 5ad8c1f395
commit 13489d58cf
2 changed files with 24 additions and 24 deletions
+4 -4
View File
@@ -303,8 +303,8 @@ impl ReciboData {
out.extend(escpos::kv("Cancelamentos:", &self.fmt_money(self.cancelamentos)));
out.extend(escpos::divider());
// ── TROCO / SALDO DE CAIXA ──
out.extend(escpos::line_bold("SALDO DE CAIXA"));
// ── FECHAMENTO DE CAIXA (sys_total) ──
out.extend(escpos::line_bold("FECHAMENTO DE CAIXA"));
out.extend(escpos::kv("Troco (+):", &self.fmt_money(self.saldo_troco)));
out.extend(escpos::kv("Credito (+):", &self.fmt_money(self.credito)));
out.extend(escpos::kv("Debito (+):", &self.fmt_money(self.debito)));
@@ -328,8 +328,8 @@ impl ReciboData {
out.extend(escpos::divider());
// ── DIFERENÇA ──
// Usa self.diferenca que o frontend calcula como sys_total - saldo_esperado
// (não recalcula de fechamento, que é o valor contado e não deve ser usado na diferença)
// diferenca = saldo de caixa (sistema) - saldo_esperado - cancelamentos
// (calculado no frontend em buildReciboData)
out.extend(escpos::line_bold("DIFERENCA"));
let diff = self.diferenca;
let diff_str = if diff >= 0.0 {
+20 -20
View File
@@ -873,10 +873,10 @@ function updateTotals() {
const fr = receberTotal;
setText('fech-total', fmt(fd + fc + fr));
// Diferença = fechamento - saldo_esperado - cancelamentos
const fechamentoTotal = fd + fc + fr;
// Diferença = saldo de caixa (sistema) - saldo_esperado - cancelamentos
const sysTotal = cartCred + cartDeb + cartAli + cartPix + valesTotal + receberTotal + pixCnpjTotal;
const cancelTotal = estado.cancelamentos.reduce((s,r) => s+(parseNum(r.valor||0)||0), 0);
const diff = fechamentoTotal - parseNum(val('f-saldo-esperado')) - cancelTotal;
const diff = sysTotal - parseNum(val('f-saldo-esperado')) - cancelTotal;
const difEl = document.getElementById('diferenca');
const badgeEl = document.getElementById('dif-badge');
if (difEl) {
@@ -1265,9 +1265,9 @@ function buildConfirmHTML(data) {
// Relatório completo — mesmo layout do PDF
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
// Diferença = saldo de caixa (sistema) - saldo_esperado - cancelamentos
const diferenca = data.diferenca !== undefined ? data.diferenca
: ((data.fechamento || 0) - (data.saldo_esperado || 0) - (data.cancelamentos || 0));
: ((data.sys_total || 0) - (data.saldo_esperado || 0) - (data.cancelamentos || 0));
const diffStr = diferenca >= 0 ? `+${fmt(diferenca)}` : fmtNeg(diferenca);
const diffOk = diferenca === 0;
@@ -1398,7 +1398,7 @@ ${cancelamentos_arr.map(c => `<div class="row"><span>${c.numero ? `Nº ${c.numer
</table>
<div class="subtotal"><div class="row total-row"><span>Soma Cartões:</span><span>${fmt(totalCartoes)}</span></div></div>
<div class="section-title">SALDO DE CAIXA (SISTEMA) — RESUMO</div>
<div class="section-title">FECHAMENTO DE CAIXA</div>
<div class="row"><span>Troco</span><span>${fmt(data.saldo_troco||0)}</span></div>
<div class="row"><span>Crédito</span><span>${fmt(cartCred)}</span></div>
<div class="row"><span>Débito</span><span>${fmt(cartDeb)}</span></div>
@@ -1407,11 +1407,11 @@ ${cancelamentos_arr.map(c => `<div class="row"><span>${c.numero ? `Nº ${c.numer
<div class="row"><span>À Receber</span><span>${fmt(totalReceber)}</span></div>
<div class="row"><span>PIX Cartão</span><span>${fmt(cartPix)}</span></div>
<div class="row"><span>PIX CNPJ</span><span>${fmt(totalPixCnpj)}</span></div>
<div class="row total-row"><span>TOTAL SISTEMA</span><span>${fmt(sysTotal)}</span></div>
<div class="row total-row"><span>TOTAL</span><span>${fmt(sysTotal)}</span></div>
<div class="row"><span>Saldo Esperado</span><span>${fmt(saldoEsperado)}</span></div>
<div class="row"><span>DIFERENÇA</span><span class="${diffOk ? 'diff-ok' : 'diff-bad'}">${diffStr}${diffOk ? ' ✓ OK' : ''}</span></div>
<div class="section-title">FECHAMENTO (CONTADO)</div>
<div class="section-title">SALDO DE CAIXA</div>
<div class="row"><span>Dinheiro:</span><span>${fmt(fdin)}</span></div>
<div class="row"><span>Cartões:</span><span>${fmt(fcarts)}</span></div>
<div class="row"><span>À Receber:</span><span>${fmt(frec)}</span></div>
@@ -1431,9 +1431,9 @@ ${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
// Diferença = saldo de caixa (sistema) - saldo_esperado - cancelamentos
const diferenca = data.diferenca !== undefined ? data.diferenca
: ((data.fechamento || 0) - (data.saldo_esperado || 0) - (data.cancelamentos || 0));
: ((data.sys_total || 0) - (data.saldo_esperado || 0) - (data.cancelamentos || 0));
const diffStr = diferenca >= 0 ? `+${fmt(diferenca)}` : fmtNeg(diferenca);
const diffColor = diferenca === 0 ? '#2e7d32' : (diferenca > 0 ? '#e65100' : '#c0272d');
@@ -1617,7 +1617,7 @@ ${cancLines.map(l => `<div class="row"><span>${l.label}</span><span>${fmt(l.valo
</table>
<div class="subtotal"><div class="row total-row"><span>Soma Cartões:</span><span>${fmt(totalCartoes)}</span></div></div>
<div class="section-title">SALDO DE CAIXA (SISTEMA) — RESUMO</div>
<div class="section-title">FECHAMENTO DE CAIXA</div>
<div class="row"><span>Troco</span><span>${fmt(data.saldo_troco||0)}</span></div>
<div class="row"><span>Crédito</span><span>${fmt(cartCred)}</span></div>
<div class="row"><span>Débito</span><span>${fmt(cartDeb)}</span></div>
@@ -1626,11 +1626,11 @@ ${cancLines.map(l => `<div class="row"><span>${l.label}</span><span>${fmt(l.valo
<div class="row"><span>À Receber</span><span>${fmt(totalReceber)}</span></div>
<div class="row"><span>PIX Cartão</span><span>${fmt(cartPix)}</span></div>
<div class="row"><span>PIX CNPJ</span><span>${fmt(totalPixCnpj)}</span></div>
<div class="row total-row"><span>TOTAL SISTEMA</span><span>${fmt(sysTotal)}</span></div>
<div class="row total-row"><span>TOTAL</span><span>${fmt(sysTotal)}</span></div>
<div class="row"><span>Saldo Esperado</span><span>${fmt(saldoEsperado)}</span></div>
<div class="row"><span>DIFERENÇA</span><span class="${diffOk ? 'diff-ok' : 'diff-bad'}">${diffStr}${diffOk ? ' ✓ OK' : ''}</span></div>
<div class="section-title">FECHAMENTO (CONTADO)</div>
<div class="section-title">SALDO DE CAIXA</div>
<div class="row"><span>Dinheiro:</span><span>${fmt(fdin)}</span></div>
<div class="row"><span>Cartões:</span><span>${fmt(fcarts)}</span></div>
<div class="row"><span>À Receber:</span><span>${fmt(frec)}</span></div>
@@ -1663,7 +1663,7 @@ function buildReportHTML(data) {
const sysTotal = data.sys_total || 0;
const saldoEsp = data.saldo_esperado || 0;
const diferenca = data.diferenca !== undefined ? data.diferenca
: (fechamento - saldoEsp - cancelamentos);
: (sysTotal - saldoEsp - cancelamentos);
const diffStr = diferenca >= 0 ? `+${fmt(diferenca)}` : fmtNeg(diferenca);
const diffColor = diferenca === 0 ? '#2e7d32' : '#c0272d';
@@ -1809,8 +1809,8 @@ function buildReciboData() {
const saldoEsp = parseNum(val('f-saldo-esperado'));
// SYS total = crédito + débito + alimentação + voucher pix + pixcnpj + vales + receber (NÃO inclui troco)
const sysTotal = cartCred + cartDeb + cartAli + cartPix + pixCnpjTotal + valesTotal + receberTotal;
// Diferença = fechamento - saldo_esperado - cancelamentos
const diferenca = fechamentoCounted - saldoEsp - cancelTotal;
// Diferença = saldo de caixa (sistema) - saldo_esperado - cancelamentos
const diferenca = sysTotal - saldoEsp - cancelTotal;
return {
uuid: estado.uuid,
id_local: estado.id_local,
@@ -1903,7 +1903,7 @@ function openConfirmModal() {
const fechamento = parseNum(val('f-fech-dinheiro')) + parseNum(val('f-fech-cartoes')) + parseNum(val('f-fech-receber'));
const saldoEsp = parseNum(val('f-saldo-esperado'));
const sysTotal = cartCred + cartDeb + cartAli + cartPix + vales + receber + pixcnpj;
const diferenca = fechamento - saldoEsp - cancelamentos;
const diferenca = sysTotal - saldoEsp - cancelamentos;
const diffClass = diferenca === 0 ? '#2e7d32' : (diferenca > 0 ? '#e65100' : '#c0272d');
document.getElementById('confirm-summary').innerHTML =
`<div style="margin-bottom:6px"><strong>📅 Data:</strong> ${estado.data} &nbsp; <strong>👤 Operador:</strong> ${operador} &nbsp; <strong>⏰ Turno:</strong> ${turno} &nbsp; <strong>🏪 Loja:</strong> ${loja}</div>
@@ -1919,10 +1919,10 @@ function openConfirmModal() {
<div>❌ Cancelamentos: <strong>${fmt(cancelamentos)}</strong></div>
<div>👥 Clientes: <strong>${estado.clientes || 0}</strong></div>
<div>🍗 Frango Assado: <strong>${estado.frango || 0}</strong></div>
<div>📋 Fechamento (contado): <strong>${fmt(fechamento)}</strong></div>
<div>🖥️ Total Sistema: <strong>${fmt(sysTotal)}</strong></div>
<div>🛒 Saldo de Caixa: <strong>${fmt(fechamento)}</strong></div>
<div>🖥️ Saldo de Caixa (Sistema): <strong>${fmt(sysTotal)}</strong></div>
<hr style="border:none;border-top:1px dashed #b3d9f7;margin:6px 0">
<div>🎯 Saldo Esperado (contado): <strong>${fmt(saldoEsp)}</strong></div>
<div>🎯 Saldo Esperado: <strong>${fmt(saldoEsp)}</strong></div>
<div style="margin-top:4px">📐 Diferença: <strong style="color:${diffClass}">${fmt(diferenca)}</strong></div>
<div style="margin-top:4px;font-size:10px;color:#888">ID: ${estado.loja}_${estado.data}_${estado.operador}</div>`;
console.log('[DEBUG] openConfirmModal: tentando abrir modal');