Fixes for fee calculations

This commit is contained in:
David Bomba 2022-03-16 20:14:40 +11:00
parent 8890df9e7e
commit b6ef517d93

View File

@ -338,6 +338,28 @@ class CompanyGateway extends BaseModel
$fee = 0; $fee = 0;
if($fees_and_limits->adjust_fee_percent)
{
$adjusted_fee = 0;
if ($fees_and_limits->fee_amount) {
$adjusted_fee += $fees_and_limits->fee_amount + $amount;
}
if ($fees_and_limits->fee_percent) {
$divisor = 1 - ($fees_and_limits->fee_percent/100);
$gross_amount = round($adjusted_fee/$divisor,2);
$fee = $gross_amount - $amount;
}
}
else
{
if ($fees_and_limits->fee_amount) { if ($fees_and_limits->fee_amount) {
$fee += $fees_and_limits->fee_amount; $fee += $fees_and_limits->fee_amount;
} }
@ -348,12 +370,11 @@ class CompanyGateway extends BaseModel
} }
//elseif ($fees_and_limits->adjust_fee_percent) { //elseif ($fees_and_limits->adjust_fee_percent) {
// $fee += round(($amount / (1 - $fees_and_limits->fee_percent / 100) - $amount), 2); // $fee += round(($amount / (1 - $fees_and_limits->fee_percent / 100) - $amount), 2);
// } //} else {
else {
$fee += round(($amount * $fees_and_limits->fee_percent / 100), 2); $fee += round(($amount * $fees_and_limits->fee_percent / 100), 2);
//}
} }
} }
/* Cap fee if we have to here. */ /* Cap fee if we have to here. */
if ($fees_and_limits->fee_cap > 0 && ($fee > $fees_and_limits->fee_cap)) { if ($fees_and_limits->fee_cap > 0 && ($fee > $fees_and_limits->fee_cap)) {
$fee = $fees_and_limits->fee_cap; $fee = $fees_and_limits->fee_cap;