ソースを参照

fix: Consider fraction units for precision

version-14
Deepesh Garg 5年前
コミット
db5888e2f9
2個のファイルの変更6行の追加9行の削除
  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 ファイルの表示

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

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 ファイルの表示

@@ -524,11 +524,8 @@ def fmt_money(amount, precision=None, currency=None):
if precision > 2:
if len(decimals) < 3:
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:
precision = number_format_precision
elif len(decimals) < precision:


読み込み中…
キャンセル
保存