diff --git a/frappe/desk/doctype/number_card/number_card.json b/frappe/desk/doctype/number_card/number_card.json index 5c897378a0..39a6f99092 100644 --- a/frappe/desk/doctype/number_card/number_card.json +++ b/frappe/desk/doctype/number_card/number_card.json @@ -21,6 +21,7 @@ "report_function", "is_public", "currency", + "show_full_number", "custom_configuration_section", "filters_config", "stats_section", @@ -218,10 +219,17 @@ "fieldname": "background_color", "fieldtype": "Color", "label": "Background Color" + }, + { + "default": "0", + "description": "Check to display the full numeric value (e.g., 1,234,567 instead of 1.2M).", + "fieldname": "show_full_number", + "fieldtype": "Check", + "label": "Show Full Number" } ], "links": [], - "modified": "2025-05-21 10:49:51.759985", + "modified": "2025-05-21 17:33:04.908518", "modified_by": "Administrator", "module": "Desk", "name": "Number Card", diff --git a/frappe/desk/doctype/number_card/number_card.py b/frappe/desk/doctype/number_card/number_card.py index cf3792bb76..2fb76958dc 100644 --- a/frappe/desk/doctype/number_card/number_card.py +++ b/frappe/desk/doctype/number_card/number_card.py @@ -40,6 +40,7 @@ class NumberCard(Document): report_field: DF.Literal[None] report_function: DF.Literal["Sum", "Average", "Minimum", "Maximum"] report_name: DF.Link | None + show_full_number: DF.Check show_percentage_stats: DF.Check stats_time_interval: DF.Literal["Daily", "Weekly", "Monthly", "Yearly"] type: DF.Literal["Document Type", "Report", "Custom"] diff --git a/frappe/public/js/frappe/widgets/number_card_widget.js b/frappe/public/js/frappe/widgets/number_card_widget.js index 9edd74265d..d65315dc29 100644 --- a/frappe/public/js/frappe/widgets/number_card_widget.js +++ b/frappe/public/js/frappe/widgets/number_card_widget.js @@ -220,8 +220,17 @@ export default class NumberCardWidget extends Widget { set_formatted_number(df, doc) { const default_country = frappe.sys_defaults.country; - const shortened_number = frappe.utils.shorten_number(this.number, default_country, 5); - let number_parts = shortened_number.split(" "); + + let number_parts; + + // Use full number if the checkbox is enabled + if (this.card_doc.show_full_number) { + number_parts = [this.number.toString(), ""]; + } else { + const shortened_number = frappe.utils.shorten_number(this.number, default_country, 5); + number_parts = shortened_number.split(" "); + } + // done to add multicurrency support in number card if (this.card_doc.currency) { this.formatted_number =