Merge pull request #8028 from tieu1991/patch-1

Fix interest payment deducted from amount due
This commit is contained in:
James Cole 2023-10-06 18:04:13 +02:00 committed by GitHub
commit 778d700ba8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -404,6 +404,22 @@ class CreditRecalculateService
app('log')->debug(sprintf('Case 7 (deposit away from liability): %s - %s = %s', $leftOfDebt, $usedAmount, $result));
return $result;
}
// case 8
// it's a withdrawal from this liability (to expense account).
// if it's a debit ("I owe this amount") this increase the amount due.
// because we are paying interest.
if (
$type === TransactionType::WITHDRAWAL
&& (int)$account->id === (int)$transaction->account_id
&& -1 === bccomp($usedAmount, '0')
&& 'debit' === $direction
) {
$usedAmount = app('steam')->positive($usedAmount);
$result = bcadd($leftOfDebt, $usedAmount);
app('log')->debug(sprintf('Case 8 (withdrawal away from liability): %s + %s = %s', $leftOfDebt, $usedAmount, $result));
return $result;
}
// in any other case, remove amount from left of debt.
if (in_array($type, [TransactionType::WITHDRAWAL, TransactionType::DEPOSIT, TransactionType::TRANSFER], true)) {