fix: buildPrintHTML usa sys_total correto
This commit is contained in:
@@ -322,13 +322,12 @@ impl ReciboData {
|
||||
out.extend(escpos::divider());
|
||||
|
||||
// ── DIFERENÇA ──
|
||||
// Diferença = TOTAL SISTEMA - saldo_esperado - cancelamentos
|
||||
// Usa o valor calculado pelo frontend (já correto)
|
||||
out.extend(escpos::line_bold("DIFERENCA"));
|
||||
let diff = self.sys_total - self.saldo_esperado - self.cancelamentos;
|
||||
let diff_str = if diff >= 0.0 {
|
||||
format!("+{}", self.fmt_money(diff))
|
||||
let diff_str = if self.diferenca >= 0.0 {
|
||||
format!("+{}", self.fmt_money(self.diferenca))
|
||||
} else {
|
||||
self.fmt_money(diff)
|
||||
self.fmt_money(self.diferenca)
|
||||
};
|
||||
out.extend(escpos::title(&diff_str));
|
||||
|
||||
@@ -528,8 +527,10 @@ pub fn caminho_impressora() -> Option<String> {
|
||||
|
||||
#[tauri::command]
|
||||
pub fn imprimir_recibo(data: String) -> Result<usize, String> {
|
||||
eprintln!("[DEBUG RECIBO JSON] {}", &data[..data.len().min(500)]);
|
||||
let r: ReciboData =
|
||||
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();
|
||||
log::info!("Imprimindo recibo: {} bytes ESC/POS", bytes.len());
|
||||
PRINTER.imprimir_bytes(&bytes)
|
||||
|
||||
+2
-2
@@ -1492,7 +1492,7 @@ 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 = Total Sistema - Saldo Esperado - Cancelamentos
|
||||
const sysTotalCalc = (data.sysTotal || 0);
|
||||
const sysTotalCalc = (data.sys_total || 0);
|
||||
const saldoEsperadoCalc = (data.saldo_esperado || 0);
|
||||
// Cancelamentos: SEMPRE recalcular da array (o scalar pode estar desatualizado)
|
||||
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>💳 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>❌ Cancelamentos:</span><span class="val">${fmt(cancelamentos)}</span></div>
|
||||
<div class="row"><span>❌ Cancelamentos:</span><span class="val">${fmt(totalCancelCalc)}</span></div>
|
||||
<hr>
|
||||
<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>
|
||||
|
||||
Reference in New Issue
Block a user