FINERACT-365 : The 'Transactions' tab showing wrong balance in RD account
This commit is contained in:
+17
-4
@@ -149,16 +149,29 @@ public class DepositAccountDomainServiceJpa implements DepositAccountDomainServi
|
||||
transactionAmount, paymentDetail, isAccountTransfer, isRegularTransaction);
|
||||
final Set<Long> existingTransactionIds = new HashSet<>();
|
||||
final Set<Long> existingReversedTransactionIds = new HashSet<>();
|
||||
updateExistingTransactionsDetails(account, existingTransactionIds, existingReversedTransactionIds);
|
||||
account.processAccountUponActivation(isSavingsInterestPostingAtCurrentPeriodEnd, financialYearBeginningMonth, user);
|
||||
this.savingsAccountRepository.saveAndFlush(account);
|
||||
final boolean isAnyActivationChargesDue = isAnyActivationChargesDue(account);
|
||||
if(isAnyActivationChargesDue){
|
||||
updateExistingTransactionsDetails(account, existingTransactionIds, existingReversedTransactionIds);
|
||||
account.processAccountUponActivation(isSavingsInterestPostingAtCurrentPeriodEnd, financialYearBeginningMonth, user);
|
||||
this.savingsAccountRepository.saveAndFlush(account);
|
||||
}
|
||||
account.handleScheduleInstallments(deposit);
|
||||
account.updateMaturityDateAndAmount(mc, isPreMatureClosure, isSavingsInterestPostingAtCurrentPeriodEnd, financialYearBeginningMonth);
|
||||
account.updateOverduePayments(DateUtils.getLocalDateOfTenant());
|
||||
postJournalEntries(account, existingTransactionIds, existingReversedTransactionIds, isAccountTransfer);
|
||||
if(isAnyActivationChargesDue){
|
||||
postJournalEntries(account, existingTransactionIds, existingReversedTransactionIds, isAccountTransfer);
|
||||
}
|
||||
return deposit;
|
||||
}
|
||||
|
||||
private boolean isAnyActivationChargesDue(final RecurringDepositAccount account) {
|
||||
for (final SavingsAccountCharge savingsAccountCharge : account.charges()) {
|
||||
if (savingsAccountCharge.isSavingsActivation() && savingsAccountCharge.amoutOutstanding() != null
|
||||
&& savingsAccountCharge.amoutOutstanding().compareTo(BigDecimal.ZERO) > 0) { return true; }
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public Long handleFDAccountClosure(final FixedDepositAccount account, final PaymentDetail paymentDetail, final AppUser user,
|
||||
|
||||
+11
-1
@@ -370,11 +370,21 @@ public class RecurringDepositAccount extends SavingsAccount {
|
||||
List<SavingsAccountTransaction> allTransactions = new ArrayList<>();
|
||||
// add existing transactions
|
||||
allTransactions.addAll(retreiveOrderedNonInterestPostingTransactions());
|
||||
LocalDate latestTransactionDate = null;
|
||||
for (final SavingsAccountTransaction installment : allTransactions) {
|
||||
if(latestTransactionDate == null || latestTransactionDate.isBefore(installment.getTransactionLocalDate())){
|
||||
latestTransactionDate = installment.getTransactionLocalDate();
|
||||
}
|
||||
}
|
||||
if (generateFutureTransactions) {
|
||||
for (RecurringDepositScheduleInstallment installment : depositScheduleInstallments()) {
|
||||
if (installment.isPrincipalNotCompleted(getCurrency())) {
|
||||
LocalDate dueDate = installment.dueDate();
|
||||
if(latestTransactionDate != null && dueDate.isBefore(latestTransactionDate)){
|
||||
dueDate = latestTransactionDate;
|
||||
}
|
||||
final SavingsAccountTransaction transaction = SavingsAccountTransaction.deposit(null, office(), null,
|
||||
installment.dueDate(), installment.getDepositAmountOutstanding(getCurrency()), installment.dueDate().toDate(),
|
||||
dueDate, installment.getDepositAmountOutstanding(getCurrency()), installment.dueDate().toDate(),
|
||||
null);
|
||||
allTransactions.add(transaction);
|
||||
}
|
||||
|
||||
+1
-1
@@ -174,7 +174,7 @@ public class SavingsAccountDomainServiceJpa implements SavingsAccountDomainServi
|
||||
|
||||
saveTransactionToGenerateTransactionId(deposit);
|
||||
|
||||
this.savingsAccountRepository.save(account);
|
||||
this.savingsAccountRepository.saveAndFlush(account);
|
||||
|
||||
postJournalEntries(account, existingTransactionIds, existingReversedTransactionIds, isAccountTransfer);
|
||||
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BUSINESS_EVENTS.SAVINGS_DEPOSIT,
|
||||
|
||||
Reference in New Issue
Block a user