adamsaghy commented on code in PR #3751:
URL: https://github.com/apache/fineract/pull/3751#discussion_r1505536744
##########
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java:
##########
@@ -235,27 +235,31 @@ protected void processCreditTransaction(LoanTransaction
loanTransaction, Transac
if (hasNoCustomCreditAllocationRule(loanTransaction)) {
super.processCreditTransaction(loanTransaction,
ctx.getOverpaymentHolder(), ctx.getCurrency(), ctx.getInstallments());
} else {
- log.debug("Processing credit transaction with custom credit
allocation rules");
-
loanTransaction.resetDerivedComponents();
- List<LoanTransactionToRepaymentScheduleMapping>
transactionMappings = new ArrayList<>();
final Comparator<LoanRepaymentScheduleInstallment> byDate =
Comparator.comparing(LoanRepaymentScheduleInstallment::getDueDate);
ctx.getInstallments().sort(byDate);
final Money zeroMoney = Money.zero(ctx.getCurrency());
Money transactionAmount =
loanTransaction.getAmount(ctx.getCurrency());
- Money amountToDistribute = MathUtil
-
.negativeToZero(loanTransaction.getAmount(ctx.getCurrency()).minus(ctx.getOverpaymentHolder().getMoneyObject()));
- Money repaidAmount =
MathUtil.negativeToZero(transactionAmount.minus(amountToDistribute));
- loanTransaction.setOverPayments(repaidAmount);
-
ctx.getOverpaymentHolder().setMoneyObject(ctx.getOverpaymentHolder().getMoneyObject().minus(repaidAmount));
+ Money totalOverpaid = ctx.getOverpaymentHolder().getMoneyObject();
+ Money amountToDistribute =
MathUtil.negativeToZero(loanTransaction.getAmount(ctx.getCurrency()).minus(totalOverpaid));
+ Money overpaymentAmount =
MathUtil.negativeToZero(transactionAmount.minus(amountToDistribute));
+ loanTransaction.setOverPayments(overpaymentAmount);
- if (amountToDistribute.isGreaterThanZero()) {
+ if (transactionAmount.isGreaterThanZero()) {
Review Comment:
This seems wrong. If the overpayment amount was higher than the Chargeback,
we are not adding the transaction amount to the repayment schedule
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]