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 ByteBufferSerializable toAvroDTO(BusinessEvent 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, 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 = 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,