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,

Reply via email to