MIFOSX-2400 : fix for overdue charges on payment time
This commit is contained in:
+6
-7
@@ -1596,15 +1596,14 @@ public class Loan extends AbstractPersistable<Long> {
|
|||||||
|
|
||||||
private void recalculateLoanCharge(final LoanCharge loanCharge, final int penaltyWaitPeriod) {
|
private void recalculateLoanCharge(final LoanCharge loanCharge, final int penaltyWaitPeriod) {
|
||||||
BigDecimal amount = BigDecimal.ZERO;
|
BigDecimal amount = BigDecimal.ZERO;
|
||||||
if (loanCharge.isOverdueInstallmentCharge()) {
|
|
||||||
amount = calculateOverdueAmountPercentageAppliedTo(loanCharge, penaltyWaitPeriod);
|
|
||||||
} else {
|
|
||||||
amount = calculateAmountPercentageAppliedTo(loanCharge);
|
|
||||||
}
|
|
||||||
|
|
||||||
BigDecimal chargeAmt = BigDecimal.ZERO;
|
BigDecimal chargeAmt = BigDecimal.ZERO;
|
||||||
BigDecimal totalChargeAmt = BigDecimal.ZERO;
|
BigDecimal totalChargeAmt = BigDecimal.ZERO;
|
||||||
if (loanCharge.getChargeCalculation().isPercentageBased()) {
|
if (loanCharge.getChargeCalculation().isPercentageBased()) {
|
||||||
|
if (loanCharge.isOverdueInstallmentCharge()) {
|
||||||
|
amount = calculateOverdueAmountPercentageAppliedTo(loanCharge, penaltyWaitPeriod);
|
||||||
|
} else {
|
||||||
|
amount = calculateAmountPercentageAppliedTo(loanCharge);
|
||||||
|
}
|
||||||
chargeAmt = loanCharge.getPercentage();
|
chargeAmt = loanCharge.getPercentage();
|
||||||
if (loanCharge.isInstalmentFee()) {
|
if (loanCharge.isInstalmentFee()) {
|
||||||
totalChargeAmt = calculatePerInstallmentChargeAmount(loanCharge);
|
totalChargeAmt = calculatePerInstallmentChargeAmount(loanCharge);
|
||||||
@@ -1621,7 +1620,7 @@ public class Loan extends AbstractPersistable<Long> {
|
|||||||
|
|
||||||
private BigDecimal calculateOverdueAmountPercentageAppliedTo(final LoanCharge loanCharge, final int penaltyWaitPeriod) {
|
private BigDecimal calculateOverdueAmountPercentageAppliedTo(final LoanCharge loanCharge, final int penaltyWaitPeriod) {
|
||||||
LoanRepaymentScheduleInstallment installment = loanCharge.getOverdueInstallmentCharge().getInstallment();
|
LoanRepaymentScheduleInstallment installment = loanCharge.getOverdueInstallmentCharge().getInstallment();
|
||||||
LocalDate graceDate = LocalDate.now().minusDays(penaltyWaitPeriod);
|
LocalDate graceDate = DateUtils.getLocalDateOfTenant().minusDays(penaltyWaitPeriod);
|
||||||
Money amount = Money.zero(getCurrency());
|
Money amount = Money.zero(getCurrency());
|
||||||
if (graceDate.isAfter(installment.getDueDate())) {
|
if (graceDate.isAfter(installment.getDueDate())) {
|
||||||
amount = calculateOverdueAmountPercentageAppliedTo(installment, loanCharge.getChargeCalculation());
|
amount = calculateOverdueAmountPercentageAppliedTo(installment, loanCharge.getChargeCalculation());
|
||||||
|
|||||||
Reference in New Issue
Block a user