diff --git a/src/index.html b/src/index.html index 1a69eaf..2952aeb 100644 --- a/src/index.html +++ b/src/index.html @@ -613,7 +613,7 @@ const fmt = v => 'R$ ' + (parseFloat(v) || 0).toLocaleString('pt-BR', { minimumF const parseNum = v => { // Already a number? Return directly (don't treat '.' as thousand separator) if (typeof v === 'number') return isNaN(v) ? 0 : v; - const s = String(v || '0').trim(); + const s = String(v || '0').trim().replace(/^R\$\s*/, ''); // strip currency prefix first if (!s) return 0; // Brazilian format: 1.234,56 → 1234.56 // Strategy: if string has comma, treat as BRL (decimal comma) @@ -2707,7 +2707,8 @@ function openEditModal(full) { // helper para fmt dinheiro const fmtMR = v => { const n = parseFloat(v||0); - if (isNaN(n) || n === 0) return ''; + if (isNaN(n)) return ''; + if (n === 0) return 'R$ 0,00'; return 'R$ ' + n.toLocaleString('pt-BR', { minimumFractionDigits: 2 }); }; @@ -2936,7 +2937,8 @@ function openEditModal(full) { // Formata campo de dinheiro brasileiro function fmtBR(inp) { const v = parseNum(inp.value); - if (isNaN(v) || v === 0) return ''; + if (isNaN(v)) return ''; + if (v === 0) return 'R$ 0,00'; return 'R$ ' + v.toLocaleString('pt-BR', { minimumFractionDigits: 2 }); }