fix: increase precision while calculate commission

This commit is contained in:
Djery-Tom 2023-07-27 13:18:13 +01:00
parent d954a2b43e
commit 9942b62ed3
1 changed files with 5 additions and 5 deletions

View File

@ -172,7 +172,7 @@ trait Helper
return $money->formatTo(app()->getLocale()); return $money->formatTo(app()->getLocale());
} }
private function convertMoney($amount, $init_country, $final_country) private function convertMoney($amount, $init_country, $final_country, $precision = 2)
{ {
// set to whatever your rates are relative to // set to whatever your rates are relative to
$baseCurrency = 'USD'; $baseCurrency = 'USD';
@ -197,13 +197,13 @@ trait Helper
$converter = new CurrencyConverter($provider); $converter = new CurrencyConverter($provider);
$init_country = Country::findOrFail($init_country); $init_country = Country::findOrFail($init_country);
$final_country = Country::findOrFail($final_country); $final_country = Country::findOrFail($final_country);
$init_money = Money::of(round($amount, 2), $init_country->currency->code, new AutoContext()); $init_money = Money::of(round($amount, $precision), $init_country->currency->code, new AutoContext());
return $converter->convert($init_money, $final_country->currency->code, RoundingMode::DOWN); return $converter->convert($init_money, $final_country->currency->code, RoundingMode::DOWN);
} }
public function toMoneyWithCurrency($amount, $init_country, $final_country) public function toMoneyWithCurrency($amount, $init_country, $final_country, $precision = 2)
{ {
return $this->convertMoney($amount, $init_country, $final_country)->formatTo(app()->getLocale()); return $this->convertMoney($amount, $init_country, $final_country, $precision)->formatTo(app()->getLocale());
} }
public function toMoneyAmount($amount, $init_country, $final_country) public function toMoneyAmount($amount, $init_country, $final_country)
@ -213,7 +213,7 @@ trait Helper
public function getExchangeRate($init_country, $final_country) public function getExchangeRate($init_country, $final_country)
{ {
return $this->toMoney(1, $init_country) . ' = ' . $this->toMoneyWithCurrency(1, $init_country, $final_country); return $this->toMoney(1, $init_country) . ' = ' . $this->toMoneyWithCurrency(1, $init_country, $final_country, 6);
} }
public function toUSDAmount($amount, $init_country, $final_currency_code = 'USD') public function toUSDAmount($amount, $init_country, $final_currency_code = 'USD')