MIFOSX-2207 : Fixed outstanding balance calculation to exclude transfer transactions

This commit is contained in:
Adi Narayana Raju
2015-12-22 13:07:25 +05:30
parent a5e915d456
commit c2744eafea
2 changed files with 21 additions and 4 deletions
@@ -3080,7 +3080,9 @@ public class Loan extends AbstractPersistable<Long> {
private List<LoanTransaction> retreiveListOfTransactionsPostDisbursement() {
final List<LoanTransaction> repaymentsOrWaivers = new ArrayList<>();
for (final LoanTransaction transaction : this.loanTransactions) {
if (!transaction.isDisbursement() && transaction.isNotReversed()) {
if (transaction.isNotReversed()
&& !(transaction.isDisbursement()
|| transaction.isNonMonetaryTransaction())) {
repaymentsOrWaivers.add(transaction);
}
}
@@ -3092,8 +3094,11 @@ public class Loan extends AbstractPersistable<Long> {
public List<LoanTransaction> retreiveListOfTransactionsPostDisbursementExcludeAccruals() {
final List<LoanTransaction> repaymentsOrWaivers = new ArrayList<>();
for (final LoanTransaction transaction : this.loanTransactions) {
if (!transaction.isDisbursement() && transaction.isNotReversed() && !transaction.isAccrual()
&& !transaction.isRepaymentAtDisbursement()) {
if (transaction.isNotReversed()
&& !(transaction.isDisbursement()
|| transaction.isAccrual()
|| transaction.isRepaymentAtDisbursement()
|| transaction.isNonMonetaryTransaction())) {
repaymentsOrWaivers.add(transaction);
}
}
@@ -3105,7 +3110,9 @@ public class Loan extends AbstractPersistable<Long> {
private List<LoanTransaction> retreiveListOfTransactionsExcludeAccruals() {
final List<LoanTransaction> repaymentsOrWaivers = new ArrayList<>();
for (final LoanTransaction transaction : this.loanTransactions) {
if (transaction.isNotReversed() && !transaction.isAccrual()) {
if (transaction.isNotReversed()
&& !(transaction.isAccrual()
|| transaction.isNonMonetaryTransaction())) {
repaymentsOrWaivers.add(transaction);
}
}
@@ -617,6 +617,16 @@ public final class LoanTransaction extends AbstractPersistable<Long> {
public boolean isAccrual() {
return LoanTransactionType.ACCRUAL.equals(getTypeOf()) && isNotReversed();
}
public boolean isNonMonetaryTransaction(){
return isNotReversed()
&& (LoanTransactionType.CONTRA.equals(getTypeOf())
|| LoanTransactionType.MARKED_FOR_RESCHEDULING.equals(getTypeOf())
|| LoanTransactionType.APPROVE_TRANSFER.equals(getTypeOf())
|| LoanTransactionType.INITIATE_TRANSFER.equals(getTypeOf())
|| LoanTransactionType.REJECT_TRANSFER.equals(getTypeOf())
|| LoanTransactionType.WITHDRAW_TRANSFER.equals(getTypeOf()));
}
public void updateOutstandingLoanBalance(BigDecimal outstandingLoanBalance) {
this.outstandingLoanBalance = outstandingLoanBalance;