Repository: incubator-fineract
Updated Branches:
  refs/heads/develop d8a0a0742 -> e1a0e3f1e


FINERACT-126 - Not able to Submit the loan application if multi tranche is 
added and the Expected disbursement on field is left blank displays internal 
server error


Project: http://git-wip-us.apache.org/repos/asf/incubator-fineract/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-fineract/commit/e1a0e3f1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fineract/tree/e1a0e3f1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fineract/diff/e1a0e3f1

Branch: refs/heads/develop
Commit: e1a0e3f1ea3d75f7f93189ec1cf47d3239311c86
Parents: d8a0a07
Author: Nazeer Hussain Shaik <nazeer.sh...@confluxtechnologies.com>
Authored: Mon Jan 23 16:30:09 2017 +0530
Committer: Nazeer Hussain Shaik <nazeer.sh...@confluxtechnologies.com>
Committed: Mon Jan 23 16:30:09 2017 +0530

----------------------------------------------------------------------
 ...LoanApplicationCommandFromApiJsonHelper.java | 34 +++++++-------------
 1 file changed, 12 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/e1a0e3f1/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/serialization/LoanApplicationCommandFromApiJsonHelper.java
----------------------------------------------------------------------
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/serialization/LoanApplicationCommandFromApiJsonHelper.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/serialization/LoanApplicationCommandFromApiJsonHelper.java
index 523207d..198f524 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/serialization/LoanApplicationCommandFromApiJsonHelper.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/serialization/LoanApplicationCommandFromApiJsonHelper.java
@@ -1077,7 +1077,6 @@ public final class 
LoanApplicationCommandFromApiJsonHelper {
         if 
(this.fromApiJsonHelper.parameterExists(LoanApiConstants.disbursementDataParameterName,
 element) && expectedDisbursement != null
                 && totalPrincipal != null) {
             BigDecimal tatalDisbursement = BigDecimal.ZERO;
-            boolean isFirstinstallmentOnExpectedDisbursementDate = false;
             final JsonArray variationArray = 
this.fromApiJsonHelper.extractJsonArrayNamed(LoanApiConstants.disbursementDataParameterName,
                     element);
             List<LocalDate> expectedDisbursementDates = new ArrayList<>();
@@ -1085,18 +1084,23 @@ public final class 
LoanApplicationCommandFromApiJsonHelper {
                 int i = 0;
                 do {
                     final JsonObject jsonObject = 
variationArray.get(i).getAsJsonObject();
-                    if 
(jsonObject.has(LoanApiConstants.disbursementDateParameterName)
-                            && 
jsonObject.has(LoanApiConstants.disbursementPrincipalParameterName)) {
                         LocalDate expectedDisbursementDate = 
this.fromApiJsonHelper.extractLocalDateNamed(
                                 
LoanApiConstants.disbursementDateParameterName, jsonObject, dateFormat, locale);
-                        if 
(expectedDisbursementDates.contains(expectedDisbursementDate)) {
+                        
baseDataValidator.reset().parameter(LoanApiConstants.disbursementDataParameterName)
+                        
.parameterAtIndexArray(LoanApiConstants.disbursementDateParameterName, 
i).value(expectedDisbursementDate)
+                        .notNull();
+                        if(i == 0 && expectedDisbursementDate != null && 
!expectedDisbursement.equals(expectedDisbursementDate)) {
+                                
baseDataValidator.reset().parameter(LoanApiConstants.disbursementDateParameterName)
+                             
.failWithCode(LoanApiConstants.DISBURSEMENT_DATE_START_WITH_ERROR);
+                        }else if(i > 0 && expectedDisbursementDate != null && 
expectedDisbursementDate.isBefore(expectedDisbursement)) {
+                               
baseDataValidator.reset().parameter(LoanApiConstants.disbursementDataParameterName)
+                            
.failWithCode(LoanApiConstants.DISBURSEMENT_DATE_BEFORE_ERROR);
+                        }
+                        
+                        if (expectedDisbursementDate != null && 
expectedDisbursementDates.contains(expectedDisbursementDate)) {
                             
baseDataValidator.reset().parameter(LoanApiConstants.disbursementDateParameterName)
                                     
.failWithCode(LoanApiConstants.DISBURSEMENT_DATE_UNIQUE_ERROR);
                         }
-                        if 
(expectedDisbursementDate.isBefore(expectedDisbursement)) {
-                            
baseDataValidator.reset().parameter(LoanApiConstants.disbursementDataParameterName)
-                                    
.failWithCode(LoanApiConstants.DISBURSEMENT_DATE_BEFORE_ERROR);
-                        }
                         
expectedDisbursementDates.add(expectedDisbursementDate);
 
                         BigDecimal principal = 
this.fromApiJsonHelper.extractBigDecimalNamed(
@@ -1106,22 +1110,8 @@ public final class 
LoanApplicationCommandFromApiJsonHelper {
                         if (principal != null) {
                             tatalDisbursement = 
tatalDisbursement.add(principal);
                         }
-
-                        
baseDataValidator.reset().parameter(LoanApiConstants.disbursementDataParameterName)
-                                
.parameterAtIndexArray(LoanApiConstants.disbursementDateParameterName, 
i).value(expectedDisbursementDate)
-                                .notNull();
-
-                        if 
(expectedDisbursement.equals(expectedDisbursementDate)) {
-                            isFirstinstallmentOnExpectedDisbursementDate = 
true;
-                        }
-
-                    }
                     i++;
                 } while (i < variationArray.size());
-                if (!isFirstinstallmentOnExpectedDisbursementDate) {
-                    
baseDataValidator.reset().parameter(LoanApiConstants.disbursementDateParameterName)
-                            
.failWithCode(LoanApiConstants.DISBURSEMENT_DATE_START_WITH_ERROR);
-                }
 
                 if (tatalDisbursement.compareTo(totalPrincipal) == 1) {
                     
baseDataValidator.reset().parameter(LoanApiConstants.disbursementPrincipalParameterName)

Reply via email to