Merge branch 'FINERACT-365' into develop
This commit is contained in:
+17
-4
@@ -149,16 +149,29 @@ public class DepositAccountDomainServiceJpa implements DepositAccountDomainServi
|
|||||||
transactionAmount, paymentDetail, isAccountTransfer, isRegularTransaction);
|
transactionAmount, paymentDetail, isAccountTransfer, isRegularTransaction);
|
||||||
final Set<Long> existingTransactionIds = new HashSet<>();
|
final Set<Long> existingTransactionIds = new HashSet<>();
|
||||||
final Set<Long> existingReversedTransactionIds = new HashSet<>();
|
final Set<Long> existingReversedTransactionIds = new HashSet<>();
|
||||||
updateExistingTransactionsDetails(account, existingTransactionIds, existingReversedTransactionIds);
|
final boolean isAnyActivationChargesDue = isAnyActivationChargesDue(account);
|
||||||
account.processAccountUponActivation(isSavingsInterestPostingAtCurrentPeriodEnd, financialYearBeginningMonth, user);
|
if(isAnyActivationChargesDue){
|
||||||
this.savingsAccountRepository.saveAndFlush(account);
|
updateExistingTransactionsDetails(account, existingTransactionIds, existingReversedTransactionIds);
|
||||||
|
account.processAccountUponActivation(isSavingsInterestPostingAtCurrentPeriodEnd, financialYearBeginningMonth, user);
|
||||||
|
this.savingsAccountRepository.saveAndFlush(account);
|
||||||
|
}
|
||||||
account.handleScheduleInstallments(deposit);
|
account.handleScheduleInstallments(deposit);
|
||||||
account.updateMaturityDateAndAmount(mc, isPreMatureClosure, isSavingsInterestPostingAtCurrentPeriodEnd, financialYearBeginningMonth);
|
account.updateMaturityDateAndAmount(mc, isPreMatureClosure, isSavingsInterestPostingAtCurrentPeriodEnd, financialYearBeginningMonth);
|
||||||
account.updateOverduePayments(DateUtils.getLocalDateOfTenant());
|
account.updateOverduePayments(DateUtils.getLocalDateOfTenant());
|
||||||
postJournalEntries(account, existingTransactionIds, existingReversedTransactionIds, isAccountTransfer);
|
if(isAnyActivationChargesDue){
|
||||||
|
postJournalEntries(account, existingTransactionIds, existingReversedTransactionIds, isAccountTransfer);
|
||||||
|
}
|
||||||
return deposit;
|
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
|
@Transactional
|
||||||
@Override
|
@Override
|
||||||
public Long handleFDAccountClosure(final FixedDepositAccount account, final PaymentDetail paymentDetail, final AppUser user,
|
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<>();
|
List<SavingsAccountTransaction> allTransactions = new ArrayList<>();
|
||||||
// add existing transactions
|
// add existing transactions
|
||||||
allTransactions.addAll(retreiveOrderedNonInterestPostingTransactions());
|
allTransactions.addAll(retreiveOrderedNonInterestPostingTransactions());
|
||||||
|
LocalDate latestTransactionDate = null;
|
||||||
|
for (final SavingsAccountTransaction installment : allTransactions) {
|
||||||
|
if(latestTransactionDate == null || latestTransactionDate.isBefore(installment.getTransactionLocalDate())){
|
||||||
|
latestTransactionDate = installment.getTransactionLocalDate();
|
||||||
|
}
|
||||||
|
}
|
||||||
if (generateFutureTransactions) {
|
if (generateFutureTransactions) {
|
||||||
for (RecurringDepositScheduleInstallment installment : depositScheduleInstallments()) {
|
for (RecurringDepositScheduleInstallment installment : depositScheduleInstallments()) {
|
||||||
if (installment.isPrincipalNotCompleted(getCurrency())) {
|
if (installment.isPrincipalNotCompleted(getCurrency())) {
|
||||||
|
LocalDate dueDate = installment.dueDate();
|
||||||
|
if(latestTransactionDate != null && dueDate.isBefore(latestTransactionDate)){
|
||||||
|
dueDate = latestTransactionDate;
|
||||||
|
}
|
||||||
final SavingsAccountTransaction transaction = SavingsAccountTransaction.deposit(null, office(), null,
|
final SavingsAccountTransaction transaction = SavingsAccountTransaction.deposit(null, office(), null,
|
||||||
installment.dueDate(), installment.getDepositAmountOutstanding(getCurrency()), installment.dueDate().toDate(),
|
dueDate, installment.getDepositAmountOutstanding(getCurrency()), installment.dueDate().toDate(),
|
||||||
null);
|
null);
|
||||||
allTransactions.add(transaction);
|
allTransactions.add(transaction);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -174,7 +174,7 @@ public class SavingsAccountDomainServiceJpa implements SavingsAccountDomainServi
|
|||||||
|
|
||||||
saveTransactionToGenerateTransactionId(deposit);
|
saveTransactionToGenerateTransactionId(deposit);
|
||||||
|
|
||||||
this.savingsAccountRepository.save(account);
|
this.savingsAccountRepository.saveAndFlush(account);
|
||||||
|
|
||||||
postJournalEntries(account, existingTransactionIds, existingReversedTransactionIds, isAccountTransfer);
|
postJournalEntries(account, existingTransactionIds, existingReversedTransactionIds, isAccountTransfer);
|
||||||
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BUSINESS_EVENTS.SAVINGS_DEPOSIT,
|
this.businessEventNotifierService.notifyBusinessEventWasExecuted(BUSINESS_EVENTS.SAVINGS_DEPOSIT,
|
||||||
|
|||||||
Reference in New Issue
Block a user