Skip to content

Commit 34a6eb5

Browse files
feat: Add context to translate boolean. (#38)
1 parent e943f6a commit 34a6eb5

File tree

1 file changed

+44
-11
lines changed

1 file changed

+44
-11
lines changed

src/main/java/org/spin/service/grpc/util/value/ValueManager.java

+44-11
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.util.HashMap;
2929
import java.util.Map;
3030
import java.util.Optional;
31+
import java.util.Properties;
3132

3233
import org.adempiere.core.domains.models.I_C_Order;
3334
import org.compiere.model.MLookup;
@@ -50,6 +51,7 @@
5051
/**
5152
* Class for handle Values from and to client
5253
* @author Yamel Senih, [email protected] , http://www.erpya.com
54+
* @author Edwin Betancourt, [email protected], https://github.com/EdwinBetanc0urt
5355
*/
5456
public class ValueManager {
5557

@@ -454,7 +456,7 @@ public static boolean getBooleanFromValue(Value value) {
454456

455457
return value.getBoolValue();
456458
}
457-
459+
458460
/**
459461
* Get Value from reference
460462
* @param value
@@ -523,24 +525,47 @@ public static Value.Builder getValueFromReference(Object value, int referenceId)
523525
return builderValue;
524526
}
525527

528+
529+
/**
530+
* Get Display Value from reference
531+
* @param value
532+
* @param columnName data base column name
533+
* @param displayTypeId display type of field
534+
* @param referenceValueId reference of list or table
535+
* @return
536+
*/
526537
public static String getDisplayedValueFromReference(Object value, String columnName, int displayTypeId, int referenceValueId) {
538+
return getDisplayedValueFromReference(
539+
Env.getCtx(),
540+
columnName,
541+
displayTypeId,
542+
referenceValueId
543+
);
544+
}
545+
public static String getDisplayedValueFromReference(Properties context, Object value, String columnName, int displayTypeId, int referenceValueId) {
527546
String displayedValue = null;
528547
if (value == null) {
529548
return displayedValue;
530549
}
531550
if (displayTypeId <= 0) {
532551
return displayedValue;
533552
}
534-
if (DisplayType.isText (displayTypeId)) {
553+
if (context == null) {
554+
context = Env.getCtx();
555+
}
556+
if (DisplayType.isText(displayTypeId)) {
535557
;
536558
} else if (displayTypeId == DisplayType.YesNo) {
537559
displayedValue = BooleanManager.getBooleanToTranslated(
538-
value.toString()
560+
value.toString(),
561+
Env.getAD_Language(context)
539562
);
540563
} else if (displayTypeId == DisplayType.Integer) {
564+
// necessary condition do not to enter the condition for decimal struct
565+
Language language = Env.getLanguage(context);
541566
DecimalFormat intFormat = DisplayType.getNumberFormat(
542567
DisplayType.Integer,
543-
Env.getLanguage(Env.getCtx())
568+
language
544569
);
545570
displayedValue = intFormat.format(
546571
Integer.valueOf(value.toString())
@@ -557,9 +582,10 @@ public static String getDisplayedValueFromReference(Object value, String columnN
557582
System.currentTimeMillis() - longValue
558583
);
559584
} else {
585+
Language language = Env.getLanguage(context);
560586
DecimalFormat numberFormat = DisplayType.getNumberFormat(
561587
displayTypeId,
562-
Env.getLanguage(Env.getCtx())
588+
language
563589
);
564590
displayedValue = numberFormat.format(
565591
NumberManager.getBigDecimalFromString(
@@ -568,32 +594,39 @@ public static String getDisplayedValueFromReference(Object value, String columnN
568594
);
569595
}
570596
} else if (DisplayType.isDate(displayTypeId)) {
597+
Language language = Env.getLanguage(context);
571598
SimpleDateFormat dateTimeFormat = DisplayType.getDateFormat(
572599
DisplayType.DateTime,
573-
Env.getLanguage(Env.getCtx())
600+
// displayTypeId,
601+
language
574602
);
575603
displayedValue = dateTimeFormat.format(
576604
Timestamp.valueOf(
577605
value.toString()
578606
)
579607
);
580608
} else if (DisplayType.isLookup(displayTypeId) && displayTypeId != DisplayType.Button && displayTypeId != DisplayType.List) {
581-
Language language = Env.getLanguage(Env.getCtx());
582-
MLookupInfo lookupInfo = MLookupFactory.getLookupInfo(Env.getCtx(), 0, 0, displayTypeId, language, columnName, referenceValueId, false, null, false);
609+
Language language = Env.getLanguage(context);
610+
MLookupInfo lookupInfo = MLookupFactory.getLookupInfo(
611+
context, 0,
612+
0, displayTypeId, language, columnName,
613+
referenceValueId, false,
614+
null, false
615+
);
583616
MLookup lookup = new MLookup(lookupInfo, 0);
584617
NamePair pp = lookup.get(value);
585618
if (pp != null) {
586619
displayedValue = pp.getName();
587620
}
588621
} else if((DisplayType.Button == displayTypeId || DisplayType.List == displayTypeId) && referenceValueId != 0) {
622+
Language language = Env.getLanguage(context);
589623
MLookupInfo lookupInfo = MLookupFactory.getLookup_List(
590-
Env.getLanguage(Env.getCtx()),
624+
language,
591625
referenceValueId
592626
);
593-
594627
MLookup lookup = new MLookup(lookupInfo, 0);
595628
if (value != null) {
596-
Object key = value;
629+
Object key = value;
597630
NamePair pp = lookup.get(key);
598631
if (pp != null) {
599632
displayedValue = pp.getName();

0 commit comments

Comments
 (0)