diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java index 56eba2696..0c3d05dc1 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java @@ -3874,7 +3874,11 @@ public class Loan extends AbstractPersistableCustom { return disbursementDate; } - public LocalDate getWrittenOffDate() { + public void setActualDisbursementDate(Date actualDisbursementDate) { + this.actualDisbursementDate = actualDisbursementDate; + } + + public LocalDate getWrittenOffDate() { LocalDate writtenOffDate = null; if (this.writtenOffOnDate != null) { writtenOffDate = new LocalDate(this.writtenOffOnDate); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java index abb635391..836b3140a 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java @@ -257,6 +257,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf final Loan loan = this.loanAssembler.assembleFrom(loanId); final LocalDate actualDisbursementDate = command.localDateValueOfParameterNamed("actualDisbursementDate"); + // validate ActualDisbursement Date Against Expected Disbursement Date LoanProduct loanProduct = loan.loanProduct(); if(loanProduct.syncExpectedWithDisbursementDate()){ @@ -274,6 +275,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf checkForProductMixRestrictions(loan); LocalDate recalculateFrom = null; + loan.setActualDisbursementDate(actualDisbursementDate.toDate()); ScheduleGeneratorDTO scheduleGeneratorDTO = this.loanUtilService.buildScheduleGeneratorDTO(loan, recalculateFrom); // validate actual disbursement date against meeting date @@ -678,6 +680,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf final ApplicationCurrency applicationCurrency = this.applicationCurrencyRepository.findOneWithNotFoundDetection(currency); final LocalDate recalculateFrom = null; + loan.setActualDisbursementDate(null); ScheduleGeneratorDTO scheduleGeneratorDTO = this.loanUtilService.buildScheduleGeneratorDTO(loan, recalculateFrom); final Map changes = loan.undoDisbursal(scheduleGeneratorDTO, existingTransactionIds,