Merge pull request #1018 from pramodn02/develop
MIFOSX-1417 - corrected accruedTill date internally for calculations
This commit is contained in:
+10
-6
@@ -93,13 +93,18 @@ public class LoanAccrualWritePlatformServiceImpl implements LoanAccrualWritePlat
|
|||||||
private String addPeriodicAccruals(final LocalDate tilldate, Collection<LoanScheduleAccrualData> loanScheduleAccrualDatas) {
|
private String addPeriodicAccruals(final LocalDate tilldate, Collection<LoanScheduleAccrualData> loanScheduleAccrualDatas) {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
Set<Long> loansIds = new HashSet<>();
|
Set<Long> loansIds = new HashSet<>();
|
||||||
|
LocalDate accruredTill = null;
|
||||||
for (final LoanScheduleAccrualData accrualData : loanScheduleAccrualDatas) {
|
for (final LoanScheduleAccrualData accrualData : loanScheduleAccrualDatas) {
|
||||||
try {
|
try {
|
||||||
if (!loansIds.contains(accrualData.getLoanId())) {
|
if (!loansIds.contains(accrualData.getLoanId())) {
|
||||||
if (accrualData.getDueDateAsLocaldate().isAfter(tilldate)) {
|
if (accrualData.getDueDateAsLocaldate().isAfter(tilldate)) {
|
||||||
addAccrualTillSpecificDate(tilldate, accrualData);
|
if (accruredTill == null) {
|
||||||
|
accruredTill = accrualData.getAccruedTill();
|
||||||
|
}
|
||||||
|
addAccrualTillSpecificDate(tilldate, accrualData, accruredTill);
|
||||||
} else {
|
} else {
|
||||||
addAccrualAccounting(accrualData);
|
addAccrualAccounting(accrualData);
|
||||||
|
accruredTill = accrualData.getDueDateAsLocaldate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -115,16 +120,15 @@ public class LoanAccrualWritePlatformServiceImpl implements LoanAccrualWritePlat
|
|||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addAccrualTillSpecificDate(final LocalDate tilldate, final LoanScheduleAccrualData accrualData) throws Exception {
|
private void addAccrualTillSpecificDate(final LocalDate tilldate, final LoanScheduleAccrualData accrualData,
|
||||||
|
final LocalDate accruredTill) throws Exception {
|
||||||
int totalNumberOfDays = Days.daysBetween(accrualData.getFromDateAsLocaldate(), accrualData.getDueDateAsLocaldate()).getDays();
|
int totalNumberOfDays = Days.daysBetween(accrualData.getFromDateAsLocaldate(), accrualData.getDueDateAsLocaldate()).getDays();
|
||||||
LocalDate startDate = accrualData.getAccruedTill();
|
LocalDate startDate = accruredTill;
|
||||||
if (startDate == null) {
|
if (startDate == null) {
|
||||||
startDate = accrualData.getFromDateAsLocaldate();
|
startDate = accrualData.getFromDateAsLocaldate();
|
||||||
}
|
}
|
||||||
int daysToBeAccrued = Days.daysBetween(startDate, tilldate).getDays();
|
int daysToBeAccrued = Days.daysBetween(startDate, tilldate).getDays();
|
||||||
if(daysToBeAccrued < 1){
|
if (daysToBeAccrued < 1) { return; }
|
||||||
return;
|
|
||||||
}
|
|
||||||
int daysInSchedule = Days.daysBetween(accrualData.getFromDateAsLocaldate(), tilldate).getDays();
|
int daysInSchedule = Days.daysBetween(accrualData.getFromDateAsLocaldate(), tilldate).getDays();
|
||||||
switch (accrualData.getRepaymentFrequency()) {
|
switch (accrualData.getRepaymentFrequency()) {
|
||||||
case MONTHS:
|
case MONTHS:
|
||||||
|
|||||||
Reference in New Issue
Block a user