From 12a16a07cf9102c16a4a9c9dc24bc5e5a912e111 Mon Sep 17 00:00:00 2001 From: Keith Woodlock Date: Wed, 22 Aug 2012 16:12:34 +0100 Subject: [PATCH] break out currency information on its own, using use values for loan product amount and inArrearsTolerance. --- .../platform/api/data/LoanProductData.java | 26 +++++++++++++------ .../LoanProductReadPlatformServiceImpl.java | 20 +++++++------- 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/data/LoanProductData.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/data/LoanProductData.java index 5065eeddd..77da2d180 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/data/LoanProductData.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/data/LoanProductData.java @@ -19,8 +19,9 @@ public class LoanProductData { private Long transactionProcessingStrategyId; private String transactionProcessingStrategyName; - private MoneyData principal; - private MoneyData inArrearsTolerance; + private CurrencyData currency; + private BigDecimal principal; + private BigDecimal inArrearsTolerance; private Integer numberOfRepayments; private Integer loanTermFrequency; @@ -69,8 +70,9 @@ public class LoanProductData { this.id = id; this.name = name; this.description = description; - this.principal = principal; - this.inArrearsTolerance = tolerance; + this.currency = new CurrencyData(principal.getCurrencyCode(), principal.getDefaultName(), principal.getDigitsAfterDecimal(), principal.getDisplaySymbol(), principal.getNameCode()); + this.principal = principal.getAmount(); + this.inArrearsTolerance = tolerance.getAmount(); this.numberOfRepayments = numberOfRepayments; this.loanTermFrequency = loanTermFrequency; this.repaymentEvery = repaymentEvery; @@ -144,20 +146,28 @@ public class LoanProductData { String transactionProcessingStrategyName) { this.transactionProcessingStrategyName = transactionProcessingStrategyName; } + + public CurrencyData getCurrency() { + return currency; + } - public MoneyData getPrincipal() { + public void setCurrency(CurrencyData currency) { + this.currency = currency; + } + + public BigDecimal getPrincipal() { return principal; } - public void setPrincipal(MoneyData principal) { + public void setPrincipal(BigDecimal principal) { this.principal = principal; } - public MoneyData getInArrearsTolerance() { + public BigDecimal getInArrearsTolerance() { return inArrearsTolerance; } - public void setInArrearsTolerance(MoneyData inArrearsTolerance) { + public void setInArrearsTolerance(BigDecimal inArrearsTolerance) { this.inArrearsTolerance = inArrearsTolerance; } diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/loanproduct/service/LoanProductReadPlatformServiceImpl.java b/mifosng-provider/src/main/java/org/mifosng/platform/loanproduct/service/LoanProductReadPlatformServiceImpl.java index 39e908a3e..8fe949f40 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/loanproduct/service/LoanProductReadPlatformServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/loanproduct/service/LoanProductReadPlatformServiceImpl.java @@ -101,10 +101,8 @@ public class LoanProductReadPlatformServiceImpl implements LoanProductReadPlatfo LoanProductData productData = new LoanProductData(); - productData.setAmortizationType(LoanEnumerations - .amortizationType(AmortizationMethod.EQUAL_INSTALLMENTS)); - productData.setInterestType(LoanEnumerations - .interestType(InterestMethod.DECLINING_BALANCE)); + productData.setAmortizationType(LoanEnumerations.amortizationType(AmortizationMethod.EQUAL_INSTALLMENTS)); + productData.setInterestType(LoanEnumerations.interestType(InterestMethod.DECLINING_BALANCE)); productData.setLoanTermFrequencyType(LoanEnumerations.loanTermFrequencyType(PeriodFrequencyType.MONTHS)); @@ -115,12 +113,16 @@ public class LoanProductReadPlatformServiceImpl implements LoanProductReadPlatfo productData.setInterestCalculationPeriodType(LoanEnumerations.interestCalculationPeriodType(InterestCalculationPeriodMethod.SAME_AS_REPAYMENT_PERIOD)); populateProductDataWithDropdownOptions(productData); + + productData.setPrincipal(BigDecimal.ZERO); + productData.setInArrearsTolerance(BigDecimal.ZERO); + + CurrencyData currency = new CurrencyData("", "", 0, "", ""); + productData.setCurrency(currency); - if (productData.getCurrencyOptions().size() >= 1) { - CurrencyData currency = productData.getCurrencyOptions().get(0); - MoneyData zero = MoneyData.zero(currency); - productData.setPrincipal(zero); - productData.setInArrearsTolerance(zero); + if (productData.getCurrencyOptions().size() == 1) { + currency = productData.getCurrencyOptions().get(0); + productData.setCurrency(currency); } return productData;