add support for charges when create new or modifying loan aplication on the GET of data.
This commit is contained in:
@@ -137,14 +137,19 @@ public class LoansApiResource {
|
||||
Collection<FundData> fundOptions = this.fundReadPlatformService.retrieveAllFunds();
|
||||
Collection<TransactionProcessingStrategyData> transactionProcessingStrategyOptions = this.dropdownReadPlatformService.retreiveTransactionProcessingStrategies();
|
||||
|
||||
LoanBasicDetailsData loanBasicDetails = this.loanReadPlatformService.retrieveClientAndProductDetails(clientId, productId);
|
||||
Collection<ChargeData> chargeOptions = this.chargeReadPlatformService.retrieveLoanApplicableCharges();
|
||||
|
||||
LoanBasicDetailsData loanBasicDetails = this.loanReadPlatformService.retrieveClientAndProductDetails(clientId, productId);
|
||||
if (loanBasicDetails.getCharges() != null) {
|
||||
chargeOptions.removeAll(loanBasicDetails.getCharges());
|
||||
}
|
||||
|
||||
final boolean convenienceDataRequired = false;
|
||||
Collection<ChargeData> charges = null;
|
||||
Collection<ChargeData> charges = loanBasicDetails.getCharges();
|
||||
final LoanAccountData newLoanAccount = new LoanAccountData(loanBasicDetails, convenienceDataRequired, null, null, null, null, charges,
|
||||
productOptions, loanTermFrequencyTypeOptions, repaymentFrequencyTypeOptions,
|
||||
transactionProcessingStrategyOptions, interestRateFrequencyTypeOptions,
|
||||
amortizationTypeOptions, interestTypeOptions, interestCalculationPeriodTypeOptions, fundOptions);
|
||||
amortizationTypeOptions, interestTypeOptions, interestCalculationPeriodTypeOptions, fundOptions, chargeOptions);
|
||||
|
||||
return this.apiJsonSerializerService.serialzieLoanAccountDataToJson(prettyPrint, responseParameters, newLoanAccount);
|
||||
}
|
||||
@@ -213,6 +218,7 @@ public class LoansApiResource {
|
||||
Collection<EnumOptionData> interestTypeOptions = new ArrayList<EnumOptionData>();
|
||||
Collection<EnumOptionData> interestCalculationPeriodTypeOptions = new ArrayList<EnumOptionData>();
|
||||
Collection<FundData> fundOptions = new ArrayList<FundData>();
|
||||
Collection<ChargeData> chargeOptions = null;
|
||||
|
||||
final boolean template = ApiParameterHelper.template(uriInfo.getQueryParameters());
|
||||
if(template) {
|
||||
@@ -230,12 +236,16 @@ public class LoansApiResource {
|
||||
|
||||
fundOptions = this.fundReadPlatformService.retrieveAllFunds();
|
||||
transactionProcessingStrategyOptions = this.dropdownReadPlatformService.retreiveTransactionProcessingStrategies();
|
||||
chargeOptions = this.chargeReadPlatformService.retrieveLoanApplicableCharges();
|
||||
if (charges != null) {
|
||||
chargeOptions.removeAll(charges);
|
||||
}
|
||||
}
|
||||
|
||||
final LoanAccountData loanAccount = new LoanAccountData(loanBasicDetails, convenienceDataRequired, summary, repaymentSchedule, loanRepayments, permissions, charges,
|
||||
productOptions, loanTermFrequencyTypeOptions, repaymentFrequencyTypeOptions,
|
||||
transactionProcessingStrategyOptions, interestRateFrequencyTypeOptions,
|
||||
amortizationTypeOptions, interestTypeOptions, interestCalculationPeriodTypeOptions, fundOptions);
|
||||
amortizationTypeOptions, interestTypeOptions, interestCalculationPeriodTypeOptions, fundOptions, chargeOptions);
|
||||
|
||||
return this.apiJsonSerializerService.serialzieLoanAccountDataToJson(prettyPrint, responseParameters, loanAccount);
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@ public class LoanAccountData {
|
||||
private final EnumOptionData interestType;
|
||||
private final EnumOptionData interestCalculationPeriodType;
|
||||
|
||||
private Collection<ChargeData> charges;
|
||||
|
||||
private final LocalDate submittedOnDate;
|
||||
private final LocalDate approvedOnDate;
|
||||
private final LocalDate expectedDisbursementDate;
|
||||
@@ -49,6 +47,14 @@ public class LoanAccountData {
|
||||
private final LocalDate expectedMaturityDate;
|
||||
private final LocalDate lifeCycleStatusDate;
|
||||
|
||||
// associations
|
||||
private final LoanAccountSummaryData summary;
|
||||
private final Collection<LoanRepaymentPeriodData> repaymentSchedule;
|
||||
private final Collection<LoanRepaymentTransactionData> loanRepayments;
|
||||
private final Collection<ChargeData> charges;
|
||||
private final LoanPermissionData permissions;
|
||||
private final LoanConvenienceData convenienceData;
|
||||
|
||||
// template
|
||||
private final Collection<LoanProductLookup> productOptions;
|
||||
private final Collection<EnumOptionData> termFrequencyTypeOptions;
|
||||
@@ -59,14 +65,7 @@ public class LoanAccountData {
|
||||
private final Collection<EnumOptionData> interestTypeOptions;
|
||||
private final Collection<EnumOptionData> interestCalculationPeriodTypeOptions;
|
||||
private final Collection<FundData> fundOptions;
|
||||
|
||||
// associations
|
||||
private final LoanAccountSummaryData summary;
|
||||
private final Collection<LoanRepaymentPeriodData> repaymentSchedule;
|
||||
private final Collection<LoanRepaymentTransactionData> loanRepayments;
|
||||
|
||||
private final LoanPermissionData permissions;
|
||||
private final LoanConvenienceData convenienceData;
|
||||
private final Collection<ChargeData> chargeOptions;
|
||||
|
||||
public LoanAccountData(
|
||||
final LoanBasicDetailsData basicDetails,
|
||||
@@ -84,7 +83,8 @@ public class LoanAccountData {
|
||||
final Collection<EnumOptionData> amortizationTypeOptions,
|
||||
final Collection<EnumOptionData> interestTypeOptions,
|
||||
final Collection<EnumOptionData> interestCalculationPeriodTypeOptions,
|
||||
final Collection<FundData> fundOptions) {
|
||||
final Collection<FundData> fundOptions,
|
||||
final Collection<ChargeData> chargeOptions) {
|
||||
this.summary = summary;
|
||||
this.repaymentSchedule = repaymentSchedule;
|
||||
this.loanRepayments = loanRepayments;
|
||||
@@ -99,6 +99,7 @@ public class LoanAccountData {
|
||||
this.interestTypeOptions = interestTypeOptions;
|
||||
this.interestCalculationPeriodTypeOptions = interestCalculationPeriodTypeOptions;
|
||||
this.fundOptions = fundOptions;
|
||||
this.chargeOptions = chargeOptions;
|
||||
|
||||
if (convenienceDataRequired) {
|
||||
int maxSubmittedOnOffsetFromToday = basicDetails
|
||||
@@ -324,10 +325,6 @@ public class LoanAccountData {
|
||||
return this.charges;
|
||||
}
|
||||
|
||||
public void setCharges(Collection<ChargeData> charges) {
|
||||
this.charges = charges;
|
||||
}
|
||||
|
||||
public Collection<LoanProductLookup> getProductOptions() {
|
||||
return productOptions;
|
||||
}
|
||||
@@ -363,4 +360,8 @@ public class LoanAccountData {
|
||||
public Collection<FundData> getFundOptions() {
|
||||
return fundOptions;
|
||||
}
|
||||
|
||||
public Collection<ChargeData> getChargeOptions() {
|
||||
return chargeOptions;
|
||||
}
|
||||
}
|
||||
+16
-3
@@ -1,6 +1,7 @@
|
||||
package org.mifosng.platform.api.data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Collection;
|
||||
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.Days;
|
||||
@@ -49,6 +50,8 @@ public class LoanBasicDetailsData {
|
||||
private final LocalDate expectedMaturityDate;
|
||||
private final LocalDate lifeCycleStatusDate;
|
||||
|
||||
private final Collection<ChargeData> charges;
|
||||
|
||||
public static LoanBasicDetailsData populateForNewLoanCreation(final Long clientId, final String clientName, final LocalDate expectedDisbursementDate) {
|
||||
return new LoanBasicDetailsData(clientId, clientName, expectedDisbursementDate);
|
||||
}
|
||||
@@ -64,7 +67,7 @@ public class LoanBasicDetailsData {
|
||||
termFrequency, termPeriodFrequencyType, product.getNumberOfRepayments(), product.getRepaymentEvery(), product.getRepaymentFrequencyType(),
|
||||
product.getTransactionProcessingStrategyId(), product.getAmortizationType(),
|
||||
product.getInterestRatePerPeriod(), product.getInterestRateFrequencyType(), product.getInterestType(), product.getInterestCalculationPeriodType(),
|
||||
loanAccount.expectedDisbursementDate);
|
||||
loanAccount.expectedDisbursementDate, product.getCharges());
|
||||
}
|
||||
|
||||
private LoanBasicDetailsData(
|
||||
@@ -82,7 +85,7 @@ public class LoanBasicDetailsData {
|
||||
final EnumOptionData interestRateFrequencyType,
|
||||
final EnumOptionData interestType,
|
||||
final EnumOptionData interestCalculationPeriodType,
|
||||
final LocalDate expectedDisbursementDate) {
|
||||
final LocalDate expectedDisbursementDate, final Collection<ChargeData> charges) {
|
||||
this.id = null;
|
||||
this.externalId = null;
|
||||
this.clientId = clientId;
|
||||
@@ -127,6 +130,8 @@ public class LoanBasicDetailsData {
|
||||
this.repaymentsStartingFromDate = null;
|
||||
this.interestChargedFromDate = null;
|
||||
this.lifeCycleStatusDate = null;
|
||||
|
||||
this.charges = charges;
|
||||
}
|
||||
|
||||
private LoanBasicDetailsData(final Long clientId, final String clientName, final LocalDate expectedDisbursementDate) {
|
||||
@@ -168,6 +173,8 @@ public class LoanBasicDetailsData {
|
||||
this.expectedMaturityDate = null;
|
||||
this.repaymentsStartingFromDate = null;
|
||||
this.interestChargedFromDate = null;
|
||||
|
||||
this.charges = null;
|
||||
}
|
||||
|
||||
public LoanBasicDetailsData(
|
||||
@@ -202,7 +209,8 @@ public class LoanBasicDetailsData {
|
||||
final LocalDate lifeCycleStatusDate,
|
||||
final Integer termFrequency,
|
||||
final EnumOptionData termPeriodFrequencyType,
|
||||
final Integer transactionStrategyId) {
|
||||
final Integer transactionStrategyId,
|
||||
final Collection<ChargeData> charges) {
|
||||
this.id = id;
|
||||
this.externalId = externalId;
|
||||
this.clientId = clientId;
|
||||
@@ -237,6 +245,7 @@ public class LoanBasicDetailsData {
|
||||
this.termFrequency = termFrequency;
|
||||
this.termPeriodFrequencyType = termPeriodFrequencyType;
|
||||
this.transactionStrategyId = transactionStrategyId;
|
||||
this.charges = charges;
|
||||
}
|
||||
|
||||
public int getMaxSubmittedOnOffsetFromToday() {
|
||||
@@ -463,4 +472,8 @@ public class LoanBasicDetailsData {
|
||||
public Integer getTransactionStrategyId() {
|
||||
return transactionStrategyId;
|
||||
}
|
||||
|
||||
public Collection<ChargeData> getCharges() {
|
||||
return charges;
|
||||
}
|
||||
}
|
||||
+3
-1
@@ -6,6 +6,7 @@ import java.sql.SQLException;
|
||||
import java.util.Collection;
|
||||
|
||||
import org.joda.time.LocalDate;
|
||||
import org.mifosng.platform.api.data.ChargeData;
|
||||
import org.mifosng.platform.api.data.ClientData;
|
||||
import org.mifosng.platform.api.data.CurrencyData;
|
||||
import org.mifosng.platform.api.data.EnumOptionData;
|
||||
@@ -469,6 +470,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
|
||||
lifeCycleStatusDate = closedOnDate;
|
||||
}
|
||||
|
||||
Collection<ChargeData> charges = null;
|
||||
return new LoanBasicDetailsData(id, externalId, clientId, clientName,
|
||||
loanProductId, loanProductName, loanProductDescription,
|
||||
fundId, fundName,
|
||||
@@ -483,7 +485,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
|
||||
amortizationType, interestType,
|
||||
interestCalculationPeriodType,
|
||||
status,
|
||||
lifeCycleStatusDate, termFrequency, termPeriodFrequencyType, transactionStrategyId);
|
||||
lifeCycleStatusDate, termFrequency, termPeriodFrequencyType, transactionStrategyId, charges);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user