2021-02-08 11:24:14 +07:00
|
|
|
package com.cubetiqs.money
|
2020-08-26 21:32:06 +07:00
|
|
|
|
|
|
|
object MoneyExchangeUtils {
|
2021-02-08 12:39:52 +07:00
|
|
|
fun exchange(exchangeFrom: StdMoney, exchangeToCurrency: StdMoney.Currency): StdMoney {
|
2021-02-08 21:34:17 +07:00
|
|
|
val rateFrom = MoneyConfig.getRate(exchangeFrom.getCurrency())
|
2020-08-26 21:44:33 +07:00
|
|
|
val rateTo = MoneyConfig.getRate(exchangeToCurrency)
|
2021-02-08 21:34:17 +07:00
|
|
|
return Money(value = computeRate(rateFrom, rateTo, amountFrom = exchangeFrom.getValue()), currency = exchangeToCurrency)
|
2020-08-26 21:44:33 +07:00
|
|
|
}
|
|
|
|
|
|
|
|
private fun computeRate(rateFrom: Double, rateTo: Double, baseRate: Double = 1.0, amountFrom: Double = 1.0): Double {
|
2020-08-26 21:32:06 +07:00
|
|
|
return amountFrom * ((baseRate / rateFrom) / (baseRate / rateTo))
|
|
|
|
}
|
2021-02-08 12:39:52 +07:00
|
|
|
|
2021-02-08 16:08:00 +07:00
|
|
|
fun getBaseCurrency(): StdMoney.Currency {
|
|
|
|
return StdMoney.USD
|
2021-02-08 12:39:52 +07:00
|
|
|
}
|
2020-08-26 21:32:06 +07:00
|
|
|
}
|