Merge branch 'FINERACT-365' into develop

This commit is contained in:
Nazeer Hussain Shaik
2017-03-07 12:18:50 +05:30
3 changed files with 29 additions and 6 deletions
@@ -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,
@@ -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);
}
@@ -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,