You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ar...@apache.org on 2017/09/23 13:18:41 UTC
svn commit: r1809425 -
/ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilNumber.java
Author: arunpatidar
Date: Sat Sep 23 13:18:41 2017
New Revision: 1809425
URL: http://svn.apache.org/viewvc?rev=1809425&view=rev
Log:
IMPROVED: Update UtilMisc.formatRuleBasedAmount() method to take rules and ruleSet and formatting can be done, rather than system providing all ruleset support. (OFBIZ-9490)
Thanks Pradhan Yash Sharma for your contribution.
Modified:
ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilNumber.java
Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilNumber.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilNumber.java?rev=1809425&r1=1809424&r2=1809425&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilNumber.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilNumber.java Sat Sep 23 13:18:41 2017
@@ -257,25 +257,38 @@ public final class UtilNumber {
* Method to format an amount using a custom rule set.
* Current rule sets available:
*
- * en_US
- * %dollars-and-cents - 1,225.25 becomes "one thousand two hundred twenty five dollars and twenty five cents" (useful for checks)
- * %dollars-and-hundreths - 1,225.25 becomes "one thousand two hundred twenty five and 25/00" (alternate for checks)
- *
* @param amount - the amount to format
- * @param rule - the name of the rule set to use (e.g., %dollars-and-hundredths)
* @param locale - the Locale
* @return formatted string or an empty string if there was an error
*/
- public static String formatRuleBasedAmount(double amount, String rule, Locale locale) {
+ public static String formatRuleBasedAmount(double amount, Locale locale) {
String ruleSet = rbnfRuleSets.get(locale);
if (ruleSet == null) {
Debug.logWarning("Cannot format rule based amount for locale " + locale.toString() + " because rule set for that locale does not exist", module);
return "";
}
+ return formatRuleBasedAmount(amount, ruleSet, null, locale);
+ }
+
+ /**
+ * Method to format an amount using a custom rule set.
+ * Current rule sets available:
+ *
+ * en_US
+ * %dollars-and-cents - 1,225.25 becomes "one thousand two hundred twenty five dollars and twenty five cents" (useful for checks)
+ * %dollars-and-hundreths - 1,225.25 becomes "one thousand two hundred twenty five and 25/00" (alternate for checks)
+ *
+ * @param amount - the amount to format
+ * @param ruleSet - ruleSet to use
+ * @param rule - the name of the rule set to use (e.g., %dollars-and-hundredths)
+ * @param locale - the Locale
+ * @return formatted string or an empty string if there was an error
+ */
+ public static String formatRuleBasedAmount(double amount, String ruleSet, String rule, Locale locale) {
RuleBasedNumberFormat formatter = new RuleBasedNumberFormat(ruleSet, locale);
String result = "";
try {
- result = formatter.format(amount, rule);
+ result = formatter.format(amount, rule != null ? rule : formatter.getDefaultRuleSetName());
} catch (Exception e) {
Debug.logError(e, "Failed to format amount " + amount + " using rule " + rule, module);
}