Default currency symbol
We ended up fixing it this way, this hasn't been tested on a multicurrency org but this works on a singlecurrency org.
public static String getCurrencyIsoCode(SObject someObject){
String currencyIso = UserInfo.isMultiCurrencyOrganization() ? (String) someObject.get('CurrencyIsoCode') : UserInfo.getDefaultCurrency();
return currencyIso;
}
public static String getCurrencySymbol(SObject someObject) {
return getCurrencySymbolFromIso(getCurrencyIsoCode(someObject));
}
public static String getCurrencySymbolFromIso(String Iso) {
String currencySymbol =
('USD' == Iso ? '$' :
('CAD' == Iso ? '$' :
('EUR' == Iso ? '€' :
('GBP' == Iso ? '£' :
('JPY' == Iso ? '¥' :
('KRW' == Iso ? '₩' :
('CNY' == Iso ? '元' :
Iso)))))));
return currencySymbol;
}