allow null value for loanProduct principal

This commit is contained in:
CieyouRaoul
2014-07-02 10:39:49 +02:00
parent b4c3e8be64
commit 3c97fccee8
3 changed files with 9 additions and 7 deletions
@@ -0,0 +1 @@
ALTER TABLE `m_product_loan` CHANGE `principal_amount` `principal_amount` DECIMAL( 19, 6 ) NULL ;
@@ -38,7 +38,7 @@ public class LoanProductRelatedDetail implements LoanProductMinimumRepaymentSche
@Embedded
private MonetaryCurrency currency;
@Column(name = "principal_amount", scale = 6, precision = 19, nullable = false)
@Column(name = "principal_amount", scale = 6, precision = 19, nullable = true)
private BigDecimal principal;
@Column(name = "nominal_interest_rate_per_period", scale = 6, precision = 19, nullable = false)
@@ -110,7 +110,7 @@ public final class LoanProductDataValidator {
baseDataValidator.reset().parameter("inMultiplesOf").value(inMultiplesOf).ignoreIfNull().integerZeroOrGreater();
final BigDecimal principal = this.fromApiJsonHelper.extractBigDecimalWithLocaleNamed("principal", element);
baseDataValidator.reset().parameter("principal").value(principal).notNull().positiveAmount();
baseDataValidator.reset().parameter("principal").value(principal).positiveAmount();
final String minPrincipalParameterName = "minPrincipal";
BigDecimal minPrincipalAmount = null;
@@ -126,17 +126,18 @@ public final class LoanProductDataValidator {
baseDataValidator.reset().parameter(maxPrincipalParameterName).value(maxPrincipalAmount).ignoreIfNull().positiveAmount();
}
if (maxPrincipalAmount != null && maxPrincipalAmount.compareTo(BigDecimal.ZERO) != -1) {
if (maxPrincipalAmount != null && maxPrincipalAmount.compareTo(BigDecimal.ZERO) != -1 ) {
if (minPrincipalAmount != null && minPrincipalAmount.compareTo(BigDecimal.ZERO) != -1) {
baseDataValidator.reset().parameter(maxPrincipalParameterName).value(maxPrincipalAmount).notLessThanMin(minPrincipalAmount);
if (minPrincipalAmount.compareTo(maxPrincipalAmount) <= 0) {
if (minPrincipalAmount.compareTo(maxPrincipalAmount) <= 0 && principal != null ) {
baseDataValidator.reset().parameter("principal").value(principal)
.inMinAndMaxAmountRange(minPrincipalAmount, maxPrincipalAmount);
}
} else {
} else if(principal != null) {
baseDataValidator.reset().parameter("principal").value(principal).notGreaterThanMax(maxPrincipalAmount);
}
} else if (minPrincipalAmount != null && minPrincipalAmount.compareTo(BigDecimal.ZERO) != -1) {
} else if (minPrincipalAmount != null && minPrincipalAmount.compareTo(BigDecimal.ZERO) != -1 && principal !=null) {
baseDataValidator.reset().parameter("principal").value(principal).notLessThanMin(minPrincipalAmount);
}
@@ -447,7 +448,7 @@ public final class LoanProductDataValidator {
if (this.fromApiJsonHelper.parameterExists("principal", element)) {
final BigDecimal principal = this.fromApiJsonHelper.extractBigDecimalWithLocaleNamed("principal", element);
baseDataValidator.reset().parameter("principal").value(principal).notNull().positiveAmount();
baseDataValidator.reset().parameter("principal").value(principal).positiveAmount();
}
if (this.fromApiJsonHelper.parameterExists("inArrearsTolerance", element)) {