FINERACT-2040: CBR GL accounts match with Charge off GL accounts if loan is not overpaid

This commit is contained in:
taskain7
2024-02-08 14:10:30 +01:00
committed by Adam Saghy
parent 181ec08f90
commit 717eb69425
2 changed files with 47 additions and 28 deletions
@@ -1104,13 +1104,13 @@ public class AccrualBasedAccountingProcessorForLoan implements AccountingProcess
if (principalAmount != null && principalAmount.compareTo(BigDecimal.ZERO) > 0) {
totalAmount = totalAmount.add(principalAmount);
journalAmountHolders.add(
new JournalAmountHolder(determineAccrualAccount(isMarkedChargeOff, isMarkedFraud, false, isReversal), principalAmount));
journalAmountHolders
.add(new JournalAmountHolder(determineAccrualAccountForCBR(isMarkedChargeOff, isMarkedFraud, false), principalAmount));
}
if (overpaymentAmount != null && overpaymentAmount.compareTo(BigDecimal.ZERO) > 0) {
totalAmount = totalAmount.add(overpaymentAmount);
journalAmountHolders.add(new JournalAmountHolder(determineAccrualAccount(isMarkedChargeOff, isMarkedFraud, true, isReversal),
overpaymentAmount));
journalAmountHolders
.add(new JournalAmountHolder(determineAccrualAccountForCBR(isMarkedChargeOff, isMarkedFraud, true), overpaymentAmount));
}
JournalAmountHolder totalAmountHolder = new JournalAmountHolder(AccrualAccountsForLoan.FUND_SOURCE.getValue(), totalAmount);
@@ -1119,16 +1119,16 @@ public class AccrualBasedAccountingProcessorForLoan implements AccountingProcess
}
private Integer determineAccrualAccount(boolean isMarkedChargeOff, boolean isMarkedFraud, boolean isOverpayment, boolean isReversal) {
if (isMarkedChargeOff && isReversal) {
if (isMarkedFraud) {
return AccrualAccountsForLoan.CHARGE_OFF_FRAUD_EXPENSE.getValue();
} else {
return AccrualAccountsForLoan.CHARGE_OFF_EXPENSE.getValue();
}
private Integer determineAccrualAccountForCBR(boolean isMarkedChargeOff, boolean isMarkedFraud, boolean isOverpayment) {
if (isOverpayment) {
return AccrualAccountsForLoan.OVERPAYMENT.getValue();
} else {
if (isOverpayment) {
return AccrualAccountsForLoan.OVERPAYMENT.getValue();
if (isMarkedChargeOff) {
if (isMarkedFraud) {
return AccrualAccountsForLoan.CHARGE_OFF_FRAUD_EXPENSE.getValue();
} else {
return AccrualAccountsForLoan.CHARGE_OFF_EXPENSE.getValue();
}
} else {
return AccrualAccountsForLoan.LOAN_PORTFOLIO.getValue();
}