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,22 +338,43 @@ class CompanyGateway extends BaseModel
$fee = 0; $fee = 0;
if ($fees_and_limits->fee_amount) {
$fee += $fees_and_limits->fee_amount;
}
if ($fees_and_limits->fee_percent) { if($fees_and_limits->adjust_fee_percent)
if($fees_and_limits->fee_percent == 100){ //unusual edge case if the user wishes to charge a fee of 100% 09/01/2022 {
$fee += $amount; $adjusted_fee = 0;
}
// elseif ($fees_and_limits->adjust_fee_percent) {
// $fee += round(($amount / (1 - $fees_and_limits->fee_percent / 100) - $amount), 2);
// }
else {
$fee += round(($amount * $fees_and_limits->fee_percent / 100), 2);
}
}
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) {
$fee += $fees_and_limits->fee_amount;
}
if ($fees_and_limits->fee_percent) {
if($fees_and_limits->fee_percent == 100){ //unusual edge case if the user wishes to charge a fee of 100% 09/01/2022
$fee += $amount;
}
//elseif ($fees_and_limits->adjust_fee_percent) {
// $fee += round(($amount / (1 - $fees_and_limits->fee_percent / 100) - $amount), 2);
//} else {
$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;