Untitled
unknown
plain_text
3 years ago
1.3 kB
9
Indexable
public BigDecimal calculateFinalAmount(BigDecimal originalAmount, String fromCurrency, String toCurrency) {
BigDecimal finalAmount = null;
switch (fromCurrency) {
case "PLN":
if (toCurrency.equals("USD")) {
finalAmount = originalAmount.divide(PL_USD_EXCHANGE_RATE, 2, RoundingMode.HALF_UP);
break;
}
finalAmount = originalAmount.divide(PL_EUR_EXCHANGE_RATE, 2, RoundingMode.HALF_UP);
break;
case "USD":
if (toCurrency.equals("PLN")) {
finalAmount = originalAmount.multiply(PL_USD_EXCHANGE_RATE);
break;
}
finalAmount = originalAmount.divide(USD_EUR_EXCHANGE_RATE, 2, RoundingMode.HALF_UP);
break;
case "EUR":
if (toCurrency.equals("PLN")) {
finalAmount = originalAmount.multiply(PL_EUR_EXCHANGE_RATE);
break;
}
finalAmount = originalAmount.multiply(USD_EUR_EXCHANGE_RATE);
break;
default:
throw new RuntimeException("Unreachable");
}
return finalAmount;
}Editor is loading...