diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/domain/Charge.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/domain/Charge.java index d702c6f2e..b14995e74 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/domain/Charge.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/domain/Charge.java @@ -116,7 +116,7 @@ public class Charge extends AbstractPersistable { final List dataValidationErrors = new ArrayList(); final DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors).resource("charges"); - if (isMonthlyFee()) { + if (isMonthlyFee() || isAnnualFee()) { this.feeOnMonth = feeOnMonthDay.getMonthOfYear(); this.feeOnDay = feeOnMonthDay.getDayOfMonth(); this.feeInterval = feeInterval; @@ -402,6 +402,10 @@ public class Charge extends AbstractPersistable { return ChargeTimeType.fromInt(this.chargeTime).isMonthlyFee(); } + public boolean isAnnualFee() { + return ChargeTimeType.fromInt(this.chargeTime).isAnnualFee(); + } + public MonthDay getFeeOnMonthDay(){ MonthDay feeOnMonthDay = null; if (feeOnDay != null && feeOnMonth != null) { diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/serialization/ChargeDefinitionCommandFromApiJsonDeserializer.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/serialization/ChargeDefinitionCommandFromApiJsonDeserializer.java index 087dfc450..700ba2649 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/serialization/ChargeDefinitionCommandFromApiJsonDeserializer.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/serialization/ChargeDefinitionCommandFromApiJsonDeserializer.java @@ -92,14 +92,19 @@ public final class ChargeDefinitionCommandFromApiJsonDeserializer { baseDataValidator.reset().parameter("active").value(active).notNull(); } - boolean isMonthlyFee = ChargeTimeType.fromInt(chargeTimeType).isMonthlyFee(); - if(isMonthlyFee){ + final ChargeTimeType ctt = ChargeTimeType.fromInt(chargeTimeType); + if(ctt.isMonthlyFee()){ final MonthDay monthDay = this.fromApiJsonHelper.extractMonthDayNamed("feeOnMonthDay", element); baseDataValidator.reset().parameter("feeOnMonthDay").value(monthDay).notNull(); final Integer feeInterval = this.fromApiJsonHelper.extractIntegerNamed("feeInterval", element, Locale.getDefault()); baseDataValidator.reset().parameter("feeInterval").value(feeInterval).notNull().inMinMaxRange(1, 12); } + + if(ctt.isAnnualFee()){ + final MonthDay monthDay = this.fromApiJsonHelper.extractMonthDayNamed("feeOnMonthDay", element); + baseDataValidator.reset().parameter("feeOnMonthDay").value(monthDay).notNull(); + } throwExceptionIfValidationWarningsExist(dataValidationErrors); }