From dba7eb3856bffc6a62a162ee9718805d92c7f3c3 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 2 Jul 2026 13:31:00 +0000 Subject: [PATCH] fix: saldo caixa via dados JSON + coluna cancelamento + diferenca correta --- src/index.html | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/src/index.html b/src/index.html index c7d7981..518496d 100644 --- a/src/index.html +++ b/src/index.html @@ -2175,14 +2175,26 @@ function buildConsultaModal(recentList) { }; // Calcula saldo de caixa real (mesma fórmula do relatório) - const calcSaldoCaixa = item => (parseFloat(item.saldo_troco)||0) - + (parseFloat(item.saldo_credito)||0) - + (parseFloat(item.saldo_debito)||0) - + (parseFloat(item.saldo_alimentacao)||0) - + (parseFloat(item.saldo_vales)||0) - + (parseFloat(item.saldo_areceber)||0) - + (parseFloat(item.total_pixcnpj)||0) - + (parseFloat(item.total_cartao_pix)||0); + // Lê tanto do top-level quanto do JSON dados (old records compatibility) + const calcSaldoCaixa = item => { + const dados = item.dados || {}; + return (parseFloat(item.saldo_troco)||0) + + (parseFloat(item.saldo_credito)||0) + + (parseFloat(item.saldo_debito)||0) + + (parseFloat(item.saldo_alimentacao)||0) + + (parseFloat(item.saldo_vales)||0) + + (parseFloat(item.saldo_areceber)||0) + + (parseFloat(item.total_pixcnpj)||0) + + (parseFloat(item.total_cartao_pix)||0) + + (parseFloat(dados.total_pixcnpj)||0) + + (parseFloat(dados.total_cartao_pix)||0); + }; + const calcCancelamentos = item => { + const dados = item.dados || {}; + return (parseFloat(item.total_cancelamentos)||0) + + (parseFloat(dados.total_cancelamentos)||0) + + (parseFloat(dados.cancelamentos)||0); // old format: array of cancelamentos + }; // Ordena por data desc e pega os últimos 5 dias distintos const sortedDesc = [...recentList].sort((a,b) => b.data.localeCompare(a.data)); @@ -2193,11 +2205,12 @@ function buildConsultaModal(recentList) { function renderRows(list) { if (!list || list.length === 0) { - return `Nenhum registro encontrado.`; + return `Nenhum registro encontrado.`; } return list.map((item, i) => { const saldoCaixa = calcSaldoCaixa(item); - const diff = saldoCaixa - (parseFloat(item.saldo_esperado)||0); + const canc = calcCancelamentos(item); + const diff = saldoCaixa - (parseFloat(item.saldo_esperado)||0) - canc; const diffClass = diff === 0 ? '#2e7d32' : diff > 0 ? '#e65100' : '#c0272d'; const diffLabel = diff === 0 ? '✓ OK' : diff > 0 ? `+R$ ${diff.toFixed(2).replace('.',',')}` : `-R$ ${Math.abs(diff).toFixed(2).replace('.',',')}`; return ` @@ -2206,6 +2219,7 @@ function buildConsultaModal(recentList) { ${item.turno||'?'} ${fmtMoney(saldoCaixa)} ${fmtMoney(item.saldo_esperado)} + ${fmtMoney(canc)} ${diffLabel} @@ -2234,6 +2248,7 @@ function buildConsultaModal(recentList) { TURNO SALDO CAIXA ESPERADO + CANCEL. DIFERENÇA AÇÃO