diff --git a/frappe/tests/test_fmt_money.py b/frappe/tests/test_fmt_money.py index c27c13ad3b..275b1065f2 100644 --- a/frappe/tests/test_fmt_money.py +++ b/frappe/tests/test_fmt_money.py @@ -95,6 +95,7 @@ class TestFmtMoney(unittest.TestCase): def test_custom_fmt_money_format(self): self.assertEqual(fmt_money(100000, format="#,###.##"), "100,000.00") + self.assertEqual(fmt_money(None, format="#,###.##"), "0.00") if __name__ == "__main__": diff --git a/frappe/utils/data.py b/frappe/utils/data.py index 7f590ed5e6..92b390510e 100644 --- a/frappe/utils/data.py +++ b/frappe/utils/data.py @@ -1111,7 +1111,7 @@ def parse_val(v): def fmt_money( - amount: str | float | int, + amount: str | float | int | None, precision: int | None = None, currency: str | None = None, format: str | None = None, @@ -1135,6 +1135,9 @@ def fmt_money( if isinstance(amount, str): amount = flt(amount, precision) + if amount is None: + amount = 0 + if decimal_str: decimals_after = str(round(amount % 1, precision)) parts = decimals_after.split(".")