X++:
/// <summary>
/// Replaces language rendering culture currency symbol with the given one
/// </summary>
/// <param name = "_languageId">language rendering culture</param>
/// <param name = "_amountCur">AmountCur</param>
/// <param name = "_currencySymbol">New currency symbol</param>
/// <returns>Formatted string</returns>
public str eogChangeCurSymbolForAmountStr(LanguageId _languageId, System.Double _amountCur, CurrencySymbol _currencySymbol)
{
System.Globalization.CultureInfo culture;
str res;
System.Exception e;
str curSymbol;
culture = new System.Globalization.CultureInfo(_languageId);
try
{
res = _amountCur.ToString("C", culture);
curSymbol = culture.NumberFormat.CurrencySymbol;
res = strReplace(res, curSymbol, _currencySymbol);
}
catch(Exception::CLRError)
{
e = CLRInterop::getLastException();
while( e )
{
error( e.get_Message() );
e = e.get_InnerException();
}
throw Exception::Error;
}
return res;
}
/// <summary>
/// Gets amount with currency symbol
/// </summary>
/// <param name = "_amountCur">Amount in currency</param>
/// <param name = "_currency">Currency to present symbol</param>
/// <param name = "_languageId">Language for rendering culture</param>
/// <returns>Formatted string for amunt cur with currency symbol</returns>
public EOGAmountStringWithCurrencySymbol eogAmountStringWithCurrencySymbol(AmountCur _amountCur, CurrencyCode _currency, LanguageId _languageId)
{
Currency currency = Currency::find(_currency);
return this.eogChangeCurSymbolForAmountStr(_languageId, _amountCur, currency.Symbol);;
}
/// <summary>
/// Populates <c>BankPaymAdviceVendTmp</c> and inserts the report information for a single invoice and related payment.
/// </summary>
protected void insertBankPaymAdviceTmp()
{
BankPaymAdviceVendTmp bankPaymAdviceVendTmp;
str email;
next insertBankPaymAdviceTmp();
bankPaymAdviceVendTmp = this.bankPaymAdviceTmp as BankPaymAdviceVendTmp;
if (bankPaymAdviceVendTmp.RecId)
{
ttsbegin;
bankPaymAdviceVendTmp.selectForUpdate(true);
bankPaymAdviceVendTmp.EOGBalance01Total+=bankPaymAdviceVendTmp.Balance01;
bankPaymAdviceVendTmp.EOGAmountStringWithCurrencySymbol = this.eogAmountStringWithCurrencySymbol(bankPaymAdviceVendTmp.EOGBalance01Total, bankPaymAdviceVendTmp.CurrencyCode, VendTable::find(bankPaymAdviceVendTmp.AccountNum).languageId());
bankPaymAdviceVendTmp.update();
ttscommit;
}
}