in api/src/main/java/org/apache/fineract/cn/portfolio/api/v1/validation/CheckValidChargeDefinition.java [36:60]
public boolean isValid(ChargeDefinition value, ConstraintValidatorContext context) {
if (value.getAmount() == null)
return false;
if (value.getAmount().scale() > 4)
return false;
if (value.getAccrueAction() != null && value.getAccrualAccountDesignator() == null)
return false;
if (value.getAccrueAction() == null && value.getAccrualAccountDesignator() != null)
return false;
if (value.getChargeMethod() == ChargeDefinition.ChargeMethod.PROPORTIONAL &&
value.getProportionalTo() == null)
return false;
if (value.getChargeMethod() == ChargeDefinition.ChargeMethod.FIXED &&
value.getProportionalTo() != null &&
value.getForSegmentSet() == null) //Even if the charge is a fixed charge, we need a proportional to for segment sets.
return false;
if (value.getForSegmentSet() == null &&
(value.getFromSegment() != null || value.getToSegment() != null))
return false;
if (value.getForSegmentSet() != null &&
(value.getFromSegment() == null || value.getToSegment() == null))
return false;
return true;
}