From 651da79697161f167ef138ffb24a99ae4bd7c63a Mon Sep 17 00:00:00 2001 From: Pramod Nuthakki Date: Wed, 17 Dec 2014 15:22:29 +0530 Subject: [PATCH] MIFOSX-1760 : corrected start date calculation for approval --- .../org/mifosplatform/portfolio/loanaccount/domain/Loan.java | 4 ++-- .../loanaccount/domain/LoanAccountDomainServiceJpa.java | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java index 95b32fd03..41cb757a5 100755 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java @@ -1913,7 +1913,7 @@ public class Loan extends AbstractPersistable { // Approved amount has to be less than or equal to principal // amount demanded - if (approvedLoanAmount.compareTo(this.proposedPrincipal) < 1) { + if (approvedLoanAmount.compareTo(this.proposedPrincipal) == -1) { this.approvedPrincipal = approvedLoanAmount; @@ -1928,7 +1928,7 @@ public class Loan extends AbstractPersistable { actualChanges.put(LoanApiConstants.approvedLoanAmountParameterName, approvedLoanAmount); actualChanges.put(LoanApiConstants.disbursementPrincipalParameterName, approvedLoanAmount); - } else { + } else if(approvedLoanAmount.compareTo(this.proposedPrincipal) == 1){ final String errorMessage = "Loan approved amount can't be greater than loan amount demanded."; throw new InvalidLoanStateTransitionException("approval", "amount.can't.be.greater.than.loan.amount.demanded", errorMessage, this.proposedPrincipal, approvedLoanAmount); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanAccountDomainServiceJpa.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanAccountDomainServiceJpa.java index 6efcb7e72..69e3024a2 100755 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanAccountDomainServiceJpa.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/LoanAccountDomainServiceJpa.java @@ -523,7 +523,10 @@ public class LoanAccountDomainServiceJpa implements LoanAccountDomainService { final MonetaryCurrency currency = loan.getCurrency(); ApplicationCurrency applicationCurrency = this.applicationCurrencyRepository.findOneWithNotFoundDetection(currency); - LocalDate calculatedRepaymentsStartingFromDate = loan.getExpectedFirstRepaymentOnDate(); + final CalendarInstance calendarInstance = this.calendarInstanceRepository.findCalendarInstaneByEntityId(loan.getId(), + CalendarEntityType.LOANS.getValue()); + LocalDate calculatedRepaymentsStartingFromDate = this.getCalculatedRepaymentsStartingFromDate(loan.getDisbursementDate(), loan, + calendarInstance); final boolean isHolidayEnabled = this.configurationDomainService.isRescheduleRepaymentsOnHolidaysEnabled(); final List holidays = this.holidayRepository.findByOfficeIdAndGreaterThanDate(loan.getOfficeId(), loan .getExpectedDisbursedOnLocalDate().toDate(), HolidayStatusType.ACTIVE.getValue());