Quellcode durchsuchen

fix: Consider fraction units for precision

version-14
Deepesh Garg vor 5 Jahren
Ursprung
Commit
db5888e2f9
2 geänderte Dateien mit 6 neuen und 9 gelöschten Zeilen
  1. +4
    -4
      frappe/public/js/frappe/form/formatters.js
  2. +2
    -5
      frappe/utils/data.py

+ 4
- 4
frappe/public/js/frappe/form/formatters.js Datei anzeigen

@@ -69,11 +69,11 @@ frappe.form.formatters = {
var decimals = parts.length > 1 ? parts[1] : ""; // parts.length == 2 ??? var decimals = parts.length > 1 ? parts[1] : ""; // parts.length == 2 ???


if ( decimals.length < 3 || decimals.length < precision ) { if ( decimals.length < 3 || decimals.length < precision ) {
const fraction = frappe.model.get_value(":Currency", currency, "smallest_currency_fraction_value") || 100; // if not set, minimum 2.
let fraction_parts = cstr(fraction).split(".");
const fraction = frappe.model.get_value(":Currency", currency, "fraction_units") || 100; // if not set, minimum 2.
precision = cstr(fraction).length - 1;


if (fraction_parts.length > 1) {
precision = fraction_parts[1].length;
if (decimals.length < cstr(fraction).length) {
precision = cstr(fraction).length - 1;
} }
} }
} }


+ 2
- 5
frappe/utils/data.py Datei anzeigen

@@ -524,11 +524,8 @@ def fmt_money(amount, precision=None, currency=None):
if precision > 2: if precision > 2:
if len(decimals) < 3: if len(decimals) < 3:
if currency: if currency:
fraction = frappe.db.get_value("Currency", currency, "smallest_currency_fraction_value", cache=True) or 100
fraction_parts = cstr(fraction).split(".")

if len(fraction_parts) > 1:
precision = len(fraction_parts[1])
fraction = frappe.db.get_value("Currency", currency, "fraction_units", cache=True) or 100
precision = len(cstr(fraction)) - 1
else: else:
precision = number_format_precision precision = number_format_precision
elif len(decimals) < precision: elif len(decimals) < precision:


Laden…
Abbrechen
Speichern