28
28
import java .util .HashMap ;
29
29
import java .util .Map ;
30
30
import java .util .Optional ;
31
+ import java .util .Properties ;
31
32
32
33
import org .adempiere .core .domains .models .I_C_Order ;
33
34
import org .compiere .model .MLookup ;
50
51
/**
51
52
* Class for handle Values from and to client
52
53
* @author Yamel Senih, [email protected] , http://www.erpya.com
54
+ * @author Edwin Betancourt, [email protected] , https://github.com/EdwinBetanc0urt
53
55
*/
54
56
public class ValueManager {
55
57
@@ -454,7 +456,7 @@ public static boolean getBooleanFromValue(Value value) {
454
456
455
457
return value .getBoolValue ();
456
458
}
457
-
459
+
458
460
/**
459
461
* Get Value from reference
460
462
* @param value
@@ -523,24 +525,47 @@ public static Value.Builder getValueFromReference(Object value, int referenceId)
523
525
return builderValue ;
524
526
}
525
527
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
+ */
526
537
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 ) {
527
546
String displayedValue = null ;
528
547
if (value == null ) {
529
548
return displayedValue ;
530
549
}
531
550
if (displayTypeId <= 0 ) {
532
551
return displayedValue ;
533
552
}
534
- if (DisplayType .isText (displayTypeId )) {
553
+ if (context == null ) {
554
+ context = Env .getCtx ();
555
+ }
556
+ if (DisplayType .isText (displayTypeId )) {
535
557
;
536
558
} else if (displayTypeId == DisplayType .YesNo ) {
537
559
displayedValue = BooleanManager .getBooleanToTranslated (
538
- value .toString ()
560
+ value .toString (),
561
+ Env .getAD_Language (context )
539
562
);
540
563
} else if (displayTypeId == DisplayType .Integer ) {
564
+ // necessary condition do not to enter the condition for decimal struct
565
+ Language language = Env .getLanguage (context );
541
566
DecimalFormat intFormat = DisplayType .getNumberFormat (
542
567
DisplayType .Integer ,
543
- Env . getLanguage ( Env . getCtx ())
568
+ language
544
569
);
545
570
displayedValue = intFormat .format (
546
571
Integer .valueOf (value .toString ())
@@ -557,9 +582,10 @@ public static String getDisplayedValueFromReference(Object value, String columnN
557
582
System .currentTimeMillis () - longValue
558
583
);
559
584
} else {
585
+ Language language = Env .getLanguage (context );
560
586
DecimalFormat numberFormat = DisplayType .getNumberFormat (
561
587
displayTypeId ,
562
- Env . getLanguage ( Env . getCtx ())
588
+ language
563
589
);
564
590
displayedValue = numberFormat .format (
565
591
NumberManager .getBigDecimalFromString (
@@ -568,32 +594,39 @@ public static String getDisplayedValueFromReference(Object value, String columnN
568
594
);
569
595
}
570
596
} else if (DisplayType .isDate (displayTypeId )) {
597
+ Language language = Env .getLanguage (context );
571
598
SimpleDateFormat dateTimeFormat = DisplayType .getDateFormat (
572
599
DisplayType .DateTime ,
573
- Env .getLanguage (Env .getCtx ())
600
+ // displayTypeId,
601
+ language
574
602
);
575
603
displayedValue = dateTimeFormat .format (
576
604
Timestamp .valueOf (
577
605
value .toString ()
578
606
)
579
607
);
580
608
} 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
+ );
583
616
MLookup lookup = new MLookup (lookupInfo , 0 );
584
617
NamePair pp = lookup .get (value );
585
618
if (pp != null ) {
586
619
displayedValue = pp .getName ();
587
620
}
588
621
} else if ((DisplayType .Button == displayTypeId || DisplayType .List == displayTypeId ) && referenceValueId != 0 ) {
622
+ Language language = Env .getLanguage (context );
589
623
MLookupInfo lookupInfo = MLookupFactory .getLookup_List (
590
- Env . getLanguage ( Env . getCtx ()) ,
624
+ language ,
591
625
referenceValueId
592
626
);
593
-
594
627
MLookup lookup = new MLookup (lookupInfo , 0 );
595
628
if (value != null ) {
596
- Object key = value ;
629
+ Object key = value ;
597
630
NamePair pp = lookup .get (key );
598
631
if (pp != null ) {
599
632
displayedValue = pp .getName ();
0 commit comments