corrected type while fethcing data from metadata

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

Branch: refs/heads/develop
Commit: b5dc6b2b5bec2bb4f9681b66a862939f6cdfbadd
Parents: a13a807
Author: pramod <[email protected]>
Authored: Tue Feb 16 12:21:30 2016 +0530
Committer: pramod <[email protected]>
Committed: Tue Feb 16 12:21:30 2016 +0530

----------------------------------------------------------------------
 .../data/ResultsetColumnHeaderData.java         | 53 +++++++-----
 .../portfolio/loanaccount/domain/Loan.java      | 88 ++++++++++----------
 2 files changed, 79 insertions(+), 62 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/b5dc6b2b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ResultsetColumnHeaderData.java
----------------------------------------------------------------------
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ResultsetColumnHeaderData.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ResultsetColumnHeaderData.java
index e84149c..75f0eb8 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ResultsetColumnHeaderData.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ResultsetColumnHeaderData.java
@@ -68,21 +68,9 @@ public final class ResultsetColumnHeaderData {
         this.columnValues = columnValues;
         this.columnCode = columnCode;
 
-        if("NEWDECIMAL".equalsIgnoreCase(this.columnType)) {
-               this.columnType = "DECIMAL" ;
-               //Refer org.drizzle.jdbc.internal.mysql.MySQLType.java
-        }
-        
-        if("CLOB".equalsIgnoreCase(this.columnType)) {
-               this.columnType = "varchar" ;
-               //Drizzle is returning some of the String data a CLOB
-        }
-        
-        if("LONGLONG".equalsIgnoreCase(this.columnType) || 
"LONG".equalsIgnoreCase(this.columnType)) {
-               this.columnType = "bigint" ;
-               //Refer org.drizzle.jdbc.internal.mysql.MySQLType.java
-        }
-        
+        // Refer org.drizzle.jdbc.internal.mysql.MySQLType.java
+        adjustColumnTypes();
+
         String displayType = null;
         if (this.columnCode == null) {
             if (isString()) {
@@ -97,7 +85,7 @@ public final class ResultsetColumnHeaderData {
                 displayType = "DECIMAL";
             } else if (isAnyText()) {
                 displayType = "TEXT";
-            } else if(isBit()) {
+            } else if (isBit()) {
                 displayType = "BOOLEAN";
             } else {
                 throw new 
PlatformDataIntegrityException("error.msg.invalid.lookup.type", "Invalid Lookup 
Type:" + this.columnType
@@ -118,6 +106,33 @@ public final class ResultsetColumnHeaderData {
         this.columnDisplayType = displayType;
     }
 
+    private void adjustColumnTypes() {
+        switch (this.columnType) {
+            case "NEWDECIMAL":
+                this.columnType = "DECIMAL";
+            break;
+            case "CLOB":
+            case "ENUM":
+            case "SET":
+                this.columnType = "varchar";
+            break;
+            case "LONGLONG":
+                this.columnType = "bigint";
+            break;
+            case "SHORT":
+                this.columnType = "smallint";
+            break;
+            case "TINY":
+                this.columnType = "tinyint";
+            break;
+            case "INT24":
+                this.columnType = "int";
+            break;
+            default:
+            break;
+        }
+    }
+
     public boolean isNamed(final String columnName) {
         return this.columnName.equalsIgnoreCase(columnName);
     }
@@ -144,7 +159,7 @@ public final class ResultsetColumnHeaderData {
 
     private boolean isDecimal() {
         return "decimal".equalsIgnoreCase(this.columnType) || 
"NEWDECIMAL".equalsIgnoreCase(this.columnType);
-        //Refer org.drizzle.jdbc.internal.mysql.MySQLType.java
+        // Refer org.drizzle.jdbc.internal.mysql.MySQLType.java
     }
 
     private boolean isDate() {
@@ -190,10 +205,10 @@ public final class ResultsetColumnHeaderData {
     private boolean isBigInt() {
         return "bigint".equalsIgnoreCase(this.columnType);
     }
-    
+
     private boolean isLong() {
         return "LONG".equalsIgnoreCase(this.columnType) || 
"LONGLONG".equalsIgnoreCase(this.columnType);
-        //Refer org.drizzle.jdbc.internal.mysql.MySQLType.java
+        // Refer org.drizzle.jdbc.internal.mysql.MySQLType.java
     }
 
     private boolean isBit() {

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/b5dc6b2b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
----------------------------------------------------------------------
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
index b59d4dc..ac4aa45 100755
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
@@ -1599,11 +1599,11 @@ public class Loan extends AbstractPersistable<Long> {
         BigDecimal chargeAmt = BigDecimal.ZERO;
         BigDecimal totalChargeAmt = BigDecimal.ZERO;
         if (loanCharge.getChargeCalculation().isPercentageBased()) {
-                if (loanCharge.isOverdueInstallmentCharge()) {
-                 amount = 
calculateOverdueAmountPercentageAppliedTo(loanCharge, penaltyWaitPeriod);
-             } else {
-                 amount = calculateAmountPercentageAppliedTo(loanCharge);
-             }
+            if (loanCharge.isOverdueInstallmentCharge()) {
+                amount = calculateOverdueAmountPercentageAppliedTo(loanCharge, 
penaltyWaitPeriod);
+            } else {
+                amount = calculateAmountPercentageAppliedTo(loanCharge);
+            }
             chargeAmt = loanCharge.getPercentage();
             if (loanCharge.isInstalmentFee()) {
                 totalChargeAmt = 
calculatePerInstallmentChargeAmount(loanCharge);
@@ -2337,7 +2337,8 @@ public class Loan extends AbstractPersistable<Long> {
     }
 
     public void regenerateScheduleOnDisbursement(final ScheduleGeneratorDTO 
scheduleGeneratorDTO, final boolean recalculateSchedule,
-            final LocalDate actualDisbursementDate, BigDecimal emiAmount, 
final AppUser currentUser, LocalDate nextPossibleRepaymentDate, Date 
rescheduledRepaymentDate) {
+            final LocalDate actualDisbursementDate, BigDecimal emiAmount, 
final AppUser currentUser, LocalDate nextPossibleRepaymentDate,
+            Date rescheduledRepaymentDate) {
         boolean isEmiAmountChanged = false;
         if ((this.loanProduct.isMultiDisburseLoan() || 
this.loanProduct.canDefineInstallmentAmount()) && emiAmount != null
                 && emiAmount.compareTo(retriveLastEmiAmount()) != 0) {
@@ -2352,11 +2353,12 @@ public class Loan extends AbstractPersistable<Long> {
             }
             isEmiAmountChanged = true;
         }
-        if(rescheduledRepaymentDate != null && 
this.loanProduct.isMultiDisburseLoan()){
-                final boolean isSpecificToInstallment = false;
-                LoanTermVariations loanVariationTerms = new 
LoanTermVariations(LoanTermVariationType.DUE_DATE.getValue(),
-                                nextPossibleRepaymentDate.toDate(), emiAmount, 
rescheduledRepaymentDate, isSpecificToInstallment, this, 
LoanStatus.ACTIVE.getValue());
-             this.loanTermVariations.add(loanVariationTerms);
+        if (rescheduledRepaymentDate != null && 
this.loanProduct.isMultiDisburseLoan()) {
+            final boolean isSpecificToInstallment = false;
+            LoanTermVariations loanVariationTerms = new 
LoanTermVariations(LoanTermVariationType.DUE_DATE.getValue(),
+                    nextPossibleRepaymentDate.toDate(), emiAmount, 
rescheduledRepaymentDate, isSpecificToInstallment, this,
+                    LoanStatus.ACTIVE.getValue());
+            this.loanTermVariations.add(loanVariationTerms);
         }
 
         if 
(isRepaymentScheduleRegenerationRequiredForDisbursement(actualDisbursementDate) 
|| recalculateSchedule || isEmiAmountChanged) {
@@ -4771,7 +4773,7 @@ public class Loan extends AbstractPersistable<Long> {
     }
 
     public ChangedTransactionDetail 
updateDisbursementDateAndAmountForTranche(final LoanDisbursementDetails 
disbursementDetails,
-            final JsonCommand command,final Map<String, Object> actualChanges, 
final ScheduleGeneratorDTO scheduleGeneratorDTO, 
+            final JsonCommand command, final Map<String, Object> 
actualChanges, final ScheduleGeneratorDTO scheduleGeneratorDTO,
             final AppUser currentUser) {
         final Locale locale = command.extractLocale();
         validateAccountStatus(LoanEvent.LOAN_EDIT_MULTI_DISBURSE_DATE);
@@ -4965,8 +4967,8 @@ public class Loan extends AbstractPersistable<Long> {
             for (LoanTransaction loanTransaction : 
allNonContraTransactionsPostDisbursement) {
                 
copyTransactions.add(LoanTransaction.copyTransactionProperties(loanTransaction));
             }
-            
loanRepaymentScheduleTransactionProcessor.handleTransaction(getDisbursementDate(),
 copyTransactions,
-                    getCurrency(), this.repaymentScheduleInstallments, 
charges());
+            
loanRepaymentScheduleTransactionProcessor.handleTransaction(getDisbursementDate(),
 copyTransactions, getCurrency(),
+                    this.repaymentScheduleInstallments, charges());
 
             updateLoanSummaryDerivedFields();
         }
@@ -5551,11 +5553,11 @@ public class Loan extends AbstractPersistable<Long> {
         actualDisbursementDate = lastTransactionDate;
         updateLoanToLastDisbursalState(actualDisbursementDate);
         for (Iterator<LoanTermVariations> iterator = 
this.loanTermVariations.iterator(); iterator.hasNext();) {
-               LoanTermVariations loanTermVariations = iterator.next();
-                       if 
(loanTermVariations.fetchDateValue().isAfter(actualDisbursementDate)) {
-                               iterator.remove();
-                       }
-               }
+            LoanTermVariations loanTermVariations = iterator.next();
+            if 
(loanTermVariations.fetchDateValue().isAfter(actualDisbursementDate)) {
+                iterator.remove();
+            }
+        }
         reverseExistingTransactionsTillLastDisbursal(actualDisbursementDate);
         loan.recalculateScheduleFromLastTransaction(scheduleGeneratorDTO, 
existingTransactionIds, existingReversedTransactionIds,
                 currentUser);
@@ -5638,11 +5640,11 @@ public class Loan extends AbstractPersistable<Long> {
     }
 
     public int fetchNumberOfInstallmensAfterExceptions() {
-        if(this.repaymentScheduleInstallments.size() > 0){
+        if (this.repaymentScheduleInstallments.size() > 0) {
             int numberOfInstallments = 0;
             for (final LoanRepaymentScheduleInstallment installment : 
this.repaymentScheduleInstallments) {
-                if(!installment.isRecalculatedInterestComponent()){
-                    numberOfInstallments++; 
+                if (!installment.isRecalculatedInterestComponent()) {
+                    numberOfInstallments++;
                 }
             }
             return numberOfInstallments;
@@ -5653,27 +5655,27 @@ public class Loan extends AbstractPersistable<Long> {
     public void setExpectedFirstRepaymentOnDate(Date 
expectedFirstRepaymentOnDate) {
         this.expectedFirstRepaymentOnDate = expectedFirstRepaymentOnDate;
     }
-    
+
     /*
-       * get the next repayment date for rescheduling at the time of 
disbursement
-       */
-     public LocalDate getNextPossibleRepaymentDateForRescheduling(){
-       Set<LoanDisbursementDetails> loanDisbursementDetails = 
this.disbursementDetails;
-       LocalDate nextRepaymentDate = new LocalDate();
-       for(LoanDisbursementDetails loanDisbursementDetail : 
loanDisbursementDetails){
-               if(loanDisbursementDetail.actualDisbursementDate() == null){
-                       for (final LoanRepaymentScheduleInstallment installment 
: this.repaymentScheduleInstallments) {
-                           if 
(installment.getDueDate().isEqual(loanDisbursementDetail.expectedDisbursementDateAsLocalDate())
 || 
-                                       
installment.getDueDate().isAfter(loanDisbursementDetail.expectedDisbursementDateAsLocalDate())
 
-                                       && installment.isNotFullyPaidOff()) {
-                               nextRepaymentDate = installment.getDueDate();
-                               break;
-                           }   
-                       }
-                        break;
-               }
-       }
-               return nextRepaymentDate;
-     }
+     * get the next repayment date for rescheduling at the time of disbursement
+     */
+    public LocalDate getNextPossibleRepaymentDateForRescheduling() {
+        Set<LoanDisbursementDetails> loanDisbursementDetails = 
this.disbursementDetails;
+        LocalDate nextRepaymentDate = new LocalDate();
+        for (LoanDisbursementDetails loanDisbursementDetail : 
loanDisbursementDetails) {
+            if (loanDisbursementDetail.actualDisbursementDate() == null) {
+                for (final LoanRepaymentScheduleInstallment installment : 
this.repaymentScheduleInstallments) {
+                    if 
(installment.getDueDate().isEqual(loanDisbursementDetail.expectedDisbursementDateAsLocalDate())
+                            || 
installment.getDueDate().isAfter(loanDisbursementDetail.expectedDisbursementDateAsLocalDate())
+                            && installment.isNotFullyPaidOff()) {
+                        nextRepaymentDate = installment.getDueDate();
+                        break;
+                    }
+                }
+                break;
+            }
+        }
+        return nextRepaymentDate;
+    }
 
 }

Reply via email to