in service/src/main/java/org/apache/fineract/cn/individuallending/internal/service/costcomponent/PaymentBuilder.java [129:157]
void adjustBalances(
final Action action,
final ChargeDefinition chargeDefinition,
final BigDecimal chargeAmount) {
BigDecimal adjustedChargeAmount;
if (this.accrualAccounting && chargeIsAccrued(chargeDefinition)) {
if (Action.valueOf(chargeDefinition.getAccrueAction()) == action) {
adjustedChargeAmount = getMaxCharge(chargeDefinition.getFromAccountDesignator(), chargeDefinition.getAccrualAccountDesignator(), chargeAmount);
this.addToBalance(chargeDefinition.getFromAccountDesignator(), adjustedChargeAmount.negate());
this.addToBalance(chargeDefinition.getAccrualAccountDesignator(), adjustedChargeAmount);
} else if (Action.valueOf(chargeDefinition.getChargeAction()) == action) {
adjustedChargeAmount = getMaxCharge(chargeDefinition.getAccrualAccountDesignator(), chargeDefinition.getToAccountDesignator(), chargeAmount);
this.addToBalance(chargeDefinition.getAccrualAccountDesignator(), adjustedChargeAmount.negate());
this.addToBalance(chargeDefinition.getToAccountDesignator(), adjustedChargeAmount);
addToCostComponent(chargeDefinition, adjustedChargeAmount);
}
}
else if (Action.valueOf(chargeDefinition.getChargeAction()) == action) {
adjustedChargeAmount = getMaxCharge(chargeDefinition.getFromAccountDesignator(), chargeDefinition.getToAccountDesignator(), chargeAmount);
this.addToBalance(chargeDefinition.getFromAccountDesignator(), adjustedChargeAmount.negate());
this.addToBalance(chargeDefinition.getToAccountDesignator(), adjustedChargeAmount);
addToCostComponent(chargeDefinition, adjustedChargeAmount);
}
}