Merge pull request #990 from Musoni/MIFOSX-1379
allow null value for loanProduct principal
This commit is contained in:
@@ -0,0 +1 @@
|
||||
ALTER TABLE `m_product_loan` CHANGE `principal_amount` `principal_amount` DECIMAL( 19, 6 ) NULL ;
|
||||
+1
-1
@@ -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)
|
||||
|
||||
+7
-6
@@ -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)) {
|
||||
|
||||
Reference in New Issue
Block a user