From 76424a05fb83bc87654e8bfb7c11d3e8339be29a Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Mon, 16 Jan 2017 23:47:58 +0100 Subject: [PATCH] IDEMPIERE-3284 Get the proper currency format for a multi-currency, multi-language report --- .../src/org/compiere/util/DisplayType.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/org.adempiere.base/src/org/compiere/util/DisplayType.java b/org.adempiere.base/src/org/compiere/util/DisplayType.java index eb6b2609eb..9137c8c8e1 100644 --- a/org.adempiere.base/src/org/compiere/util/DisplayType.java +++ b/org.adempiere.base/src/org/compiere/util/DisplayType.java @@ -58,12 +58,14 @@ import java.text.DateFormat; import java.text.DecimalFormat; import java.text.NumberFormat; import java.text.SimpleDateFormat; +import java.util.Currency; import java.util.List; import java.util.Locale; import java.util.logging.Level; import org.adempiere.base.IDisplayTypeFactory; import org.adempiere.base.Service; +import org.compiere.model.MCurrency; /** * System Display Types. @@ -736,4 +738,20 @@ public final class DisplayType return "UNKNOWN DisplayType=" + displayType; } // getDescription + /** + * Helper method to get a currency format in a language (multi-currency and multi-language system) + * @param language locale code + * @param currency code + * @return number format + */ + public static NumberFormat getCurrencyFormat(String langcode, String currencyCode) + { + Locale locale = Language.getLocale(langcode); + NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance(locale); + Currency currency = Currency.getInstance(currencyCode); + currencyFormatter.setCurrency(currency); + return currencyFormatter; + } // getCurrencyFormat + + } // DisplayType