close #446 Fixed: Wrong transfer amount EUR to TRY currency rate issue

This commit is contained in:
cuneytsenturk 2018-08-07 19:58:24 +03:00
parent 62beb11051
commit 31c21aebd7
3 changed files with 53 additions and 2 deletions

View File

@ -137,10 +137,25 @@ class Transfers extends Controller
// Convert amount if not same currency
if ($payment_currency_code != $revenue_currency_code) {
$default_currency = setting('general.default_currency', 'USD');
$default_amount = $request['amount'];
if ($default_currency != $payment_currency_code) {
$default_amount_model = new Transfer();
$default_amount_model->default_currency_code = $default_currency;
$default_amount_model->amount = $request['amount'];
$default_amount_model->currency_code = $payment_currency_code;
$default_amount_model->currency_rate = $currencies[$payment_currency_code];
$default_amount = $default_amount_model->getDivideConvertedAmount();
}
$transfer_amount = new Transfer();
$transfer_amount->default_currency_code = $payment_currency_code;
$transfer_amount->amount = $request['amount'];
$transfer_amount->amount = $default_amount;
$transfer_amount->currency_code = $revenue_currency_code;
$transfer_amount->currency_rate = $currencies[$revenue_currency_code];
@ -243,10 +258,25 @@ class Transfers extends Controller
// Convert amount if not same currency
if ($payment_currency_code != $revenue_currency_code) {
$default_currency = setting('general.default_currency', 'USD');
$default_amount = $request['amount'];
if ($default_currency != $payment_currency_code) {
$default_amount_model = new Transfer();
$default_amount_model->default_currency_code = $default_currency;
$default_amount_model->amount = $request['amount'];
$default_amount_model->currency_code = $payment_currency_code;
$default_amount_model->currency_rate = $currencies[$payment_currency_code];
$default_amount = $default_amount_model->getDivideConvertedAmount();
}
$transfer_amount = new Transfer();
$transfer_amount->default_currency_code = $payment_currency_code;
$transfer_amount->amount = $request['amount'];
$transfer_amount->amount = $default_amount;
$transfer_amount->currency_code = $revenue_currency_code;
$transfer_amount->currency_rate = $currencies[$revenue_currency_code];

View File

@ -49,4 +49,14 @@ class Transfer extends Model
{
return $this->dynamicConvert($this->default_currency_code, $this->amount, $this->currency_code, $this->currency_rate, $format);
}
public function getReverseConvertedAmount($format = false)
{
return $this->reverseConvert($this->amount, $this->currency_code, $this->currency_rate, $format);
}
public function getDivideConvertedAmount($format = false)
{
return $this->divide($this->amount, $this->currency_code, $this->currency_rate, $format);
}
}

View File

@ -21,6 +21,17 @@ trait Currencies
return $money;
}
public function divide($amount, $code, $rate, $format = false)
{
if ($format) {
$money = Money::$code($amount, true)->divide((double) $rate)->format();
} else {
$money = Money::$code($amount)->divide((double) $rate)->getAmount();
}
return $money;
}
public function reverseConvert($amount, $code, $rate, $format = false)
{
$default = setting('general.default_currency', 'USD');