diff --git a/src-tauri/src/plugins/printer.rs b/src-tauri/src/plugins/printer.rs index aadea53..208b318 100644 --- a/src-tauri/src/plugins/printer.rs +++ b/src-tauri/src/plugins/printer.rs @@ -303,8 +303,8 @@ impl ReciboData { out.extend(escpos::kv("Cancelamentos:", &self.fmt_money(self.cancelamentos))); out.extend(escpos::divider()); - // ── FECHAMENTO DE CAIXA (sys_total) ── - out.extend(escpos::line_bold("FECHAMENTO DE CAIXA")); + // ── TROCO / SALDO DE CAIXA ── + out.extend(escpos::line_bold("SALDO 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 ── - // diferenca = saldo de caixa (sistema) - saldo_esperado - cancelamentos - // (calculado no frontend em buildReciboData) + // 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) out.extend(escpos::line_bold("DIFERENCA")); let diff = self.diferenca; let diff_str = if diff >= 0.0 { diff --git a/src/index.html b/src/index.html index b0d5f78..8aca0b5 100644 --- a/src/index.html +++ b/src/index.html @@ -873,10 +873,10 @@ function updateTotals() { const fr = receberTotal; setText('fech-total', fmt(fd + fc + fr)); - // Diferença = saldo de caixa (sistema) - saldo_esperado - cancelamentos - const sysTotal = cartCred + cartDeb + cartAli + cartPix + valesTotal + receberTotal + pixCnpjTotal; + // Diferença = fechamento - saldo_esperado - cancelamentos + const fechamentoTotal = fd + fc + fr; const cancelTotal = estado.cancelamentos.reduce((s,r) => s+(parseNum(r.valor||0)||0), 0); - const diff = sysTotal - parseNum(val('f-saldo-esperado')) - cancelTotal; + const diff = fechamentoTotal - 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 = saldo de caixa (sistema) - saldo_esperado - cancelamentos + // Diferença = fechamento - saldo_esperado - cancelamentos const diferenca = data.diferenca !== undefined ? data.diferenca - : ((data.sys_total || 0) - (data.saldo_esperado || 0) - (data.cancelamentos || 0)); + : ((data.fechamento || 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 => `
${c.numero ? `Nº ${c.numer
Soma Cartões:${fmt(totalCartoes)}
-
FECHAMENTO DE CAIXA
+
SALDO DE CAIXA (SISTEMA) — RESUMO
Troco${fmt(data.saldo_troco||0)}
Crédito${fmt(cartCred)}
Débito${fmt(cartDeb)}
@@ -1407,11 +1407,11 @@ ${cancelamentos_arr.map(c => `
${c.numero ? `Nº ${c.numer
À Receber${fmt(totalReceber)}
PIX Cartão${fmt(cartPix)}
PIX CNPJ${fmt(totalPixCnpj)}
-
TOTAL${fmt(sysTotal)}
+
TOTAL SISTEMA${fmt(sysTotal)}
Saldo Esperado${fmt(saldoEsperado)}
DIFERENÇA${diffStr}${diffOk ? ' ✓ OK' : ''}
-
SALDO DE CAIXA
+
FECHAMENTO (CONTADO)
Dinheiro:${fmt(fdin)}
Cartões:${fmt(fcarts)}
À Receber:${fmt(frec)}
@@ -1431,9 +1431,9 @@ ${data.observacoes ? `
${data.observacoes}
` : ''} 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 = saldo de caixa (sistema) - saldo_esperado - cancelamentos + // Diferença = fechamento - saldo_esperado - cancelamentos const diferenca = data.diferenca !== undefined ? data.diferenca - : ((data.sys_total || 0) - (data.saldo_esperado || 0) - (data.cancelamentos || 0)); + : ((data.fechamento || 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 => `
${l.label}${fmt(l.valo
Soma Cartões:${fmt(totalCartoes)}
-
FECHAMENTO DE CAIXA
+
SALDO DE CAIXA (SISTEMA) — RESUMO
Troco${fmt(data.saldo_troco||0)}
Crédito${fmt(cartCred)}
Débito${fmt(cartDeb)}
@@ -1626,11 +1626,11 @@ ${cancLines.map(l => `
${l.label}${fmt(l.valo
À Receber${fmt(totalReceber)}
PIX Cartão${fmt(cartPix)}
PIX CNPJ${fmt(totalPixCnpj)}
-
TOTAL${fmt(sysTotal)}
+
TOTAL SISTEMA${fmt(sysTotal)}
Saldo Esperado${fmt(saldoEsperado)}
DIFERENÇA${diffStr}${diffOk ? ' ✓ OK' : ''}
-
SALDO DE CAIXA
+
FECHAMENTO (CONTADO)
Dinheiro:${fmt(fdin)}
Cartões:${fmt(fcarts)}
À Receber:${fmt(frec)}
@@ -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 - : (sysTotal - saldoEsp - cancelamentos); + : (fechamento - 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 = saldo de caixa (sistema) - saldo_esperado - cancelamentos - const diferenca = sysTotal - saldoEsp - cancelTotal; + // Diferença = fechamento - saldo_esperado - cancelamentos + const diferenca = fechamentoCounted - 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 = sysTotal - saldoEsp - cancelamentos; + const diferenca = fechamento - saldoEsp - cancelamentos; const diffClass = diferenca === 0 ? '#2e7d32' : (diferenca > 0 ? '#e65100' : '#c0272d'); document.getElementById('confirm-summary').innerHTML = `
📅 Data: ${estado.data}   👤 Operador: ${operador}   ⏰ Turno: ${turno}   🏪 Loja: ${loja}
@@ -1919,10 +1919,10 @@ function openConfirmModal() {
❌ Cancelamentos: ${fmt(cancelamentos)}
👥 Clientes: ${estado.clientes || 0}
🍗 Frango Assado: ${estado.frango || 0}
-
🛒 Saldo de Caixa: ${fmt(fechamento)}
-
🖥️ Saldo de Caixa (Sistema): ${fmt(sysTotal)}
+
📋 Fechamento (contado): ${fmt(fechamento)}
+
🖥️ Total Sistema: ${fmt(sysTotal)}

-
🎯 Saldo Esperado: ${fmt(saldoEsp)}
+
🎯 Saldo Esperado (contado): ${fmt(saldoEsp)}
📐 Diferença: ${fmt(diferenca)}
ID: ${estado.loja}_${estado.data}_${estado.operador}
`; console.log('[DEBUG] openConfirmModal: tentando abrir modal');