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 c4d065fc7 FINERACT-1838: Loan account external events with repayment
schedule
c4d065fc7 is described below
commit c4d065fc7c79d624e952b0a1151296df4465f824
Author: Jose Alberto Hernandez <[email protected]>
AuthorDate: Fri Dec 16 00:21:20 2022 -0600
FINERACT-1838: Loan account external events with repayment schedule
---
.../serializer/loan/LoanBusinessEventSerializer.java | 1 +
.../loanaccount/service/LoanReadPlatformService.java | 2 ++
.../loanaccount/service/LoanReadPlatformServiceImpl.java | 14 ++++++++++++++
3 files changed, 17 insertions(+)
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanBusinessEventSerializer.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanBusinessEventSerializer.java
index 43ad6eacd..b8742fc66 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanBusinessEventSerializer.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanBusinessEventSerializer.java
@@ -46,6 +46,7 @@ public class LoanBusinessEventSerializer extends
AbstractBusinessEventSerializer
protected <T> ByteBufferSerializable toAvroDTO(BusinessEvent<T> rawEvent) {
LoanBusinessEvent event = (LoanBusinessEvent) rawEvent;
LoanAccountData data = service.retrieveOne(event.get().getId());
+ data = service.fetchRepaymentScheduleData(data);
return mapper.map(data);
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformService.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformService.java
index 4b4d9ce5e..12c0eb587 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformService.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformService.java
@@ -48,6 +48,8 @@ public interface LoanReadPlatformService {
LoanAccountData retrieveOne(Long loanId);
+ LoanAccountData fetchRepaymentScheduleData(LoanAccountData accountData);
+
LoanScheduleData retrieveRepaymentSchedule(Long loanId,
RepaymentScheduleRelatedLoanData repaymentScheduleRelatedData,
Collection<DisbursementData> disbursementData, boolean
isInterestRecalculationEnabled, BigDecimal totalPaidFeeCharges);
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
index 5d8b3cff6..b9f7edba2 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
@@ -230,6 +230,20 @@ public class LoanReadPlatformServiceImpl implements
LoanReadPlatformService {
}
+ @Override
+ public LoanAccountData fetchRepaymentScheduleData(LoanAccountData
accountData) {
+ final RepaymentScheduleRelatedLoanData repaymentScheduleRelatedData =
accountData.getTimeline().repaymentScheduleRelatedData(
+ accountData.getCurrency(), accountData.getPrincipal(),
accountData.getApprovedPrincipal(),
+ accountData.getInArrearsTolerance(),
accountData.getFeeChargesAtDisbursementCharged());
+
+ final Collection<DisbursementData> disbursementData =
retrieveLoanDisbursementDetails(accountData.getId());
+ final LoanScheduleData repaymentSchedule =
retrieveRepaymentSchedule(accountData.getId(), repaymentScheduleRelatedData,
+ disbursementData, accountData.isInterestRecalculationEnabled(),
+ accountData.getSummary() != null ?
accountData.getSummary().getFeeChargesPaid() : BigDecimal.ZERO);
+ accountData.setRepaymentSchedule(repaymentSchedule);
+ return accountData;
+ }
+
@Override
public LoanScheduleData retrieveRepaymentSchedule(final Long loanId,
final RepaymentScheduleRelatedLoanData
repaymentScheduleRelatedLoanData, Collection<DisbursementData> disbursementData,