MIFOSX-281 adding accrual accounting support
This commit is contained in:
+32
@@ -55,6 +55,11 @@ public class AccrualBasedAccountingProcessorForLoan implements AccountingProcess
|
|||||||
.getTransactionType().isRepaymentAtDisbursement() || loanTransactionDTO.getTransactionType().isChargePayment());
|
.getTransactionType().isRepaymentAtDisbursement() || loanTransactionDTO.getTransactionType().isChargePayment());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Logic for handling recovery payments **/
|
||||||
|
else if (loanTransactionDTO.getTransactionType().isRecoveryRepayment()) {
|
||||||
|
createJournalEntriesForRecoveryRepayments(loanDTO, loanTransactionDTO, office);
|
||||||
|
}
|
||||||
|
|
||||||
/** Handle Write Offs, waivers and their reversals **/
|
/** Handle Write Offs, waivers and their reversals **/
|
||||||
else if ((loanTransactionDTO.getTransactionType().isWriteOff() || loanTransactionDTO.getTransactionType().isWaiveInterest() || loanTransactionDTO
|
else if ((loanTransactionDTO.getTransactionType().isWriteOff() || loanTransactionDTO.getTransactionType().isWaiveInterest() || loanTransactionDTO
|
||||||
.getTransactionType().isWaiveCharges())) {
|
.getTransactionType().isWaiveCharges())) {
|
||||||
@@ -201,6 +206,33 @@ public class AccrualBasedAccountingProcessorForLoan implements AccountingProcess
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a single Debit to fund source and a single credit to
|
||||||
|
* "Income from Recovery"
|
||||||
|
*
|
||||||
|
* In case the loan transaction is a reversal, all debits are turned into
|
||||||
|
* credits and vice versa
|
||||||
|
*/
|
||||||
|
private void createJournalEntriesForRecoveryRepayments(final LoanDTO loanDTO, final LoanTransactionDTO loanTransactionDTO,
|
||||||
|
final Office office) {
|
||||||
|
// loan properties
|
||||||
|
final Long loanProductId = loanDTO.getLoanProductId();
|
||||||
|
final Long loanId = loanDTO.getLoanId();
|
||||||
|
final String currencyCode = loanDTO.getCurrencyCode();
|
||||||
|
|
||||||
|
// transaction properties
|
||||||
|
final String transactionId = loanTransactionDTO.getTransactionId();
|
||||||
|
final Date transactionDate = loanTransactionDTO.getTransactionDate();
|
||||||
|
final BigDecimal amount = loanTransactionDTO.getAmount();
|
||||||
|
final boolean isReversal = loanTransactionDTO.isReversed();
|
||||||
|
final Long paymentTypeId = loanTransactionDTO.getPaymentTypeId();
|
||||||
|
|
||||||
|
this.helper.createAccrualBasedJournalEntriesAndReversalsForLoan(office, currencyCode, ACCRUAL_ACCOUNTS_FOR_LOAN.FUND_SOURCE,
|
||||||
|
ACCRUAL_ACCOUNTS_FOR_LOAN.INCOME_FROM_RECOVERY, loanProductId, paymentTypeId, loanId, transactionId, transactionDate,
|
||||||
|
amount, isReversal);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Recognize the receivable interest <br/>
|
* Recognize the receivable interest <br/>
|
||||||
* Debit "Interest Receivable" and Credit "Income from Interest"
|
* Debit "Interest Receivable" and Credit "Income from Interest"
|
||||||
|
|||||||
Reference in New Issue
Block a user