From 99822a32e298f4f6c0a8f1d221b96f7c192ae355 Mon Sep 17 00:00:00 2001 From: Pramod Nuthakki Date: Thu, 15 May 2014 22:20:25 +0530 Subject: [PATCH] MIFOSX-1187 - added null checks before compare with min and max values --- .../savings/data/DepositProductDataValidator.java | 2 +- .../savings/domain/DepositProductAssembler.java | 12 ++++++------ .../portfolio/savings/domain/DepositTermDetail.java | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/DepositProductDataValidator.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/DepositProductDataValidator.java index cc5cc5d71..a02b0771a 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/DepositProductDataValidator.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/data/DepositProductDataValidator.java @@ -377,7 +377,7 @@ public class DepositProductDataValidator { } final Integer minDepositTermType = this.fromApiJsonHelper.extractIntegerSansLocaleNamed(minDepositTermTypeIdParamName, element); - baseDataValidator.reset().parameter(minDepositTermTypeIdParamName).value(minDepositTermType) + baseDataValidator.reset().parameter(minDepositTermTypeIdParamName).value(minDepositTermType).ignoreIfNull() .isOneOfTheseValues(SavingsPeriodFrequencyType.integerValues()); if (fromApiJsonHelper.parameterExists(maxDepositTermTypeIdParamName, element)) { diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/DepositProductAssembler.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/DepositProductAssembler.java index 4e5a82593..85dd33088 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/DepositProductAssembler.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/DepositProductAssembler.java @@ -417,25 +417,25 @@ public class DepositProductAssembler { if (command.parameterExists(minDepositTermParamName)) { minDepositTerm = command.integerValueOfParameterNamed(minDepositTermParamName); - } else { + } else if(prodDepositTermDetail != null){ minDepositTerm = prodDepositTermDetail.minDepositTerm(); } if (command.parameterExists(maxDepositTermParamName)) { maxDepositTerm = command.integerValueOfParameterNamed(maxDepositTermParamName); - } else { + } else if(prodDepositTermDetail != null){ maxDepositTerm = prodDepositTermDetail.maxDepositTerm(); } if (command.parameterExists(minDepositTermTypeIdParamName)) { minDepositTermTypeId = command.integerValueOfParameterNamed(minDepositTermTypeIdParamName); - } else { + } else if(prodDepositTermDetail != null){ minDepositTermTypeId = prodDepositTermDetail.minDepositTermType(); } if (command.parameterExists(maxDepositTermTypeIdParamName)) { maxDepositTermTypeId = command.integerValueOfParameterNamed(maxDepositTermTypeIdParamName); - } else { + } else if(prodDepositTermDetail != null){ maxDepositTermTypeId = prodDepositTermDetail.maxDepositTermType(); } @@ -447,13 +447,13 @@ public class DepositProductAssembler { if (command.parameterExists(inMultiplesOfDepositTermParamName)) { inMultiplesOfDepositTerm = command.integerValueOfParameterNamed(inMultiplesOfDepositTermParamName); - } else { + } else if(prodDepositTermDetail != null){ inMultiplesOfDepositTerm = prodDepositTermDetail.inMultiplesOfDepositTerm(); } if (command.parameterExists(preClosurePenalApplicableParamName)) { inMultiplesOfDepositTermTypeId = command.integerValueOfParameterNamed(inMultiplesOfDepositTermTypeIdParamName); - } else { + } else if(prodDepositTermDetail != null){ inMultiplesOfDepositTermTypeId = prodDepositTermDetail.inMultiplesOfDepositTermType(); } diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/DepositTermDetail.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/DepositTermDetail.java index b8a6368ed..06d09468f 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/DepositTermDetail.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/DepositTermDetail.java @@ -175,13 +175,13 @@ public class DepositTermDetail { private boolean isEqualOrGreaterThanMin(LocalDate depositStartDate, LocalDate depositEndDate) { final SavingsPeriodFrequencyType periodFrequencyType = SavingsPeriodFrequencyType.fromInt(this.minDepositTermType()); final Integer depositPeriod = depositPeriod(depositStartDate, depositEndDate, periodFrequencyType); - return depositPeriod.compareTo(minDepositTerm()) >= 0; + return minDepositTerm() == null || depositPeriod.compareTo(minDepositTerm()) >= 0; } private boolean isEqualOrLessThanMax(LocalDate depositStartDate, LocalDate depositEndDate) { final SavingsPeriodFrequencyType periodFrequencyType = SavingsPeriodFrequencyType.fromInt(this.maxDepositTermType()); final Integer depositPeriod = depositPeriod(depositStartDate, depositEndDate, periodFrequencyType); - return depositPeriod.compareTo(maxDepositTerm()) <= 0; + return maxDepositTerm() == null || depositPeriod.compareTo(maxDepositTerm()) <= 0; } public Integer depositPeriod(final LocalDate periodStartDate, final LocalDate periodEndDate,