This is an automated email from the ASF dual-hosted git repository.
arnold pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new 69c25c282 FINERACT-1734: Trigger LoanBalanceChangedBusinessEvent for
charges
69c25c282 is described below
commit 69c25c282bf80d8a550877bbbcb0d4520a88036a
Author: Adam Saghy <[email protected]>
AuthorDate: Thu Dec 15 16:24:24 2022 +0100
FINERACT-1734: Trigger LoanBalanceChangedBusinessEvent for charges
---
.../service/LoanChargeWritePlatformServiceImpl.java | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeWritePlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeWritePlatformServiceImpl.java
index 18b38e0a6..7f4dc2fef 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeWritePlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeWritePlatformServiceImpl.java
@@ -262,6 +262,7 @@ public class LoanChargeWritePlatformServiceImpl implements
LoanChargeWritePlatfo
this.loanAccountDomainService.setLoanDelinquencyTag(loan,
DateUtils.getBusinessLocalDate());
businessEventNotifierService.notifyPostBusinessEvent(new
LoanAddChargeBusinessEvent(loanCharge));
+ businessEventNotifierService.notifyPostBusinessEvent(new
LoanBalanceChangedBusinessEvent(loan));
return new
CommandProcessingResultBuilder().withCommandId(command.commandId()) //
.withEntityId(loanCharge.getId()) //
.withEntityExternalId(loanCharge.getExternalId()) //
@@ -366,7 +367,7 @@ public class LoanChargeWritePlatformServiceImpl implements
LoanChargeWritePlatfo
undoWaivedCharge(changes, loan, loanTransaction, loanChargePaidBy);
businessEventNotifierService.notifyPostBusinessEvent(new
LoanWaiveChargeUndoBusinessEvent(loanCharge));
-
+ businessEventNotifierService.notifyPostBusinessEvent(new
LoanBalanceChangedBusinessEvent(loan));
changes.put("principalPortion", loanTransaction.getPrincipalPortion());
changes.put("interestPortion", loanTransaction.getInterestPortion());
changes.put("feeChargesPortion",
loanTransaction.getFeeChargesPortion());
@@ -500,7 +501,7 @@ public class LoanChargeWritePlatformServiceImpl implements
LoanChargeWritePlatfo
this.loanAccountDomainService.setLoanDelinquencyTag(loan,
DateUtils.getBusinessLocalDate());
businessEventNotifierService.notifyPostBusinessEvent(new
LoanWaiveChargeBusinessEvent(loanCharge));
-
+ businessEventNotifierService.notifyPostBusinessEvent(new
LoanBalanceChangedBusinessEvent(loan));
return new CommandProcessingResultBuilder() //
.withCommandId(command.commandId()) //
.withEntityId(loanChargeId) //
@@ -627,6 +628,7 @@ public class LoanChargeWritePlatformServiceImpl implements
LoanChargeWritePlatfo
AccountTransferDetails transferDetails =
this.accountTransferDetailRepository.findById(transferTransactionId)
.orElseThrow(() -> new
AccountTransferNotFoundException(transferTransactionId));
LoanTransaction loanTransaction =
transferDetails.getAccountTransferTransactions().get(0).getToLoanTransaction();
+ businessEventNotifierService.notifyPostBusinessEvent(new
LoanBalanceChangedBusinessEvent(loan));
return new CommandProcessingResultBuilder() //
.withCommandId(command.commandId()) //
.withEntityId(loanChargeId) //
@@ -756,7 +758,6 @@ public class LoanChargeWritePlatformServiceImpl implements
LoanChargeWritePlatfo
this.loanAccountDomainService.recalculateAccruals(loan);
}
this.loanAccountDomainService.setLoanDelinquencyTag(loan,
DateUtils.getBusinessLocalDate());
- businessEventNotifierService.notifyPostBusinessEvent(new
LoanApplyOverdueChargeBusinessEvent(loan));
}
}
@@ -1021,14 +1022,12 @@ public class LoanChargeWritePlatformServiceImpl
implements LoanChargeWritePlatfo
LoanRepaymentScheduleInstallment installment = null;
LocalDate lastChargeAppliedDate = dueDate;
+ LocalDate recalculateFrom = DateUtils.getBusinessLocalDate();
if (!scheduleDates.isEmpty()) {
installment = loan.fetchRepaymentScheduleInstallment(periodNumber);
lastChargeAppliedDate = installment.getDueDate();
- }
- LocalDate recalculateFrom = DateUtils.getBusinessLocalDate();
-
- if (loan != null) {
businessEventNotifierService.notifyPreBusinessEvent(new
LoanApplyOverdueChargeBusinessEvent(loan));
+
for (Map.Entry<Integer, LocalDate> entry :
scheduleDates.entrySet()) {
final LoanCharge loanCharge =
loanChargeAssembler.createNewFromJson(loan, chargeDefinition, command,
entry.getValue());
@@ -1049,6 +1048,8 @@ public class LoanChargeWritePlatformServiceImpl
implements LoanChargeWritePlatfo
lastChargeAppliedDate = entry.getValue();
}
}
+ businessEventNotifierService.notifyPostBusinessEvent(new
LoanApplyOverdueChargeBusinessEvent(loan));
+ businessEventNotifierService.notifyPostBusinessEvent(new
LoanBalanceChangedBusinessEvent(loan));
}
return new LoanOverdueDTO(loan, runInterestRecalculation,
recalculateFrom, lastChargeAppliedDate);