Merge pull request #946 from lingalamadhukar/MIFOSX-1267
MIFOSX-1317 Premature Interest Calculation Fix
This commit is contained in:
+14
@@ -661,11 +661,13 @@ public class FixedDepositTest {
|
|||||||
|
|
||||||
todaysDate = Calendar.getInstance();
|
todaysDate = Calendar.getInstance();
|
||||||
todaysDate.add(Calendar.MONTH, -1);
|
todaysDate.add(Calendar.MONTH, -1);
|
||||||
|
todaysDate.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
final String SUBMITTED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String SUBMITTED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String APPROVED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String APPROVED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String ACTIVATION_DATE = dateFormat.format(todaysDate.getTime());
|
final String ACTIVATION_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String MONTH_DAY = monthDayFormat.format(todaysDate.getTime());
|
final String MONTH_DAY = monthDayFormat.format(todaysDate.getTime());
|
||||||
todaysDate.add(Calendar.MONTH, 1);
|
todaysDate.add(Calendar.MONTH, 1);
|
||||||
|
todaysDate.add(Calendar.DAY_OF_MONTH, 1);
|
||||||
final String CLOSED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String CLOSED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
|
|
||||||
Integer clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
|
Integer clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
|
||||||
@@ -706,6 +708,7 @@ public class FixedDepositTest {
|
|||||||
double interestPerDay = interestRateInFraction * perDay;
|
double interestPerDay = interestRateInFraction * perDay;
|
||||||
|
|
||||||
todaysDate.add(Calendar.MONTH, -1);
|
todaysDate.add(Calendar.MONTH, -1);
|
||||||
|
todaysDate.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
Integer currentDate = new Integer(currentDateFormat.format(todaysDate.getTime()));
|
Integer currentDate = new Integer(currentDateFormat.format(todaysDate.getTime()));
|
||||||
Integer daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
|
Integer daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
|
||||||
daysInMonth = (daysInMonth - currentDate) + 1;
|
daysInMonth = (daysInMonth - currentDate) + 1;
|
||||||
@@ -761,11 +764,13 @@ public class FixedDepositTest {
|
|||||||
|
|
||||||
todaysDate = Calendar.getInstance();
|
todaysDate = Calendar.getInstance();
|
||||||
todaysDate.add(Calendar.MONTH, -1);
|
todaysDate.add(Calendar.MONTH, -1);
|
||||||
|
todaysDate.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
final String SUBMITTED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String SUBMITTED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String APPROVED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String APPROVED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String ACTIVATION_DATE = dateFormat.format(todaysDate.getTime());
|
final String ACTIVATION_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String MONTH_DAY = monthDayFormat.format(todaysDate.getTime());
|
final String MONTH_DAY = monthDayFormat.format(todaysDate.getTime());
|
||||||
todaysDate.add(Calendar.MONTH, 1);
|
todaysDate.add(Calendar.MONTH, 1);
|
||||||
|
todaysDate.add(Calendar.DAY_OF_MONTH, 1);
|
||||||
final String CLOSED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String CLOSED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
|
|
||||||
Integer clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
|
Integer clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
|
||||||
@@ -810,6 +815,7 @@ public class FixedDepositTest {
|
|||||||
double interestPerDay = interestRateInFraction * perDay;
|
double interestPerDay = interestRateInFraction * perDay;
|
||||||
|
|
||||||
todaysDate.add(Calendar.MONTH, -1);
|
todaysDate.add(Calendar.MONTH, -1);
|
||||||
|
todaysDate.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
Integer currentDate = new Integer(currentDateFormat.format(todaysDate.getTime()));
|
Integer currentDate = new Integer(currentDateFormat.format(todaysDate.getTime()));
|
||||||
Integer daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
|
Integer daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
|
||||||
daysInMonth = (daysInMonth - currentDate) + 1;
|
daysInMonth = (daysInMonth - currentDate) + 1;
|
||||||
@@ -865,11 +871,13 @@ public class FixedDepositTest {
|
|||||||
|
|
||||||
todaysDate = Calendar.getInstance();
|
todaysDate = Calendar.getInstance();
|
||||||
todaysDate.add(Calendar.MONTH, -1);
|
todaysDate.add(Calendar.MONTH, -1);
|
||||||
|
todaysDate.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
final String SUBMITTED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String SUBMITTED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String APPROVED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String APPROVED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String ACTIVATION_DATE = dateFormat.format(todaysDate.getTime());
|
final String ACTIVATION_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String MONTH_DAY = monthDayFormat.format(todaysDate.getTime());
|
final String MONTH_DAY = monthDayFormat.format(todaysDate.getTime());
|
||||||
todaysDate.add(Calendar.MONTH, 1);
|
todaysDate.add(Calendar.MONTH, 1);
|
||||||
|
todaysDate.add(Calendar.DAY_OF_MONTH, 1);
|
||||||
final String CLOSED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String CLOSED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
|
|
||||||
Integer clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
|
Integer clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
|
||||||
@@ -903,6 +911,7 @@ public class FixedDepositTest {
|
|||||||
|
|
||||||
Calendar activationDate = Calendar.getInstance();
|
Calendar activationDate = Calendar.getInstance();
|
||||||
activationDate.add(Calendar.MONTH, -1);
|
activationDate.add(Calendar.MONTH, -1);
|
||||||
|
activationDate.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
DateTime startDate = new DateTime(activationDate.getTime());
|
DateTime startDate = new DateTime(activationDate.getTime());
|
||||||
|
|
||||||
Calendar prematureClosureDate = Calendar.getInstance();
|
Calendar prematureClosureDate = Calendar.getInstance();
|
||||||
@@ -918,6 +927,7 @@ public class FixedDepositTest {
|
|||||||
double interestPerDay = interestRateInFraction * perDay;
|
double interestPerDay = interestRateInFraction * perDay;
|
||||||
|
|
||||||
todaysDate.add(Calendar.MONTH, -1);
|
todaysDate.add(Calendar.MONTH, -1);
|
||||||
|
todaysDate.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
Integer currentDate = new Integer(currentDateFormat.format(todaysDate.getTime()));
|
Integer currentDate = new Integer(currentDateFormat.format(todaysDate.getTime()));
|
||||||
Integer daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
|
Integer daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
|
||||||
daysInMonth = (daysInMonth - currentDate) + 1;
|
daysInMonth = (daysInMonth - currentDate) + 1;
|
||||||
@@ -972,11 +982,13 @@ public class FixedDepositTest {
|
|||||||
|
|
||||||
todaysDate = Calendar.getInstance();
|
todaysDate = Calendar.getInstance();
|
||||||
todaysDate.add(Calendar.MONTH, -1);
|
todaysDate.add(Calendar.MONTH, -1);
|
||||||
|
todaysDate.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
final String SUBMITTED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String SUBMITTED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String APPROVED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String APPROVED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String ACTIVATION_DATE = dateFormat.format(todaysDate.getTime());
|
final String ACTIVATION_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String MONTH_DAY = monthDayFormat.format(todaysDate.getTime());
|
final String MONTH_DAY = monthDayFormat.format(todaysDate.getTime());
|
||||||
todaysDate.add(Calendar.MONTH, 1);
|
todaysDate.add(Calendar.MONTH, 1);
|
||||||
|
todaysDate.add(Calendar.DAY_OF_MONTH, 1);
|
||||||
final String CLOSED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String CLOSED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
|
|
||||||
Integer clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
|
Integer clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
|
||||||
@@ -1014,6 +1026,7 @@ public class FixedDepositTest {
|
|||||||
|
|
||||||
Calendar activationDate = Calendar.getInstance();
|
Calendar activationDate = Calendar.getInstance();
|
||||||
activationDate.add(Calendar.MONTH, -1);
|
activationDate.add(Calendar.MONTH, -1);
|
||||||
|
activationDate.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
DateTime startDate = new DateTime(activationDate.getTime());
|
DateTime startDate = new DateTime(activationDate.getTime());
|
||||||
|
|
||||||
Calendar prematureClosureDate = Calendar.getInstance();
|
Calendar prematureClosureDate = Calendar.getInstance();
|
||||||
@@ -1029,6 +1042,7 @@ public class FixedDepositTest {
|
|||||||
double interestPerDay = interestRateInFraction * perDay;
|
double interestPerDay = interestRateInFraction * perDay;
|
||||||
|
|
||||||
todaysDate.add(Calendar.MONTH, -1);
|
todaysDate.add(Calendar.MONTH, -1);
|
||||||
|
todaysDate.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
Integer currentDate = new Integer(currentDateFormat.format(todaysDate.getTime()));
|
Integer currentDate = new Integer(currentDateFormat.format(todaysDate.getTime()));
|
||||||
Integer daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
|
Integer daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
|
||||||
daysInMonth = (daysInMonth - currentDate) + 1;
|
daysInMonth = (daysInMonth - currentDate) + 1;
|
||||||
|
|||||||
+8
-4
@@ -975,7 +975,6 @@ public class RecurringDepositTest {
|
|||||||
DEPOSIT_AMOUNT, EXPECTED_FIRST_DEPOSIT_ON_DATE);
|
DEPOSIT_AMOUNT, EXPECTED_FIRST_DEPOSIT_ON_DATE);
|
||||||
Assert.assertNotNull(transactionIdForDeposit);
|
Assert.assertNotNull(transactionIdForDeposit);
|
||||||
|
|
||||||
currentDate = currentDate - 1;
|
|
||||||
interestPerMonth = (float) (interestPerDay * principal * currentDate);
|
interestPerMonth = (float) (interestPerDay * principal * currentDate);
|
||||||
System.out.println("IPM = " + interestPerMonth);
|
System.out.println("IPM = " + interestPerMonth);
|
||||||
principal += interestPerMonth;
|
principal += interestPerMonth;
|
||||||
@@ -1102,7 +1101,6 @@ public class RecurringDepositTest {
|
|||||||
DEPOSIT_AMOUNT, EXPECTED_FIRST_DEPOSIT_ON_DATE);
|
DEPOSIT_AMOUNT, EXPECTED_FIRST_DEPOSIT_ON_DATE);
|
||||||
Assert.assertNotNull(transactionIdForDeposit);
|
Assert.assertNotNull(transactionIdForDeposit);
|
||||||
|
|
||||||
currentDate = currentDate - 1;
|
|
||||||
interestPerMonth = (float) (interestPerDay * principal * currentDate);
|
interestPerMonth = (float) (interestPerDay * principal * currentDate);
|
||||||
System.out.println("IPM = " + interestPerMonth);
|
System.out.println("IPM = " + interestPerMonth);
|
||||||
principal += interestPerMonth;
|
principal += interestPerMonth;
|
||||||
@@ -1150,12 +1148,14 @@ public class RecurringDepositTest {
|
|||||||
|
|
||||||
todaysDate = Calendar.getInstance();
|
todaysDate = Calendar.getInstance();
|
||||||
todaysDate.add(Calendar.MONTH, -1);
|
todaysDate.add(Calendar.MONTH, -1);
|
||||||
|
todaysDate.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
final String SUBMITTED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String SUBMITTED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String APPROVED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String APPROVED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String ACTIVATION_DATE = dateFormat.format(todaysDate.getTime());
|
final String ACTIVATION_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
String EXPECTED_FIRST_DEPOSIT_ON_DATE = dateFormat.format(todaysDate.getTime());
|
String EXPECTED_FIRST_DEPOSIT_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String MONTH_DAY = monthDayFormat.format(todaysDate.getTime());
|
final String MONTH_DAY = monthDayFormat.format(todaysDate.getTime());
|
||||||
todaysDate.add(Calendar.MONTH, 1);
|
todaysDate.add(Calendar.MONTH, 1);
|
||||||
|
todaysDate.add(Calendar.DAY_OF_MONTH, 1);
|
||||||
final String CLOSED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String CLOSED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
|
|
||||||
final Account assetAccount = this.accountHelper.createAssetAccount();
|
final Account assetAccount = this.accountHelper.createAssetAccount();
|
||||||
@@ -1196,6 +1196,7 @@ public class RecurringDepositTest {
|
|||||||
|
|
||||||
Calendar activationDate = Calendar.getInstance();
|
Calendar activationDate = Calendar.getInstance();
|
||||||
activationDate.add(Calendar.MONTH, -1);
|
activationDate.add(Calendar.MONTH, -1);
|
||||||
|
activationDate.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
DateTime start = new DateTime(activationDate.getTime());
|
DateTime start = new DateTime(activationDate.getTime());
|
||||||
|
|
||||||
Calendar prematureClosureDate = Calendar.getInstance();
|
Calendar prematureClosureDate = Calendar.getInstance();
|
||||||
@@ -1219,6 +1220,7 @@ public class RecurringDepositTest {
|
|||||||
|
|
||||||
Calendar calendar = Calendar.getInstance();
|
Calendar calendar = Calendar.getInstance();
|
||||||
calendar.add(Calendar.MONTH, -1);
|
calendar.add(Calendar.MONTH, -1);
|
||||||
|
calendar.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
Integer currentDate = new Integer(currentDateFormat.format(calendar.getTime()));
|
Integer currentDate = new Integer(currentDateFormat.format(calendar.getTime()));
|
||||||
Integer daysInMonth = calendar.getActualMaximum(Calendar.DATE);
|
Integer daysInMonth = calendar.getActualMaximum(Calendar.DATE);
|
||||||
daysInMonth = (daysInMonth - currentDate) + 1;
|
daysInMonth = (daysInMonth - currentDate) + 1;
|
||||||
@@ -1232,7 +1234,6 @@ public class RecurringDepositTest {
|
|||||||
DEPOSIT_AMOUNT, EXPECTED_FIRST_DEPOSIT_ON_DATE);
|
DEPOSIT_AMOUNT, EXPECTED_FIRST_DEPOSIT_ON_DATE);
|
||||||
Assert.assertNotNull(transactionIdForDeposit);
|
Assert.assertNotNull(transactionIdForDeposit);
|
||||||
|
|
||||||
currentDate = currentDate - 1;
|
|
||||||
interestPerMonth = (float) (interestPerDay * principal * currentDate);
|
interestPerMonth = (float) (interestPerDay * principal * currentDate);
|
||||||
System.out.println("IPM = " + interestPerMonth);
|
System.out.println("IPM = " + interestPerMonth);
|
||||||
principal += interestPerMonth;
|
principal += interestPerMonth;
|
||||||
@@ -1280,12 +1281,14 @@ public class RecurringDepositTest {
|
|||||||
|
|
||||||
todaysDate = Calendar.getInstance();
|
todaysDate = Calendar.getInstance();
|
||||||
todaysDate.add(Calendar.MONTH, -1);
|
todaysDate.add(Calendar.MONTH, -1);
|
||||||
|
todaysDate.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
final String SUBMITTED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String SUBMITTED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String APPROVED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String APPROVED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String ACTIVATION_DATE = dateFormat.format(todaysDate.getTime());
|
final String ACTIVATION_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
String EXPECTED_FIRST_DEPOSIT_ON_DATE = dateFormat.format(todaysDate.getTime());
|
String EXPECTED_FIRST_DEPOSIT_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
final String MONTH_DAY = monthDayFormat.format(todaysDate.getTime());
|
final String MONTH_DAY = monthDayFormat.format(todaysDate.getTime());
|
||||||
todaysDate.add(Calendar.MONTH, 1);
|
todaysDate.add(Calendar.MONTH, 1);
|
||||||
|
todaysDate.add(Calendar.DAY_OF_MONTH, 1);
|
||||||
final String CLOSED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
final String CLOSED_ON_DATE = dateFormat.format(todaysDate.getTime());
|
||||||
|
|
||||||
final Account assetAccount = this.accountHelper.createAssetAccount();
|
final Account assetAccount = this.accountHelper.createAssetAccount();
|
||||||
@@ -1331,6 +1334,7 @@ public class RecurringDepositTest {
|
|||||||
|
|
||||||
Calendar activationDate = Calendar.getInstance();
|
Calendar activationDate = Calendar.getInstance();
|
||||||
activationDate.add(Calendar.MONTH, -1);
|
activationDate.add(Calendar.MONTH, -1);
|
||||||
|
activationDate.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
DateTime start = new DateTime(activationDate.getTime());
|
DateTime start = new DateTime(activationDate.getTime());
|
||||||
|
|
||||||
Calendar prematureClosureDate = Calendar.getInstance();
|
Calendar prematureClosureDate = Calendar.getInstance();
|
||||||
@@ -1354,6 +1358,7 @@ public class RecurringDepositTest {
|
|||||||
|
|
||||||
Calendar calendar = Calendar.getInstance();
|
Calendar calendar = Calendar.getInstance();
|
||||||
calendar.add(Calendar.MONTH, -1);
|
calendar.add(Calendar.MONTH, -1);
|
||||||
|
calendar.add(Calendar.DAY_OF_MONTH, -1);
|
||||||
Integer currentDate = new Integer(currentDateFormat.format(calendar.getTime()));
|
Integer currentDate = new Integer(currentDateFormat.format(calendar.getTime()));
|
||||||
Integer daysInMonth = calendar.getActualMaximum(Calendar.DATE);
|
Integer daysInMonth = calendar.getActualMaximum(Calendar.DATE);
|
||||||
daysInMonth = (daysInMonth - currentDate) + 1;
|
daysInMonth = (daysInMonth - currentDate) + 1;
|
||||||
@@ -1367,7 +1372,6 @@ public class RecurringDepositTest {
|
|||||||
DEPOSIT_AMOUNT, EXPECTED_FIRST_DEPOSIT_ON_DATE);
|
DEPOSIT_AMOUNT, EXPECTED_FIRST_DEPOSIT_ON_DATE);
|
||||||
Assert.assertNotNull(newTransactionIdForDeposit);
|
Assert.assertNotNull(newTransactionIdForDeposit);
|
||||||
|
|
||||||
currentDate = currentDate - 1;
|
|
||||||
interestPerMonth = (float) (interestPerDay * principal * currentDate);
|
interestPerMonth = (float) (interestPerDay * principal * currentDate);
|
||||||
System.out.println("IPM = " + interestPerMonth);
|
System.out.println("IPM = " + interestPerMonth);
|
||||||
principal += interestPerMonth;
|
principal += interestPerMonth;
|
||||||
|
|||||||
+3
-1
@@ -499,7 +499,9 @@ public class FixedDepositAccount extends SavingsAccount {
|
|||||||
public void postPreMaturityInterest(final LocalDate accountCloseDate, final boolean isPreMatureClosure) {
|
public void postPreMaturityInterest(final LocalDate accountCloseDate, final boolean isPreMatureClosure) {
|
||||||
|
|
||||||
Money interestPostedToDate = totalInterestPosted();
|
Money interestPostedToDate = totalInterestPosted();
|
||||||
final Money interestOnMaturity = calculatePreMatureInterest(accountCloseDate, retreiveOrderedNonInterestPostingTransactions(), isPreMatureClosure);
|
// calculate interest before one day of closure date
|
||||||
|
final LocalDate interestCalculatedToDate = accountCloseDate.minusDays(1);
|
||||||
|
final Money interestOnMaturity = calculatePreMatureInterest(interestCalculatedToDate, retreiveOrderedNonInterestPostingTransactions(), isPreMatureClosure);
|
||||||
boolean recalucateDailyBalance = false;
|
boolean recalucateDailyBalance = false;
|
||||||
|
|
||||||
// post remaining interest
|
// post remaining interest
|
||||||
|
|||||||
+3
-1
@@ -600,7 +600,9 @@ public class RecurringDepositAccount extends SavingsAccount {
|
|||||||
public void postPreMaturityInterest(final LocalDate accountCloseDate, final boolean isPreMatureClosure) {
|
public void postPreMaturityInterest(final LocalDate accountCloseDate, final boolean isPreMatureClosure) {
|
||||||
|
|
||||||
final Money interestPostedToDate = totalInterestPosted();
|
final Money interestPostedToDate = totalInterestPosted();
|
||||||
final Money interestOnMaturity = calculatePreMatureInterest(accountCloseDate, retreiveOrderedNonInterestPostingTransactions(), isPreMatureClosure);
|
// calculate interest before one day of closure date
|
||||||
|
final LocalDate interestCalculatedToDate = accountCloseDate.minusDays(1);
|
||||||
|
final Money interestOnMaturity = calculatePreMatureInterest(interestCalculatedToDate, retreiveOrderedNonInterestPostingTransactions(), isPreMatureClosure);
|
||||||
|
|
||||||
boolean recalucateDailyBalance = false;
|
boolean recalucateDailyBalance = false;
|
||||||
|
|
||||||
|
|||||||
+4
-2
@@ -71,17 +71,19 @@ public class DepositAccountPreMatureCalculationPlatformServiceImpl implements De
|
|||||||
account.clientId(), DepositAccountType.SAVINGS_DEPOSIT);
|
account.clientId(), DepositAccountType.SAVINGS_DEPOSIT);
|
||||||
final JsonElement element = this.fromJsonHelper.parse(query.json());
|
final JsonElement element = this.fromJsonHelper.parse(query.json());
|
||||||
final LocalDate preMaturityDate = this.fromJsonHelper.extractLocalDateNamed(closedOnDateParamName, element);
|
final LocalDate preMaturityDate = this.fromJsonHelper.extractLocalDateNamed(closedOnDateParamName, element);
|
||||||
|
// calculate interest before one day of closure date
|
||||||
|
final LocalDate interestCalculatedToDate = preMaturityDate.minusDays(1);
|
||||||
final boolean isPreMatureClosure = true;
|
final boolean isPreMatureClosure = true;
|
||||||
|
|
||||||
if (depositAccountType.isFixedDeposit()) {
|
if (depositAccountType.isFixedDeposit()) {
|
||||||
final FixedDepositAccount fd = (FixedDepositAccount) account;
|
final FixedDepositAccount fd = (FixedDepositAccount) account;
|
||||||
accountData = FixedDepositAccountData.preClosureDetails(account.getId(),
|
accountData = FixedDepositAccountData.preClosureDetails(account.getId(),
|
||||||
fd.calculatePreMatureAmount(preMaturityDate, isPreMatureClosure), onAccountClosureOptions, paymentTypeOptions,
|
fd.calculatePreMatureAmount(interestCalculatedToDate, isPreMatureClosure), onAccountClosureOptions, paymentTypeOptions,
|
||||||
savingsAccountDatas);
|
savingsAccountDatas);
|
||||||
} else if (depositAccountType.isRecurringDeposit()) {
|
} else if (depositAccountType.isRecurringDeposit()) {
|
||||||
final RecurringDepositAccount rd = (RecurringDepositAccount) account;
|
final RecurringDepositAccount rd = (RecurringDepositAccount) account;
|
||||||
accountData = RecurringDepositAccountData.preClosureDetails(account.getId(),
|
accountData = RecurringDepositAccountData.preClosureDetails(account.getId(),
|
||||||
rd.calculatePreMatureAmount(preMaturityDate, isPreMatureClosure), onAccountClosureOptions, paymentTypeOptions,
|
rd.calculatePreMatureAmount(interestCalculatedToDate, isPreMatureClosure), onAccountClosureOptions, paymentTypeOptions,
|
||||||
savingsAccountDatas);
|
savingsAccountDatas);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user