Interest calculation bug fix
This commit is contained in:
+3
-1
@@ -499,7 +499,9 @@ public class FixedDepositAccount extends SavingsAccount {
|
||||
public void postPreMaturityInterest(final LocalDate accountCloseDate, final boolean isPreMatureClosure) {
|
||||
|
||||
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;
|
||||
|
||||
// post remaining interest
|
||||
|
||||
+3
-1
@@ -600,7 +600,9 @@ public class RecurringDepositAccount extends SavingsAccount {
|
||||
public void postPreMaturityInterest(final LocalDate accountCloseDate, final boolean isPreMatureClosure) {
|
||||
|
||||
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;
|
||||
|
||||
|
||||
+4
-2
@@ -71,17 +71,19 @@ public class DepositAccountPreMatureCalculationPlatformServiceImpl implements De
|
||||
account.clientId(), DepositAccountType.SAVINGS_DEPOSIT);
|
||||
final JsonElement element = this.fromJsonHelper.parse(query.json());
|
||||
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;
|
||||
|
||||
if (depositAccountType.isFixedDeposit()) {
|
||||
final FixedDepositAccount fd = (FixedDepositAccount) account;
|
||||
accountData = FixedDepositAccountData.preClosureDetails(account.getId(),
|
||||
fd.calculatePreMatureAmount(preMaturityDate, isPreMatureClosure), onAccountClosureOptions, paymentTypeOptions,
|
||||
fd.calculatePreMatureAmount(interestCalculatedToDate, isPreMatureClosure), onAccountClosureOptions, paymentTypeOptions,
|
||||
savingsAccountDatas);
|
||||
} else if (depositAccountType.isRecurringDeposit()) {
|
||||
final RecurringDepositAccount rd = (RecurringDepositAccount) account;
|
||||
accountData = RecurringDepositAccountData.preClosureDetails(account.getId(),
|
||||
rd.calculatePreMatureAmount(preMaturityDate, isPreMatureClosure), onAccountClosureOptions, paymentTypeOptions,
|
||||
rd.calculatePreMatureAmount(interestCalculatedToDate, isPreMatureClosure), onAccountClosureOptions, paymentTypeOptions,
|
||||
savingsAccountDatas);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user