From 673db27766ed2c5bbebab486487eaf39e1eee210 Mon Sep 17 00:00:00 2001 From: Nicolas Micoud <58596990+nmicoud@users.noreply.github.com> Date: Thu, 3 Mar 2022 14:54:32 +0100 Subject: [PATCH] IDEMPIERE-5217 : Default values in mail templates (#1218) --- org.adempiere.base/src/org/compiere/model/MMailText.java | 9 ++++++++- org.adempiere.base/src/org/compiere/util/Env.java | 9 +++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/org.adempiere.base/src/org/compiere/model/MMailText.java b/org.adempiere.base/src/org/compiere/model/MMailText.java index 3433a56079..670f3ae0dc 100644 --- a/org.adempiere.base/src/org/compiere/model/MMailText.java +++ b/org.adempiere.base/src/org/compiere/model/MMailText.java @@ -214,6 +214,13 @@ public class MMailText extends X_R_MailText if (variable.contains("<") && variable.contains(">")) { // IDEMPIERE-3096 return Env.parseVariable("@"+variable+"@", po, get_TrxName(), true); } + + String defaultValue = ""; + if (variable.contains(":")) { + defaultValue = variable.substring(variable.indexOf(":") + 1, variable.length()); + variable = variable.substring(0, variable.indexOf(":")); + } + // special default formatting cases for dates/times/boolean in mail text not covered by Env.parseVariable int index = po.get_ColumnIndex(variable); if (index == -1){ @@ -237,7 +244,7 @@ public class MMailText extends X_R_MailText value = po.get_Value(index); } if (value == null) - return ""; + return defaultValue; return value.toString(); } // translate diff --git a/org.adempiere.base/src/org/compiere/util/Env.java b/org.adempiere.base/src/org/compiere/util/Env.java index 75136f20c5..7ea1b624fd 100644 --- a/org.adempiere.base/src/org/compiere/util/Env.java +++ b/org.adempiere.base/src/org/compiere/util/Env.java @@ -1671,6 +1671,13 @@ public final class Env token = inStr.substring(0, j); + String defaultValue = ""; + int idx = token.indexOf(":"); + if (token.contains(":")) { + defaultValue = token.substring(token.indexOf(":") + 1, token.length()); + token = token.substring(0, idx); + } + //format string String format = ""; int f = token.indexOf('<'); @@ -1757,6 +1764,8 @@ public final class Env outStr.append(v.toString()); } } + else if (!Util.isEmpty(defaultValue)) + outStr.append(defaultValue); } else if (keepUnparseable) { outStr.append("@").append(token); if (!Util.isEmpty(format))