diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/floatingrates/data/FloatingRateDTO.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/floatingrates/data/FloatingRateDTO.java index 68d710bb8..4880f7a87 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/floatingrates/data/FloatingRateDTO.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/floatingrates/data/FloatingRateDTO.java @@ -29,10 +29,12 @@ public class FloatingRateDTO { public BigDecimal fetchBaseRate(LocalDate date) { BigDecimal rate = null; for (FloatingRatePeriodData periodData : this.baseLendingRatePeriods) { - if (date.isBefore(new LocalDate(periodData.getFromDate()))) { + final LocalDate periodFromDate = new LocalDate(periodData.getFromDate()); + if (periodFromDate.isBefore(date) + || periodFromDate.isEqual(date)) { + rate = periodData.getInterestRate(); break; } - rate = periodData.getInterestRate(); } return rate; } diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/floatingrates/service/FloatingRatesReadPlatformServiceImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/floatingrates/service/FloatingRatesReadPlatformServiceImpl.java index 12b426b0f..3aea6f10e 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/floatingrates/service/FloatingRatesReadPlatformServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/floatingrates/service/FloatingRatesReadPlatformServiceImpl.java @@ -139,7 +139,7 @@ public class FloatingRatesReadPlatformServiceImpl implements final String sql = "select " + ratePeriodMapper.schema() + " where period.is_active = 1 and period.floating_rates_id = ? " - + " order by period.from_date "; + + " order by period.from_date desc "; ratePeriods = jdbcTemplate.query(sql, ratePeriodMapper, new Object[] { id }); } diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/data/LoanTermVariationsData.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/data/LoanTermVariationsData.java index 35b5c321f..e9c550227 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/data/LoanTermVariationsData.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/data/LoanTermVariationsData.java @@ -62,8 +62,8 @@ public class LoanTermVariationsData implements Comparable { LoanTermVariationsData loanTermVariation = new LoanTermVariationsData( LoanEnumerations.loanvariationType(LoanTermVariationType.INTEREST_RATE), periodData.getFromDateAsLocalDate(), periodData.getInterestRate(), dateValue, isSpecificToInstallment); - if (interestRateStartDate.isAfter(periodData.getFromDateAsLocalDate())) { + if (!interestRateStartDate.isBefore(periodData.getFromDateAsLocalDate())) { interestRateStartDate = periodData.getFromDateAsLocalDate(); interestRate = periodData.getInterestRate(); } diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/loanschedule/service/LoanScheduleAssembler.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/loanschedule/service/LoanScheduleAssembler.java index c942e0f34..3b3faa5c5 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/loanschedule/service/LoanScheduleAssembler.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/loanschedule/service/LoanScheduleAssembler.java @@ -366,7 +366,7 @@ public class LoanScheduleAssembler { LoanTermVariationsData loanTermVariation = new LoanTermVariationsData( LoanEnumerations.loanvariationType(LoanTermVariationType.INTEREST_RATE), periodData.getFromDateAsLocalDate(), periodData.getInterestRate(), dateValue, isSpecificToInstallment); - if (interestRateStartDate.isAfter(periodData.getFromDateAsLocalDate())) { + if (!interestRateStartDate.isBefore(periodData.getFromDateAsLocalDate())) { interestRateStartDate = periodData.getFromDateAsLocalDate(); annualNominalInterestRate = periodData.getInterestRate(); }