fix: buildPrintHTML usa sys_total correto
This commit is contained in:
@@ -322,13 +322,12 @@ impl ReciboData {
|
|||||||
out.extend(escpos::divider());
|
out.extend(escpos::divider());
|
||||||
|
|
||||||
// ── DIFERENÇA ──
|
// ── DIFERENÇA ──
|
||||||
// Diferença = TOTAL SISTEMA - saldo_esperado - cancelamentos
|
// Usa o valor calculado pelo frontend (já correto)
|
||||||
out.extend(escpos::line_bold("DIFERENCA"));
|
out.extend(escpos::line_bold("DIFERENCA"));
|
||||||
let diff = self.sys_total - self.saldo_esperado - self.cancelamentos;
|
let diff_str = if self.diferenca >= 0.0 {
|
||||||
let diff_str = if diff >= 0.0 {
|
format!("+{}", self.fmt_money(self.diferenca))
|
||||||
format!("+{}", self.fmt_money(diff))
|
|
||||||
} else {
|
} else {
|
||||||
self.fmt_money(diff)
|
self.fmt_money(self.diferenca)
|
||||||
};
|
};
|
||||||
out.extend(escpos::title(&diff_str));
|
out.extend(escpos::title(&diff_str));
|
||||||
|
|
||||||
@@ -528,8 +527,10 @@ pub fn caminho_impressora() -> Option<String> {
|
|||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub fn imprimir_recibo(data: String) -> Result<usize, String> {
|
pub fn imprimir_recibo(data: String) -> Result<usize, String> {
|
||||||
|
eprintln!("[DEBUG RECIBO JSON] {}", &data[..data.len().min(500)]);
|
||||||
let r: ReciboData =
|
let r: ReciboData =
|
||||||
serde_json::from_str(&data).map_err(|e| format!("Erro ao analisar dados: {}", e))?;
|
serde_json::from_str(&data).map_err(|e| format!("Erro ao analisar dados: {}", e))?;
|
||||||
|
eprintln!("[DEBUG DIFERENCA] self.diferenca={}", r.diferenca);
|
||||||
let bytes = r.to_escpos();
|
let bytes = r.to_escpos();
|
||||||
log::info!("Imprimindo recibo: {} bytes ESC/POS", bytes.len());
|
log::info!("Imprimindo recibo: {} bytes ESC/POS", bytes.len());
|
||||||
PRINTER.imprimir_bytes(&bytes)
|
PRINTER.imprimir_bytes(&bytes)
|
||||||
|
|||||||
+2
-2
@@ -1492,7 +1492,7 @@ function buildPrintHTML(data) {
|
|||||||
const fmt = v => 'R$ ' + (v || 0).toFixed(2).replace('.', ',');
|
const fmt = v => 'R$ ' + (v || 0).toFixed(2).replace('.', ',');
|
||||||
const fmtNeg = v => (v < 0 ? '-' : '') + 'R$ ' + Math.abs(v || 0).toFixed(2).replace('.', ',');
|
const fmtNeg = v => (v < 0 ? '-' : '') + 'R$ ' + Math.abs(v || 0).toFixed(2).replace('.', ',');
|
||||||
// Diferença = Total Sistema - Saldo Esperado - Cancelamentos
|
// Diferença = Total Sistema - Saldo Esperado - Cancelamentos
|
||||||
const sysTotalCalc = (data.sysTotal || 0);
|
const sysTotalCalc = (data.sys_total || 0);
|
||||||
const saldoEsperadoCalc = (data.saldo_esperado || 0);
|
const saldoEsperadoCalc = (data.saldo_esperado || 0);
|
||||||
// Cancelamentos: SEMPRE recalcular da array (o scalar pode estar desatualizado)
|
// Cancelamentos: SEMPRE recalcular da array (o scalar pode estar desatualizado)
|
||||||
const cancelamentos_arr = Array.isArray(data.cancelamentos_arr) ? data.cancelamentos_arr : [];
|
const cancelamentos_arr = Array.isArray(data.cancelamentos_arr) ? data.cancelamentos_arr : [];
|
||||||
@@ -1766,7 +1766,7 @@ function buildReportHTML(data) {
|
|||||||
<div class="row"><span>💳 Crédito:</span><span class="val">${fmt(cartCred)}</span></div>
|
<div class="row"><span>💳 Crédito:</span><span class="val">${fmt(cartCred)}</span></div>
|
||||||
<div class="row"><span>💳 Débito:</span><span class="val">${fmt(cartDeb)}</span></div>
|
<div class="row"><span>💳 Débito:</span><span class="val">${fmt(cartDeb)}</span></div>
|
||||||
<div class="row"><span>💳 Alimentação:</span><span class="val">${fmt(cartAli)}</span></div>
|
<div class="row"><span>💳 Alimentação:</span><span class="val">${fmt(cartAli)}</span></div>
|
||||||
<div class="row"><span>❌ Cancelamentos:</span><span class="val">${fmt(cancelamentos)}</span></div>
|
<div class="row"><span>❌ Cancelamentos:</span><span class="val">${fmt(totalCancelCalc)}</span></div>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="row"><span>📋 Fechamento (contado):</span><span class="val">${fmt(fechamento)}</span></div>
|
<div class="row"><span>📋 Fechamento (contado):</span><span class="val">${fmt(fechamento)}</span></div>
|
||||||
<div class="row"><span>🖥️ Total Sistema:</span><span class="val">${fmt(sysTotal)}</span></div>
|
<div class="row"><span>🖥️ Total Sistema:</span><span class="val">${fmt(sysTotal)}</span></div>
|
||||||
|
|||||||
Reference in New Issue
Block a user