diff --git a/src/index.html b/src/index.html index a9139ad..9914d05 100644 --- a/src/index.html +++ b/src/index.html @@ -1486,9 +1486,11 @@ ${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 = fechamento - saldo_esperado - cancelamentos - const diferenca = data.diferenca !== undefined ? data.diferenca - : ((data.fechamento || 0) - (data.saldo_esperado || 0) - (data.cancelamentos || 0)); + // Diferença = Total Sistema - Saldo Esperado - Cancelamentos + const sysTotalCalc = (data.sysTotal || 0); + const saldoEsperadoCalc = (data.saldo_esperado || 0); + const cancelamentosCalc = (data.cancelamentos || 0); + const diferenca = sysTotalCalc - saldoEsperadoCalc - cancelamentosCalc; const diffStr = diferenca >= 0 ? `+${fmt(diferenca)}` : fmtNeg(diferenca); const diffColor = diferenca === 0 ? '#2e7d32' : (diferenca > 0 ? '#e65100' : '#c0272d'); @@ -2283,10 +2285,10 @@ function buildRelatorioModal(full) { const totalSangrias = parseFloat(full.total_sangrias || 0); const totalCancelamentos = parseFloat(full.total_cancelamentos || 0); - // Esperado e diferença + // Esperado e diferença — calculada: Total Sistema - Saldo Esperado - Cancelamentos const saldoEsperado = parseFloat(full.saldo_esperado || 0); - const diferenca = parseFloat(full.diferenca || 0); - const statusDif = full.status_diferenca || '?'; + const diferenca = sysTotal - saldoEsperado - totalCancelamentos; + const statusDif = diferenca === 0 ? 'ok' : (diferenca > 0 ? 'sobrando' : 'faltando'); const diffClass = statusDif === 'ok' ? '#2e7d32' : (statusDif === 'sobrando' ? '#e65100' : '#c0272d'); const diffLabel = statusDif === 'ok' ? '✓ OK' : (statusDif === 'sobrando' ? '⚠ SOBRANDO' : (statusDif === 'faltando' ? '⚠ FALTANDO' : statusDif)); @@ -2495,6 +2497,7 @@ window.toggleEditConsulta = async function() { } openEditModal(full); + closeRelatorioModal(); }; // Pede senha admin — retorna Promise @@ -2952,14 +2955,14 @@ window.salvarEdicaoModal = async function() { total_cartao_alimentacao: cartAli_tot, total_cartao_pix: cartPix_tot, - // Saldo de caixa (editável via tabela saldo) + // Saldo de caixa — soma automática dos itens editados (não dos campos readonly) saldo_troco: p(inp('edit-troco')), - saldo_credito: p(inp('edit-sld-credito')), - saldo_debito: p(inp('edit-sld-debito')), - saldo_alimentacao: p(inp('edit-sld-alimentacao')), - saldo_vales: p(inp('edit-sld-vales')), - total_pixcnpj: p(inp('edit-sld-pixcnpj')), - saldo_areceber: p(inp('edit-sld-areceber')), + saldo_credito: cartCred_tot, + saldo_debito: cartDeb_tot, + saldo_alimentacao: cartAli_tot, + saldo_vales: vales_tot, + total_pixcnpj: pixcnpj_tot, + saldo_areceber: recv_tot, // Totais total_vales: vales_tot,