MIFOSX-1340 : corrected schedule generator to use calendar instance
This commit is contained in:
+14
@@ -462,4 +462,18 @@ public class CalendarUtils {
|
||||
|
||||
return getNextRecurringDate(recur, seedDate, currentDate);
|
||||
}
|
||||
|
||||
public static LocalDate getNextScheduleDate(final Calendar calendar, final LocalDate startDate) {
|
||||
final Recur recur = CalendarUtils.getICalRecur(calendar.getRecurrence());
|
||||
if (recur == null) { return null; }
|
||||
LocalDate date = startDate;
|
||||
final LocalDate seedDate = calendar.getStartDateLocalDate();
|
||||
if (isValidRedurringDate(calendar.getRecurrence(), seedDate, date)) {
|
||||
date = date.plusDays(1);
|
||||
}
|
||||
|
||||
final LocalDate scheduleDate = getNextRecurringDate(recur, seedDate, date);
|
||||
|
||||
return scheduleDate;
|
||||
}
|
||||
}
|
||||
|
||||
+10
-2
@@ -42,6 +42,8 @@ import org.mifosplatform.infrastructure.core.service.DateUtils;
|
||||
import org.mifosplatform.organisation.monetary.domain.Money;
|
||||
import org.mifosplatform.organisation.staff.domain.Staff;
|
||||
import org.mifosplatform.portfolio.accountdetails.domain.AccountType;
|
||||
import org.mifosplatform.portfolio.calendar.domain.Calendar;
|
||||
import org.mifosplatform.portfolio.calendar.service.CalendarUtils;
|
||||
import org.mifosplatform.portfolio.client.domain.Client;
|
||||
import org.mifosplatform.portfolio.common.domain.PeriodFrequencyType;
|
||||
import org.mifosplatform.portfolio.group.domain.Group;
|
||||
@@ -1042,10 +1044,16 @@ public class RecurringDepositAccount extends SavingsAccount {
|
||||
return this.accountTermAndPreClosure.isTransferInterestToLinkedAccount();
|
||||
}
|
||||
|
||||
public void generateSchedule(final PeriodFrequencyType frequency, final Integer recurringEvery) {
|
||||
public void generateSchedule(final PeriodFrequencyType frequency, final Integer recurringEvery, final Calendar calendar) {
|
||||
final List<RecurringDepositScheduleInstallment> depositScheduleInstallments = depositScheduleInstallments();
|
||||
depositScheduleInstallments.clear();
|
||||
LocalDate installmentDate = depositStartDate();
|
||||
LocalDate installmentDate = null;
|
||||
if (this.isCalendarInherited()) {
|
||||
installmentDate = CalendarUtils.getNextScheduleDate(calendar, accountSubmittedOrActivationDate());
|
||||
} else {
|
||||
installmentDate = depositStartDate();
|
||||
}
|
||||
|
||||
final LocalDate maturityDate = calculateMaturityDate();
|
||||
int installmentNumber = 1;
|
||||
final BigDecimal depositAmount = this.recurringDetail.mandatoryRecommendedDepositAmount();
|
||||
|
||||
+1
-1
@@ -289,7 +289,7 @@ public class DepositAccountWritePlatformServiceJpaRepositoryImpl implements Depo
|
||||
final PeriodFrequencyType frequencyType = CalendarFrequencyType.from(CalendarUtils.getFrequency(calendar.getRecurrence()));
|
||||
Integer frequency = CalendarUtils.getInterval(calendar.getRecurrence());
|
||||
frequency = frequency == -1 ? 1 : frequency;
|
||||
account.generateSchedule(frequencyType, frequency);
|
||||
account.generateSchedule(frequencyType, frequency, calendar);
|
||||
account.updateMaturityDateAndAmount(mc, isPreMatureClosure);
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -240,7 +240,7 @@ public class DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl impl
|
||||
final PeriodFrequencyType frequencyType = CalendarFrequencyType.from(CalendarUtils.getFrequency(calendar.getRecurrence()));
|
||||
Integer frequency = CalendarUtils.getInterval(calendar.getRecurrence());
|
||||
frequency = frequency == -1 ? 1 : frequency;
|
||||
account.generateSchedule(frequencyType, frequency);
|
||||
account.generateSchedule(frequencyType, frequency, calendar);
|
||||
final boolean isPreMatureClosure = false;
|
||||
account.updateMaturityDateAndAmount(mc, isPreMatureClosure);
|
||||
account.validateApplicableInterestRate();
|
||||
@@ -373,7 +373,7 @@ public class DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl impl
|
||||
final PeriodFrequencyType frequencyType = CalendarFrequencyType.from(CalendarUtils.getFrequency(calendar.getRecurrence()));
|
||||
Integer frequency = CalendarUtils.getInterval(calendar.getRecurrence());
|
||||
frequency = frequency == -1 ? 1 : frequency;
|
||||
account.generateSchedule(frequencyType, frequency);
|
||||
account.generateSchedule(frequencyType, frequency, calendar);
|
||||
final boolean isPreMatureClosure = false;
|
||||
account.updateMaturityDateAndAmount(mc, isPreMatureClosure);
|
||||
account.validateApplicableInterestRate();
|
||||
|
||||
Reference in New Issue
Block a user