diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/api/LoansApiResource.java b/mifosng-provider/src/main/java/org/mifosng/platform/api/LoansApiResource.java index 91475bae5..cb1c317a8 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/api/LoansApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/api/LoansApiResource.java @@ -90,8 +90,9 @@ public class LoansApiResource { LoanBasicDetailsData loanBasicDetails = this.loanReadPlatformService .retrieveLoanAccountDetails(loanId); + LoanAccountData loanAccount = this.loanReadPlatformService.convertToData(loanBasicDetails); - LoanAccountData loanAccount = new LoanAccountData(loanBasicDetails, null, null, null, null ); + //LoanAccountData loanAccount = new LoanAccountData(loanBasicDetails, null, null, null, null ); String selectedFields = ""; String associatedFields = "summary,repaymentSchedule,loanRepayments,permissions,convenienceData"; diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/loan/domain/Loan.java b/mifosng-provider/src/main/java/org/mifosng/platform/loan/domain/Loan.java index ec4179ce2..7916d28ef 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/loan/domain/Loan.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/loan/domain/Loan.java @@ -27,6 +27,13 @@ import org.joda.time.DateTime; import org.joda.time.LocalDate; import org.mifosng.platform.api.data.CurrencyData; import org.mifosng.platform.api.data.DerivedLoanData; +import org.mifosng.platform.api.data.FundData; +import org.mifosng.platform.api.data.LoanAccountData; +import org.mifosng.platform.api.data.LoanAccountSummaryData; +import org.mifosng.platform.api.data.LoanBasicDetailsData; +import org.mifosng.platform.api.data.LoanPermissionData; +import org.mifosng.platform.api.data.LoanRepaymentScheduleData; +import org.mifosng.platform.api.data.LoanTransactionData; import org.mifosng.platform.client.domain.Client; import org.mifosng.platform.currency.domain.MonetaryCurrency; import org.mifosng.platform.currency.domain.Money; @@ -954,39 +961,16 @@ public class Loan extends AbstractAuditableCustom { return statusSinceDate; } -/* jpw will be deleting this shortly - public LoanBasicDetailsData toBasicDetailsData(final CurrencyData currencyData, final FundData fundData) { - - Money loanPrincipal = this.loanRepaymentScheduleDetail.getPrincipal(); - MoneyData principal = MoneyData.of(currencyData, loanPrincipal.getAmount()); - - Money loanArrearsTolerance = this.loanRepaymentScheduleDetail.getInArrearsTolerance(); - MoneyData tolerance = MoneyData.of(currencyData, loanArrearsTolerance.getAmount()); - - EnumOptionData repaymentFrequencyType = LoanEnumerations.repaymentFrequencyType(this.loanRepaymentScheduleDetail.getRepaymentPeriodFrequencyType()); - EnumOptionData interestRateFrequencyType = LoanEnumerations.interestRateFrequencyType(this.loanRepaymentScheduleDetail.getInterestPeriodFrequencyType()); - EnumOptionData amortizationType = LoanEnumerations.amortizationType(this.loanRepaymentScheduleDetail.getAmortizationMethod()); - EnumOptionData interestType = LoanEnumerations.interestType(this.loanRepaymentScheduleDetail.getInterestMethod()); - EnumOptionData interestCalculationPeriodType = LoanEnumerations.interestCalculationPeriodType(this.loanRepaymentScheduleDetail.getInterestCalculationPeriodMethod()); - - return new LoanBasicDetailsData(getId(), this.externalId, this.loanProduct.getName(), fundData, - getClosedOnDate(), getSubmittedOnDate(), getApprovedOnDate(), getExpectedDisbursedOnLocalDate(), getDisbursedOnDate(), - getExpectedMaturityDate(), getExpectedFirstRepaymentOnDate(), getInterestChargedFromDate(), principal, tolerance, - this.loanRepaymentScheduleDetail.getNumberOfRepayments(), this.loanRepaymentScheduleDetail.getRepayEvery(), - this.loanRepaymentScheduleDetail.getNominalInterestRatePerPeriod(), this.loanRepaymentScheduleDetail.getAnnualNominalInterestRate(), - repaymentFrequencyType, interestRateFrequencyType, amortizationType, interestType, interestCalculationPeriodType, getLoanStatusDisplayName(), getLoanStatusSinceDate()); - } -*/ + public String getCurrencyCode() { return this.loanRepaymentScheduleDetail.getPrincipal().getCurrencyCode(); } -/* jpw will be deleting this shortly - public LoanAccountData toLoanAccountData(LoanAccountSummaryData summary, LoanRepaymentScheduleData repaymentSchedule, - List loanRepayments, - CurrencyData currencyData, FundData fundData) { +// jpw will be deleting this shortly + public LoanAccountData toLoanAccountData(LoanBasicDetailsData basicDetails, LoanAccountSummaryData summary, LoanRepaymentScheduleData repaymentSchedule, + List loanRepayments) { - LoanBasicDetailsData basicDetails = toBasicDetailsData(currencyData, fundData); + //LoanBasicDetailsData basicDetails = toBasicDetailsData(currencyData, fundData); // permissions boolean waiveAllowed = summary.isWaiveAllowed(basicDetails.getInArrearsTolerance()) @@ -1011,5 +995,5 @@ public class Loan extends AbstractAuditableCustom { return new LoanAccountData(basicDetails, summary, repaymentSchedule, loanRepayments, permissions); } - */ + } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/loan/service/LoanReadPlatformService.java b/mifosng-provider/src/main/java/org/mifosng/platform/loan/service/LoanReadPlatformService.java index 33a5751db..aaffaadec 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/loan/service/LoanReadPlatformService.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/loan/service/LoanReadPlatformService.java @@ -1,5 +1,6 @@ package org.mifosng.platform.loan.service; +import org.mifosng.platform.api.data.LoanAccountData; import org.mifosng.platform.api.data.LoanBasicDetailsData; import org.mifosng.platform.api.data.LoanTransactionData; import org.mifosng.platform.api.data.NewLoanData; @@ -16,4 +17,6 @@ public interface LoanReadPlatformService { LoanTransactionData retrieveLoanTransactionDetails(Long loanId, Long transactionId); + + LoanAccountData convertToData(LoanBasicDetailsData loanBasic);//del jpw after } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/loan/service/LoanReadPlatformServiceImpl.java b/mifosng-provider/src/main/java/org/mifosng/platform/loan/service/LoanReadPlatformServiceImpl.java index 2ce4b6e9e..8fd663278 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/loan/service/LoanReadPlatformServiceImpl.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/loan/service/LoanReadPlatformServiceImpl.java @@ -9,7 +9,10 @@ import java.util.Collection; import org.joda.time.LocalDate; import org.mifosng.platform.api.data.ClientData; import org.mifosng.platform.api.data.CurrencyData; +import org.mifosng.platform.api.data.DerivedLoanData; import org.mifosng.platform.api.data.EnumOptionData; +import org.mifosng.platform.api.data.FundData; +import org.mifosng.platform.api.data.LoanAccountData; import org.mifosng.platform.api.data.LoanBasicDetailsData; import org.mifosng.platform.api.data.LoanProductData; import org.mifosng.platform.api.data.LoanProductLookup; @@ -86,20 +89,26 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { } return selectedLoan; - // return convertToData(loan, currencyData, fundData); + } +//jpw delete after + public LoanAccountData convertToData(LoanBasicDetailsData loanBasic) { + + MoneyData princ = loanBasic.getPrincipal(); + + CurrencyData currencyData = new CurrencyData(princ.getCurrencyCode(), + princ.getDefaultName(), princ.getDigitsAfterDecimal(), princ.getDisplaySymbol(), + princ.getNameCode()); + + final Loan realLoan = this.loanRepository.findOne(loanBasic.getId()); + if (realLoan == null) { + throw new LoanNotFoundException(loanBasic.getId()); + } + DerivedLoanData loanData = realLoan.deriveLoanData(currencyData); + + return realLoan.toLoanAccountData(loanBasic, loanData.getSummary(), + loanData.getRepaymentSchedule(), loanData.getLoanRepayments()); } - /* - * check if this is used after jpw private LoanAccountData - * convertToData(final Loan realLoan, CurrencyData currencyData, FundData - * fundData) { - * - * DerivedLoanData loanData = realLoan.deriveLoanData(currencyData); - * - * return realLoan.toLoanAccountData(loanData.getSummary(), - * loanData.getRepaymentSchedule(), loanData.getLoanRepayments(), - * currencyData, fundData); } - */ @Override public NewLoanData retrieveClientAndProductDetails(final Long clientId, final Long productId) {