align loan product data with field names used for create. return enumerations with extra information that describe it better.

This commit is contained in:
Keith Woodlock
2012-05-30 16:12:37 +01:00
parent cb0cf64a2b
commit 6a0f4b3f6f
59 changed files with 608 additions and 649 deletions
@@ -17,13 +17,13 @@ import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import org.joda.time.LocalDate;
import org.mifosng.data.ClientData;
import org.mifosng.data.ClientLoanAccountSummaryCollectionData;
import org.mifosng.data.EntityIdentifier;
import org.mifosng.data.NoteData;
import org.mifosng.data.OfficeLookup;
import org.mifosng.platform.api.commands.ClientCommand;
import org.mifosng.platform.api.commands.NoteCommand;
import org.mifosng.platform.api.data.ClientData;
import org.mifosng.platform.api.data.OfficeLookup;
import org.mifosng.platform.api.infrastructure.ApiDataConversionService;
import org.mifosng.platform.api.infrastructure.ApiJSONFormattingService;
import org.mifosng.platform.client.service.ClientReadPlatformService;
@@ -17,8 +17,8 @@ import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import org.mifosng.data.EntityIdentifier;
import org.mifosng.data.LoanProductData;
import org.mifosng.platform.api.commands.LoanProductCommand;
import org.mifosng.platform.api.data.LoanProductData;
import org.mifosng.platform.api.infrastructure.ApiDataConversionService;
import org.mifosng.platform.api.infrastructure.ApiJSONFormattingService;
import org.mifosng.platform.loanproduct.service.LoanProductReadPlatformService;
@@ -32,8 +32,8 @@ import org.springframework.stereotype.Component;
@Scope("singleton")
public class LoanProductApiResource {
private String defaultFieldList = "principalMoney,inArrearsTolerance,amortizationMethod,interestMethod,repaymentPeriodFrequency,interestRatePeriod,interestRateCalculatedInPeriod,repaidEvery,numberOfRepayments,interestRatePerPeriod,annualInterestRate,numberOfInterestFreePeriods,flexible,interestRebateAllowed";
private String allowedFieldList = "possibleCurrencies,possibleAmortizationOptions,possibleInterestOptions,possibleInterestRateCalculatedInPeriodOptions,repaymentFrequencyOptions,interestFrequencyOptions";
private String defaultFieldList = "principal,inArrearsTolerance,numberOfRepayments,repaymentEvery,interestRatePerPeriod,annualInterestRate,repaymentFrequencyType,interestRateFrequencyType,amortizationType,interestType,interestCalculationPeriodType";
private String allowedFieldList = "currencyOptions,amortizationTypeOptions,interestTypeOptions,interestCalculationPeriodTypeOptions,repaymentFrequencyTypeOptions,interestRateFrequencyTypeOptions";
private String filterName = "myFilter";
@Autowired
@@ -22,13 +22,13 @@ import org.mifosng.data.EntityIdentifier;
import org.mifosng.data.LoanAccountData;
import org.mifosng.data.LoanRepaymentData;
import org.mifosng.data.LoanSchedule;
import org.mifosng.data.NewLoanWorkflowStepOneData;
import org.mifosng.platform.api.commands.AdjustLoanTransactionCommand;
import org.mifosng.platform.api.commands.CalculateLoanScheduleCommand;
import org.mifosng.platform.api.commands.LoanStateTransitionCommand;
import org.mifosng.platform.api.commands.LoanTransactionCommand;
import org.mifosng.platform.api.commands.SubmitLoanApplicationCommand;
import org.mifosng.platform.api.commands.UndoStateTransitionCommand;
import org.mifosng.platform.api.data.NewLoanWorkflowStepOneData;
import org.mifosng.platform.api.infrastructure.ApiDataConversionService;
import org.mifosng.platform.api.infrastructure.ApiJSONFormattingService;
import org.mifosng.platform.exceptions.UnrecognizedQueryParamException;
@@ -17,8 +17,8 @@ import javax.ws.rs.core.UriInfo;
import org.joda.time.LocalDate;
import org.mifosng.data.EntityIdentifier;
import org.mifosng.data.OfficeData;
import org.mifosng.platform.api.commands.OfficeCommand;
import org.mifosng.platform.api.data.OfficeData;
import org.mifosng.platform.api.infrastructure.ApiDataConversionService;
import org.mifosng.platform.api.infrastructure.ApiJSONFormattingService;
import org.mifosng.platform.organisation.service.OfficeReadPlatformService;
@@ -10,7 +10,7 @@ import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriInfo;
import org.mifosng.data.PermissionData;
import org.mifosng.platform.api.data.PermissionData;
import org.mifosng.platform.api.infrastructure.ApiJSONFormattingService;
import org.mifosng.platform.user.service.PermissionReadPlatformService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -16,9 +16,9 @@ import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import org.mifosng.data.EntityIdentifier;
import org.mifosng.data.PermissionData;
import org.mifosng.data.RoleData;
import org.mifosng.platform.api.commands.RoleCommand;
import org.mifosng.platform.api.data.PermissionData;
import org.mifosng.platform.api.data.RoleData;
import org.mifosng.platform.api.infrastructure.ApiJSONFormattingService;
import org.mifosng.platform.user.service.PermissionReadPlatformService;
import org.mifosng.platform.user.service.RoleReadPlatformService;
@@ -15,9 +15,9 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import org.mifosng.data.AppUserData;
import org.mifosng.data.EntityIdentifier;
import org.mifosng.platform.api.commands.UserCommand;
import org.mifosng.platform.api.data.AppUserData;
import org.mifosng.platform.api.infrastructure.ApiJSONFormattingService;
import org.mifosng.platform.user.service.AppUserReadPlatformService;
import org.mifosng.platform.user.service.AppUserWritePlatformService;
@@ -0,0 +1,129 @@
package org.mifosng.platform.api.data;
import java.util.ArrayList;
import java.util.List;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.map.annotate.JsonFilter;
@JsonIgnoreProperties({ "orgId" })
@JsonFilter("userFilter")
public class AppUserData {
private Long id;
private Long orgId;
private Long officeId;
private String officeName;
private String username;
private String firstname;
private String lastname;
private String email;
private List<OfficeLookup> allowedOffices = new ArrayList<OfficeLookup>();
private List<RoleData> availableRoles = new ArrayList<RoleData>();
private List<RoleData> selectedRoles = new ArrayList<RoleData>();
public AppUserData() {
//
}
public AppUserData(final Long id, final String username,
final String email, final Long orgId, final Long officeId,
final String officeName) {
this.id = id;
this.username = username;
this.email = email;
this.orgId = orgId;
this.officeId = officeId;
this.officeName = officeName;
}
public Long getId() {
return this.id;
}
public String getUsername() {
return this.username;
}
public String getEmail() {
return this.email;
}
public Long getOrgId() {
return this.orgId;
}
public Long getOfficeId() {
return this.officeId;
}
public String getOfficeName() {
return this.officeName;
}
public void setId(final Long id) {
this.id = id;
}
public void setUsername(final String username) {
this.username = username;
}
public void setEmail(final String email) {
this.email = email;
}
public void setOrgId(final Long orgId) {
this.orgId = orgId;
}
public void setOfficeId(final Long officeId) {
this.officeId = officeId;
}
public void setOfficeName(final String officeName) {
this.officeName = officeName;
}
public List<OfficeLookup> getAllowedOffices() {
return allowedOffices;
}
public void setAllowedOffices(List<OfficeLookup> allowedOffices) {
this.allowedOffices = allowedOffices;
}
public List<RoleData> getAvailableRoles() {
return availableRoles;
}
public void setAvailableRoles(List<RoleData> availableRoles) {
this.availableRoles = availableRoles;
}
public List<RoleData> getSelectedRoles() {
return selectedRoles;
}
public void setSelectedRoles(List<RoleData> selectedRoles) {
this.selectedRoles = selectedRoles;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
}
@@ -0,0 +1,143 @@
package org.mifosng.platform.api.data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.map.annotate.JsonFilter;
import org.joda.time.DateTime;
import org.joda.time.Days;
import org.joda.time.LocalDate;
@JsonIgnoreProperties({ "organisationId","organisationName"})
@JsonFilter("myFilter")
public class ClientData implements Serializable {
private Long organisationId;
private String organisationName;
private Long officeId;
private String officeName;
private Long id;
private String firstname;
private String lastname;
private String displayName;
private String externalId;
private LocalDate joinedDate;
private List<OfficeLookup> allowedOffices = new ArrayList<OfficeLookup>();
public ClientData() {
//
}
public ClientData(final Long organisationId, final String organisationName,
final Long officeId, final String officeName, final Long id,
final String firstname, final String lastname,
final String externalId, final LocalDate joinedDate) {
this.organisationId = organisationId;
this.organisationName = organisationName;
this.officeId = officeId;
this.officeName = officeName;
this.id = id;
this.firstname = firstname;
this.lastname = lastname;
this.displayName = new StringBuilder(this.firstname).append(' ')
.append(this.lastname).toString();
this.externalId = externalId;
this.joinedDate = joinedDate;
}
public int getMaxJoinedOnOffsetFromToday() {
return Days.daysBetween(new DateTime(),
this.getJoinedDate().toDateMidnight().toDateTime()).getDays();
}
public Long getId() {
return this.id;
}
public String getFirstname() {
return this.firstname;
}
public String getLastname() {
return this.lastname;
}
public String getExternalId() {
return this.externalId;
}
public Long getOrganisationId() {
return this.organisationId;
}
public String getOrganisationName() {
return this.organisationName;
}
public Long getOfficeId() {
return this.officeId;
}
public String getOfficeName() {
return this.officeName;
}
public LocalDate getJoinedDate() {
return this.joinedDate;
}
public void setOrganisationId(final Long organisationId) {
this.organisationId = organisationId;
}
public void setOrganisationName(final String organisationName) {
this.organisationName = organisationName;
}
public void setOfficeId(final Long officeId) {
this.officeId = officeId;
}
public void setOfficeName(final String officeName) {
this.officeName = officeName;
}
public void setId(final Long id) {
this.id = id;
}
public void setFirstname(final String firstname) {
this.firstname = firstname;
}
public void setLastname(final String lastname) {
this.lastname = lastname;
}
public void setExternalId(final String externalId) {
this.externalId = externalId;
}
public void setJoinedDate(final LocalDate joinedDate) {
this.joinedDate = joinedDate;
}
public String getDisplayName() {
return this.displayName;
}
public void setDisplayName(final String displayName) {
this.displayName = displayName;
}
public List<OfficeLookup> getAllowedOffices() {
return allowedOffices;
}
public void setAllowedOffices(List<OfficeLookup> allowedOffices) {
this.allowedOffices = allowedOffices;
}
}
@@ -0,0 +1,258 @@
package org.mifosng.platform.api.data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import org.codehaus.jackson.map.annotate.JsonFilter;
import org.joda.time.DateTime;
import org.mifosng.data.CurrencyData;
import org.mifosng.data.EnumOptionData;
import org.mifosng.data.MoneyData;
@JsonFilter("myFilter")
public class LoanProductData implements Serializable {
private Long id;
private String name;
private String description;
private MoneyData principal;
private MoneyData inArrearsTolerance;
private Integer numberOfRepayments;
private Integer repaymentEvery;
private BigDecimal interestRatePerPeriod = BigDecimal.ZERO;
private BigDecimal annualInterestRate = BigDecimal.ZERO;
private EnumOptionData repaymentFrequencyType;
private EnumOptionData interestRateFrequencyType;
private EnumOptionData amortizationType;
private EnumOptionData interestType;
private EnumOptionData interestCalculationPeriodType;
private DateTime createdOn;
private DateTime lastModifedOn;
private List<CurrencyData> currencyOptions = new ArrayList<CurrencyData>();
private List<EnumOptionData> amortizationTypeOptions = new ArrayList<EnumOptionData>();
private List<EnumOptionData> interestTypeOptions = new ArrayList<EnumOptionData>();
private List<EnumOptionData> interestCalculationPeriodTypeOptions = new ArrayList<EnumOptionData>();
private List<EnumOptionData> repaymentFrequencyTypeOptions = new ArrayList<EnumOptionData>();
private List<EnumOptionData> interestRateFrequencyTypeOptions = new ArrayList<EnumOptionData>();
public LoanProductData() {
//
}
public LoanProductData(DateTime createdOn, DateTime lastModifedOn, Long id,
String name, String description, MoneyData principal,
MoneyData tolerance, Integer numberOfRepayments,
Integer repaymentEvery, BigDecimal interestRatePerPeriod,
BigDecimal annualInterestRate,
EnumOptionData repaymentFrequencyType,
EnumOptionData interestRateFrequencyType,
EnumOptionData amortizationType,
EnumOptionData interestType,
EnumOptionData interestCalculationPeriodType) {
this.createdOn = createdOn;
this.lastModifedOn = lastModifedOn;
this.id = id;
this.name = name;
this.description = description;
this.principal = principal;
this.inArrearsTolerance = tolerance;
this.numberOfRepayments = numberOfRepayments;
this.repaymentEvery = repaymentEvery;
this.interestRatePerPeriod = interestRatePerPeriod;
this.annualInterestRate = annualInterestRate;
this.repaymentFrequencyType = repaymentFrequencyType;
this.interestRateFrequencyType = interestRateFrequencyType;
this.amortizationType = amortizationType;
this.interestType = interestType;
this.interestCalculationPeriodType = interestCalculationPeriodType;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public MoneyData getPrincipal() {
return principal;
}
public void setPrincipal(MoneyData principal) {
this.principal = principal;
}
public MoneyData getInArrearsTolerance() {
return inArrearsTolerance;
}
public void setInArrearsTolerance(MoneyData inArrearsTolerance) {
this.inArrearsTolerance = inArrearsTolerance;
}
public Integer getNumberOfRepayments() {
return numberOfRepayments;
}
public void setNumberOfRepayments(Integer numberOfRepayments) {
this.numberOfRepayments = numberOfRepayments;
}
public Integer getRepaymentEvery() {
return repaymentEvery;
}
public void setRepaymentEvery(Integer repaymentEvery) {
this.repaymentEvery = repaymentEvery;
}
public BigDecimal getInterestRatePerPeriod() {
return interestRatePerPeriod;
}
public void setInterestRatePerPeriod(BigDecimal interestRatePerPeriod) {
this.interestRatePerPeriod = interestRatePerPeriod;
}
public BigDecimal getAnnualInterestRate() {
return annualInterestRate;
}
public void setAnnualInterestRate(BigDecimal annualInterestRate) {
this.annualInterestRate = annualInterestRate;
}
public DateTime getCreatedOn() {
return createdOn;
}
public void setCreatedOn(DateTime createdOn) {
this.createdOn = createdOn;
}
public DateTime getLastModifedOn() {
return lastModifedOn;
}
public void setLastModifedOn(DateTime lastModifedOn) {
this.lastModifedOn = lastModifedOn;
}
public EnumOptionData getRepaymentFrequencyType() {
return repaymentFrequencyType;
}
public void setRepaymentFrequencyType(EnumOptionData repaymentFrequencyType) {
this.repaymentFrequencyType = repaymentFrequencyType;
}
public EnumOptionData getInterestRateFrequencyType() {
return interestRateFrequencyType;
}
public void setInterestRateFrequencyType(
EnumOptionData interestRateFrequencyType) {
this.interestRateFrequencyType = interestRateFrequencyType;
}
public EnumOptionData getAmortizationType() {
return amortizationType;
}
public void setAmortizationType(EnumOptionData amortizationType) {
this.amortizationType = amortizationType;
}
public EnumOptionData getInterestType() {
return interestType;
}
public void setInterestType(EnumOptionData interestType) {
this.interestType = interestType;
}
public EnumOptionData getInterestCalculationPeriodType() {
return interestCalculationPeriodType;
}
public void setInterestCalculationPeriodType(
EnumOptionData interestCalculationPeriodType) {
this.interestCalculationPeriodType = interestCalculationPeriodType;
}
public List<EnumOptionData> getRepaymentFrequencyTypeOptions() {
return repaymentFrequencyTypeOptions;
}
public void setRepaymentFrequencyTypeOptions(
List<EnumOptionData> repaymentFrequencyTypeOptions) {
this.repaymentFrequencyTypeOptions = repaymentFrequencyTypeOptions;
}
public List<EnumOptionData> getInterestRateFrequencyTypeOptions() {
return interestRateFrequencyTypeOptions;
}
public void setInterestRateFrequencyTypeOptions(
List<EnumOptionData> interestRateFrequencyTypeOptions) {
this.interestRateFrequencyTypeOptions = interestRateFrequencyTypeOptions;
}
public List<CurrencyData> getCurrencyOptions() {
return currencyOptions;
}
public void setCurrencyOptions(List<CurrencyData> currencyOptions) {
this.currencyOptions = currencyOptions;
}
public List<EnumOptionData> getAmortizationTypeOptions() {
return amortizationTypeOptions;
}
public void setAmortizationTypeOptions(
List<EnumOptionData> amortizationTypeOptions) {
this.amortizationTypeOptions = amortizationTypeOptions;
}
public List<EnumOptionData> getInterestTypeOptions() {
return interestTypeOptions;
}
public void setInterestTypeOptions(List<EnumOptionData> interestTypeOptions) {
this.interestTypeOptions = interestTypeOptions;
}
public List<EnumOptionData> getInterestCalculationPeriodTypeOptions() {
return interestCalculationPeriodTypeOptions;
}
public void setInterestCalculationPeriodTypeOptions(
List<EnumOptionData> interestCalculationPeriodTypeOptions) {
this.interestCalculationPeriodTypeOptions = interestCalculationPeriodTypeOptions;
}
}
@@ -0,0 +1,205 @@
package org.mifosng.platform.api.data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.map.annotate.JsonFilter;
import org.joda.time.LocalDate;
import org.mifosng.data.LoanSchedule;
@XmlRootElement(name = "newloanworkflow")
@JsonIgnoreProperties({ "organisationId", "organisationName" })
@JsonFilter("myFilter")
public class NewLoanWorkflowStepOneData implements Serializable {
private Long organisationId;
private String organisationName;
private Long clientId;
private String clientName;
private Long productId;
private String productName;
private List<LoanProductData> allowedProducts = new ArrayList<LoanProductData>();
// extra
private String dateFormat;
private String submittedOnDateFormatted;
private LocalDate submittedOnDate;
private String submittedOnNote = "";
private String expectedDisbursementDateFormatted;
private LocalDate expectedDisbursementDate = new LocalDate();
private String repaymentsStartingFromDateFormatted;
private LocalDate repaymentsStartingFromDate;
private String interestCalculatedFromDateFormatted;
private LocalDate interestCalculatedFromDate;
private LoanSchedule repaymentSchedule;
private LoanProductData selectedProduct;
public NewLoanWorkflowStepOneData() {
//
}
public Long getOrganisationId() {
return organisationId;
}
public void setOrganisationId(Long organisationId) {
this.organisationId = organisationId;
}
public String getOrganisationName() {
return organisationName;
}
public void setOrganisationName(String organisationName) {
this.organisationName = organisationName;
}
public Long getClientId() {
return clientId;
}
public void setClientId(Long clientId) {
this.clientId = clientId;
}
public String getClientName() {
return clientName;
}
public void setClientName(String clientName) {
this.clientName = clientName;
}
public Long getProductId() {
return productId;
}
public void setProductId(Long productId) {
this.productId = productId;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public List<LoanProductData> getAllowedProducts() {
return allowedProducts;
}
public void setAllowedProducts(List<LoanProductData> allowedProducts) {
this.allowedProducts = allowedProducts;
}
public LocalDate getSubmittedOnDate() {
return submittedOnDate;
}
public void setSubmittedOnDate(LocalDate submittedOnDate) {
this.submittedOnDate = submittedOnDate;
}
public String getSubmittedOnNote() {
return submittedOnNote;
}
public void setSubmittedOnNote(String submittedOnNote) {
this.submittedOnNote = submittedOnNote;
}
public LoanProductData getSelectedProduct() {
return selectedProduct;
}
public void setSelectedProduct(LoanProductData selectedProduct) {
this.selectedProduct = selectedProduct;
}
public LocalDate getExpectedDisbursementDate() {
return expectedDisbursementDate;
}
public void setExpectedDisbursementDate(LocalDate expectedDisbursementDate) {
this.expectedDisbursementDate = expectedDisbursementDate;
}
public LocalDate getRepaymentsStartingFromDate() {
return repaymentsStartingFromDate;
}
public void setRepaymentsStartingFromDate(LocalDate repaymentsStartingFromDate) {
this.repaymentsStartingFromDate = repaymentsStartingFromDate;
}
public LocalDate getInterestCalculatedFromDate() {
return interestCalculatedFromDate;
}
public void setInterestCalculatedFromDate(LocalDate interestCalculatedFromDate) {
this.interestCalculatedFromDate = interestCalculatedFromDate;
}
public LoanSchedule getRepaymentSchedule() {
return repaymentSchedule;
}
public void setRepaymentSchedule(LoanSchedule repaymentSchedule) {
this.repaymentSchedule = repaymentSchedule;
}
public String getDateFormat() {
return dateFormat;
}
public void setDateFormat(String dateFormat) {
this.dateFormat = dateFormat;
}
public String getSubmittedOnDateFormatted() {
return submittedOnDateFormatted;
}
public void setSubmittedOnDateFormatted(String submittedOnDateFormatted) {
this.submittedOnDateFormatted = submittedOnDateFormatted;
}
public String getExpectedDisbursementDateFormatted() {
return expectedDisbursementDateFormatted;
}
public void setExpectedDisbursementDateFormatted(
String expectedDisbursementDateFormatted) {
this.expectedDisbursementDateFormatted = expectedDisbursementDateFormatted;
}
public String getRepaymentsStartingFromDateFormatted() {
return repaymentsStartingFromDateFormatted;
}
public void setRepaymentsStartingFromDateFormatted(
String repaymentsStartingFromDateFormatted) {
this.repaymentsStartingFromDateFormatted = repaymentsStartingFromDateFormatted;
}
public String getInterestCalculatedFromDateFormatted() {
return interestCalculatedFromDateFormatted;
}
public void setInterestCalculatedFromDateFormatted(
String interestCalculatedFromDateFormatted) {
this.interestCalculatedFromDateFormatted = interestCalculatedFromDateFormatted;
}
}
@@ -0,0 +1,102 @@
package org.mifosng.platform.api.data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import org.codehaus.jackson.map.annotate.JsonFilter;
import org.joda.time.LocalDate;
@JsonFilter("myFilter")
public class OfficeData implements Serializable {
private Long id;
private String name;
private String externalId;
private LocalDate openingDate;
private String hierarchy;
private String parentName;
private Long parentId;
private List<OfficeLookup> allowedParents = new ArrayList<OfficeLookup>();
public OfficeData() {
//
}
public OfficeData(final Long id, final String name,
final String externalId, final LocalDate openingDate,
String hierarchy, final Long parentId, final String parentName) {
this.id = id;
this.name = name;
this.externalId = externalId;
this.openingDate = openingDate;
this.hierarchy = hierarchy;
this.parentName = parentName;
this.parentId = parentId;
}
public Long getId() {
return this.id;
}
public String getName() {
return this.name;
}
public String getExternalId() {
return this.externalId;
}
public LocalDate getOpeningDate() {
return this.openingDate;
}
public Long getParentId() {
return this.parentId;
}
public String getParentName() {
return this.parentName;
}
public void setId(final Long id) {
this.id = id;
}
public void setName(final String name) {
this.name = name;
}
public void setExternalId(final String externalId) {
this.externalId = externalId;
}
public void setOpeningDate(final LocalDate openingDate) {
this.openingDate = openingDate;
}
public void setParentName(final String parentName) {
this.parentName = parentName;
}
public void setParentId(final Long parentId) {
this.parentId = parentId;
}
public String getHierarchy() {
return hierarchy;
}
public void setHierarchy(String hierarchy) {
this.hierarchy = hierarchy;
}
public List<OfficeLookup> getAllowedParents() {
return allowedParents;
}
public void setAllowedParents(List<OfficeLookup> allowedParents) {
this.allowedParents = allowedParents;
}
}
@@ -0,0 +1,30 @@
package org.mifosng.platform.api.data;
import java.io.Serializable;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "officeLookup")
public class OfficeLookup implements Serializable {
private Long id;
private String name;
public OfficeLookup() {
//
}
public OfficeLookup(final Long id, final String name) {
this.id = id;
this.name = name;
}
public Long getId() {
return this.id;
}
public String getName() {
return this.name;
}
}
@@ -0,0 +1,91 @@
package org.mifosng.platform.api.data;
import java.io.Serializable;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.map.annotate.JsonFilter;
@JsonIgnoreProperties({ "orgId", "groupType" })
@JsonFilter("permissionFilter")
public class PermissionData implements Serializable {
private Long id;
private Long orgId;
private String name;
private String description;
private String code;
private int groupType;
public PermissionData() {
//
}
public PermissionData(final Long id, final Long orgId, final String name,
final String description, final String code, int groupType) {
this.id = id;
this.orgId = orgId;
this.name = name;
this.description = description;
this.code = code;
this.groupType = groupType;
}
@Override
public boolean equals(Object obj) {
PermissionData data = (PermissionData) obj;
return this.code.equalsIgnoreCase(data.code);
}
@Override
public int hashCode() {
return this.code.hashCode();
}
public Long getId() {
return this.id;
}
public Long getOrgId() {
return this.orgId;
}
public String getName() {
return this.name;
}
public String getDescription() {
return this.description;
}
public String getCode() {
return this.code;
}
public void setId(final Long id) {
this.id = id;
}
public void setOrgId(final Long orgId) {
this.orgId = orgId;
}
public void setName(final String name) {
this.name = name;
}
public void setDescription(final String description) {
this.description = description;
}
public void setCode(final String code) {
this.code = code;
}
public int getGroupType() {
return groupType;
}
public void setGroupType(int groupType) {
this.groupType = groupType;
}
}
@@ -0,0 +1,93 @@
package org.mifosng.platform.api.data;
import java.util.ArrayList;
import java.util.Collection;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.map.annotate.JsonFilter;
@JsonIgnoreProperties({ "orgId" })
@JsonFilter("roleFilter")
public class RoleData {
private Long id;
private Long orgId;
private String name;
private String description;
private Collection<PermissionData> availablePermissions = new ArrayList<PermissionData>();
private Collection<PermissionData> selectedPermissions = new ArrayList<PermissionData>();
public RoleData() {
//
}
public RoleData(final Long id, final Long orgId, final String name,
final String description) {
this.id = id;
this.orgId = orgId;
this.name = name;
this.description = description;
}
@Override
public boolean equals(Object obj) {
RoleData role = (RoleData) obj;
return this.id.equals(role.getId());
}
@Override
public int hashCode() {
return this.id.hashCode();
}
public Long getId() {
return this.id;
}
public Long getOrgId() {
return this.orgId;
}
public String getName() {
return this.name;
}
public String getDescription() {
return this.description;
}
public void setId(final Long id) {
this.id = id;
}
public void setOrgId(final Long orgId) {
this.orgId = orgId;
}
public void setName(final String name) {
this.name = name;
}
public void setDescription(final String description) {
this.description = description;
}
public Collection<PermissionData> getAvailablePermissions() {
return availablePermissions;
}
public void setAvailablePermissions(
Collection<PermissionData> availablePermissions) {
this.availablePermissions = availablePermissions;
}
public Collection<PermissionData> getSelectedPermissions() {
return selectedPermissions;
}
public void setSelectedPermissions(
Collection<PermissionData> selectedPermissions) {
this.selectedPermissions = selectedPermissions;
}
}
@@ -2,9 +2,9 @@ package org.mifosng.platform.client.service;
import java.util.Collection;
import org.mifosng.data.ClientData;
import org.mifosng.data.ClientLoanAccountSummaryCollectionData;
import org.mifosng.data.NoteData;
import org.mifosng.platform.api.data.ClientData;
public interface ClientReadPlatformService {
@@ -11,13 +11,13 @@ import javax.sql.DataSource;
import org.apache.commons.lang.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
import org.mifosng.data.AppUserData;
import org.mifosng.data.ClientData;
import org.mifosng.data.ClientLoanAccountSummaryCollectionData;
import org.mifosng.data.ClientLoanAccountSummaryData;
import org.mifosng.data.NoteData;
import org.mifosng.data.OfficeData;
import org.mifosng.data.OfficeLookup;
import org.mifosng.platform.api.data.AppUserData;
import org.mifosng.platform.api.data.ClientData;
import org.mifosng.platform.api.data.OfficeData;
import org.mifosng.platform.api.data.OfficeLookup;
import org.mifosng.platform.exceptions.ClientNotFoundException;
import org.mifosng.platform.exceptions.NoteNotFoundException;
import org.mifosng.platform.infrastructure.JdbcSupport;
@@ -1,19 +1,25 @@
package org.mifosng.platform.loan.domain;
public enum AmortizationMethod {
EQUAL_PRINCIPAL(0), EQUAL_INSTALLMENTS(1), INVALID(2);
EQUAL_PRINCIPAL(0, "amortizationType.equal.principal"), EQUAL_INSTALLMENTS(1, "amortizationType.equal.installments"), INVALID(2, "amortizationType.invalid");
private final Integer value;
private final String code;
private AmortizationMethod(final Integer value) {
private AmortizationMethod(final Integer value, final String code) {
this.value = value;
this.code = code;
}
public Integer getValue() {
return this.value;
}
public String getCode() {
return code;
}
public static AmortizationMethod fromInt(final Integer selectedMethod) {
public static AmortizationMethod fromInt(final Integer selectedMethod) {
if (selectedMethod == null) {
return null;
@@ -483,7 +483,7 @@ public class DerivedLoanDataProcessor {
}
private Money moneyFrom(MoneyData money) {
MonetaryCurrency monetaryCurrency = new MonetaryCurrency(money.getCurrencyCode(), money.getCurrencyDigitsAfterDecimal());
MonetaryCurrency monetaryCurrency = new MonetaryCurrency(money.getCurrencyCode(), money.getDigitsAfterDecimal());
return Money.of(monetaryCurrency, money.getAmount());
}
@@ -1,19 +1,25 @@
package org.mifosng.platform.loan.domain;
public enum InterestCalculationPeriodMethod {
DAILY(0), SAME_AS_REPAYMENT_PERIOD(1), INVALID(2);
DAILY(0, "interestCalculationPeriodType.daily"), SAME_AS_REPAYMENT_PERIOD(1, "interestCalculationPeriodType.same.as.repayment.period"), INVALID(2, "interestCalculationPeriodType.invalid");
private final Integer value;
private final String code;
private InterestCalculationPeriodMethod(final Integer value) {
private InterestCalculationPeriodMethod(final Integer value, final String code) {
this.value = value;
this.code = code;
}
public Integer getValue() {
return this.value;
}
public String getCode() {
return code;
}
public static InterestCalculationPeriodMethod fromInt(final Integer selectedMethod) {
public static InterestCalculationPeriodMethod fromInt(final Integer selectedMethod) {
InterestCalculationPeriodMethod repaymentMethod = null;
switch (selectedMethod) {
@@ -1,19 +1,25 @@
package org.mifosng.platform.loan.domain;
public enum InterestMethod {
DECLINING_BALANCE(0), FLAT(1), INVALID(2);
DECLINING_BALANCE(0, "interestType.declining.balance"), FLAT(1, "interestType.flat"), INVALID(2, "interestType.invalid");
private final Integer value;
private final String code;
private InterestMethod(final Integer value) {
private InterestMethod(final Integer value, final String code) {
this.value = value;
this.code = code;
}
public Integer getValue() {
return this.value;
}
public String getCode() {
return code;
}
public static InterestMethod fromInt(final Integer selectedMethod) {
public static InterestMethod fromInt(final Integer selectedMethod) {
InterestMethod repaymentMethod = null;
switch (selectedMethod) {
@@ -1,17 +1,23 @@
package org.mifosng.platform.loan.domain;
public enum PeriodFrequencyType {
DAYS(0), WEEKS(1), MONTHS(2), YEARS(3), INVALID(4);
DAYS(0, "periodFrequencyType.days"), WEEKS(1, "periodFrequencyType.weeks"), MONTHS(2, "periodFrequencyType.months"), YEARS(3, "periodFrequencyType.years"), INVALID(4, "periodFrequencyType.invalid");
private final Integer value;
private final String code;
private PeriodFrequencyType(final Integer value) {
private PeriodFrequencyType(final Integer value, final String code) {
this.value = value;
this.code = code;
}
public Integer getValue() {
return this.value;
}
public String getCode() {
return code;
}
public static PeriodFrequencyType fromInt(final Integer frequency) {
@@ -2,7 +2,7 @@ package org.mifosng.platform.loan.service;
import org.mifosng.data.LoanAccountData;
import org.mifosng.data.LoanRepaymentData;
import org.mifosng.data.NewLoanWorkflowStepOneData;
import org.mifosng.platform.api.data.NewLoanWorkflowStepOneData;
public interface LoanReadPlatformService {
@@ -7,14 +7,14 @@ import java.util.ArrayList;
import java.util.Collection;
import org.joda.time.LocalDate;
import org.mifosng.data.ClientData;
import org.mifosng.data.CurrencyData;
import org.mifosng.data.DerivedLoanData;
import org.mifosng.data.LoanAccountData;
import org.mifosng.data.LoanProductData;
import org.mifosng.data.LoanRepaymentData;
import org.mifosng.data.MoneyData;
import org.mifosng.data.NewLoanWorkflowStepOneData;
import org.mifosng.platform.api.data.ClientData;
import org.mifosng.platform.api.data.LoanProductData;
import org.mifosng.platform.api.data.NewLoanWorkflowStepOneData;
import org.mifosng.platform.client.service.ClientReadPlatformService;
import org.mifosng.platform.currency.domain.ApplicationCurrency;
import org.mifosng.platform.currency.domain.ApplicationCurrencyRepository;
@@ -297,7 +297,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
final MonetaryCurrency monetaryCurrency = new MonetaryCurrency(
scheduledLoanInstallment.getPrincipalDue().getCurrencyCode(),
scheduledLoanInstallment.getPrincipalDue().getCurrencyDigitsAfterDecimal());
scheduledLoanInstallment.getPrincipalDue().getDigitsAfterDecimal());
Money principal = Money.of(monetaryCurrency,
scheduledLoanInstallment.getPrincipalDue().getAmount());
@@ -6,13 +6,13 @@ import org.mifosng.data.EnumOptionData;
public interface LoanDropdownReadPlatformService {
List<EnumOptionData> retrieveLoanAmortizationMethodOptions();
List<EnumOptionData> retrieveLoanAmortizationTypeOptions();
List<EnumOptionData> retrieveLoanInterestMethodOptions();
List<EnumOptionData> retrieveLoanInterestTypeOptions();
List<EnumOptionData> retrieveLoanInterestRateCalculatedInPeriodOptions();
List<EnumOptionData> retrieveRepaymentFrequencyOptions();
List<EnumOptionData> retrieveRepaymentFrequencyTypeOptions();
List<EnumOptionData> retrieveInterestFrequencyOptions();
List<EnumOptionData> retrieveInterestRateFrequencyTypeOptions();
}
@@ -1,59 +1,40 @@
package org.mifosng.platform.loanproduct.service;
import static org.mifosng.platform.loanproduct.service.LoanEnumerations.amortizationType;
import static org.mifosng.platform.loanproduct.service.LoanEnumerations.interestCalculationPeriodType;
import static org.mifosng.platform.loanproduct.service.LoanEnumerations.interestRateFrequencyType;
import static org.mifosng.platform.loanproduct.service.LoanEnumerations.interestType;
import static org.mifosng.platform.loanproduct.service.LoanEnumerations.repaymentFrequencyType;
import java.util.Arrays;
import java.util.List;
import javax.sql.DataSource;
import org.mifosng.data.EnumOptionData;
import org.mifosng.platform.loan.domain.AmortizationMethod;
import org.mifosng.platform.loan.domain.InterestCalculationPeriodMethod;
import org.mifosng.platform.loan.domain.InterestMethod;
import org.mifosng.platform.loan.domain.PeriodFrequencyType;
import org.mifosng.platform.security.PlatformSecurityContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
import org.springframework.stereotype.Service;
/*
* FIXME - remove hardcoded return of loan dropdown options
*/
@SuppressWarnings("unused")
@Service
public class LoanDropdownReadPlatformServiceImpl implements LoanDropdownReadPlatformService {
private final PlatformSecurityContext context;
private final SimpleJdbcTemplate jdbcTemplate;
@Autowired
public LoanDropdownReadPlatformServiceImpl(final PlatformSecurityContext context, final DataSource dataSource) {
this.context = context;
this.jdbcTemplate = new SimpleJdbcTemplate(dataSource);
}
public class LoanDropdownReadPlatformServiceImpl implements
LoanDropdownReadPlatformService {
@Override
public List<EnumOptionData> retrieveLoanAmortizationMethodOptions() {
EnumOptionData equalInstallments = new EnumOptionData(
"Equal installments", AmortizationMethod.EQUAL_INSTALLMENTS
.getValue().longValue());
EnumOptionData equalPrinciplePayments = new EnumOptionData(
"Equal principle payments", AmortizationMethod.EQUAL_PRINCIPAL
.getValue().longValue());
public List<EnumOptionData> retrieveLoanAmortizationTypeOptions() {
List<EnumOptionData> allowedAmortizationMethods = Arrays.asList(
equalInstallments, equalPrinciplePayments);
amortizationType(AmortizationMethod.EQUAL_INSTALLMENTS),
amortizationType(AmortizationMethod.EQUAL_PRINCIPAL));
return allowedAmortizationMethods;
}
@Override
public List<EnumOptionData> retrieveLoanInterestMethodOptions() {
EnumOptionData interestRateCalculationMethod2 = new EnumOptionData(
"Declining Balance", Long.valueOf(0));
EnumOptionData interestRateCalculationMethod1 = new EnumOptionData(
"Flat", Long.valueOf(1));
public List<EnumOptionData> retrieveLoanInterestTypeOptions() {
List<EnumOptionData> allowedRepaymentScheduleCalculationMethods = Arrays
.asList(interestRateCalculationMethod2,
interestRateCalculationMethod1);
.asList(interestType(InterestMethod.FLAT),
interestType(InterestMethod.DECLINING_BALANCE));
return allowedRepaymentScheduleCalculationMethods;
}
@@ -61,39 +42,29 @@ public class LoanDropdownReadPlatformServiceImpl implements LoanDropdownReadPlat
@Override
public List<EnumOptionData> retrieveLoanInterestRateCalculatedInPeriodOptions() {
EnumOptionData option1 = new EnumOptionData("Daily",
Long.valueOf(0));
EnumOptionData option2 = new EnumOptionData(
"Same as repayment period", Long.valueOf(1));
List<EnumOptionData> allowedOptions = Arrays.asList(option1,
option2);
List<EnumOptionData> allowedOptions = Arrays
.asList(interestCalculationPeriodType(InterestCalculationPeriodMethod.DAILY),
interestCalculationPeriodType(InterestCalculationPeriodMethod.SAME_AS_REPAYMENT_PERIOD));
return allowedOptions;
}
@Override
public List<EnumOptionData> retrieveRepaymentFrequencyOptions() {
EnumOptionData frequency1 = new EnumOptionData("Days",
Long.valueOf(0));
EnumOptionData frequency2 = new EnumOptionData("Weeks",
Long.valueOf(1));
EnumOptionData frequency3 = new EnumOptionData("Months",
Long.valueOf(2));
public List<EnumOptionData> retrieveRepaymentFrequencyTypeOptions() {
List<EnumOptionData> repaymentFrequencyOptions = Arrays.asList(
frequency1, frequency2, frequency3);
repaymentFrequencyType(PeriodFrequencyType.DAYS),
repaymentFrequencyType(PeriodFrequencyType.WEEKS),
repaymentFrequencyType(PeriodFrequencyType.MONTHS));
return repaymentFrequencyOptions;
}
@Override
public List<EnumOptionData> retrieveInterestFrequencyOptions() {
public List<EnumOptionData> retrieveInterestRateFrequencyTypeOptions() {
// support for monthly and annual percentage rate (MPR) and (APR)
EnumOptionData perMonth = new EnumOptionData("Per month",
PeriodFrequencyType.MONTHS.getValue().longValue());
EnumOptionData perYear = new EnumOptionData("Per year",
PeriodFrequencyType.YEARS.getValue().longValue());
List<EnumOptionData> repaymentFrequencyOptions = Arrays.asList(
perMonth, perYear);
return repaymentFrequencyOptions;
List<EnumOptionData> interestRateFrequencyTypeOptions = Arrays.asList(
interestRateFrequencyType(PeriodFrequencyType.MONTHS),
interestRateFrequencyType(PeriodFrequencyType.YEARS));
return interestRateFrequencyTypeOptions;
}
}
@@ -0,0 +1,115 @@
package org.mifosng.platform.loanproduct.service;
import org.mifosng.data.EnumOptionData;
import org.mifosng.platform.loan.domain.AmortizationMethod;
import org.mifosng.platform.loan.domain.InterestCalculationPeriodMethod;
import org.mifosng.platform.loan.domain.InterestMethod;
import org.mifosng.platform.loan.domain.PeriodFrequencyType;
public class LoanEnumerations {
public static EnumOptionData repaymentFrequencyType(final int id) {
return repaymentFrequencyType(PeriodFrequencyType.fromInt(id));
}
public static EnumOptionData repaymentFrequencyType(final PeriodFrequencyType type) {
final String codePrefix = "repaymentFrequency.";
EnumOptionData optionData = null;
switch (type) {
case DAYS:
optionData = new EnumOptionData(PeriodFrequencyType.DAYS.getValue().longValue(), codePrefix + PeriodFrequencyType.DAYS.getCode(), "Days");
break;
case WEEKS:
optionData = new EnumOptionData(PeriodFrequencyType.WEEKS.getValue().longValue(), codePrefix + PeriodFrequencyType.WEEKS.getCode(), "Weeks");
break;
case MONTHS:
optionData = new EnumOptionData(PeriodFrequencyType.MONTHS.getValue().longValue(), codePrefix + PeriodFrequencyType.MONTHS.getCode(), "Months");
break;
default:
optionData = new EnumOptionData(PeriodFrequencyType.INVALID.getValue().longValue(), PeriodFrequencyType.INVALID.getCode(), "Invalid");
break;
}
return optionData;
}
public static EnumOptionData interestRateFrequencyType(final int id) {
return interestRateFrequencyType(PeriodFrequencyType.fromInt(id));
}
public static EnumOptionData interestRateFrequencyType(final PeriodFrequencyType type) {
final String codePrefix = "interestRateFrequency.";
EnumOptionData optionData = null;
switch (type) {
case MONTHS:
optionData = new EnumOptionData(PeriodFrequencyType.MONTHS.getValue().longValue(), codePrefix + PeriodFrequencyType.MONTHS.getCode(), "Per month");
break;
case YEARS:
optionData = new EnumOptionData(PeriodFrequencyType.YEARS.getValue().longValue(), codePrefix + PeriodFrequencyType.YEARS.getCode(), "Per year");
break;
default:
optionData = new EnumOptionData(PeriodFrequencyType.INVALID.getValue().longValue(), PeriodFrequencyType.INVALID.getCode(), "Invalid");
break;
}
return optionData;
}
public static EnumOptionData amortizationType(Integer id) {
return amortizationType(AmortizationMethod.fromInt(id));
}
public static EnumOptionData amortizationType(AmortizationMethod amortizationMethod) {
EnumOptionData optionData = null;
switch (amortizationMethod) {
case EQUAL_INSTALLMENTS:
optionData = new EnumOptionData(AmortizationMethod.EQUAL_INSTALLMENTS.getValue().longValue(), AmortizationMethod.EQUAL_INSTALLMENTS.getCode(), "Equal installments");
break;
case EQUAL_PRINCIPAL:
optionData = new EnumOptionData(AmortizationMethod.EQUAL_PRINCIPAL.getValue().longValue(), AmortizationMethod.EQUAL_PRINCIPAL.getCode(), "Equal principle payments");
break;
default:
optionData = new EnumOptionData(AmortizationMethod.INVALID.getValue().longValue(), AmortizationMethod.INVALID.getCode(), "Invalid");
break;
}
return optionData;
}
public static EnumOptionData interestType(Integer id) {
return interestType(InterestMethod.fromInt(id));
}
public static EnumOptionData interestType(InterestMethod type) {
EnumOptionData optionData = null;
switch (type) {
case FLAT:
optionData = new EnumOptionData(InterestMethod.FLAT.getValue().longValue(), InterestMethod.FLAT.getCode(), "Flat");
break;
case DECLINING_BALANCE:
optionData = new EnumOptionData(InterestMethod.DECLINING_BALANCE.getValue().longValue(), InterestMethod.DECLINING_BALANCE.getCode(), "Declining Balance");
break;
default:
optionData = new EnumOptionData(AmortizationMethod.INVALID.getValue().longValue(), AmortizationMethod.INVALID.getCode(), "Invalid");
break;
}
return optionData;
}
public static EnumOptionData interestCalculationPeriodType(Integer id) {
return interestCalculationPeriodType(InterestCalculationPeriodMethod.fromInt(id));
}
public static EnumOptionData interestCalculationPeriodType(InterestCalculationPeriodMethod type) {
EnumOptionData optionData = null;
switch (type) {
case DAILY:
optionData= new EnumOptionData(InterestCalculationPeriodMethod.DAILY.getValue().longValue(), InterestCalculationPeriodMethod.DAILY.getCode(), "Daily");
break;
case SAME_AS_REPAYMENT_PERIOD:
optionData = new EnumOptionData(InterestCalculationPeriodMethod.SAME_AS_REPAYMENT_PERIOD.getValue().longValue(), InterestCalculationPeriodMethod.SAME_AS_REPAYMENT_PERIOD.getCode(), "Same as repayment period");
break;
default:
optionData = new EnumOptionData(AmortizationMethod.INVALID.getValue().longValue(), AmortizationMethod.INVALID.getCode(), "Invalid");
break;
}
return optionData;
}
}
@@ -2,7 +2,7 @@ package org.mifosng.platform.loanproduct.service;
import java.util.Collection;
import org.mifosng.data.LoanProductData;
import org.mifosng.platform.api.data.LoanProductData;
public interface LoanProductReadPlatformService {
@@ -11,11 +11,15 @@ import javax.sql.DataSource;
import org.joda.time.DateTime;
import org.mifosng.data.CurrencyData;
import org.mifosng.data.EnumOptionData;
import org.mifosng.data.LoanProductData;
import org.mifosng.data.MoneyData;
import org.mifosng.platform.api.data.LoanProductData;
import org.mifosng.platform.currency.service.CurrencyReadPlatformService;
import org.mifosng.platform.exceptions.LoanProductNotFoundException;
import org.mifosng.platform.infrastructure.JdbcSupport;
import org.mifosng.platform.loan.domain.AmortizationMethod;
import org.mifosng.platform.loan.domain.InterestCalculationPeriodMethod;
import org.mifosng.platform.loan.domain.InterestMethod;
import org.mifosng.platform.loan.domain.PeriodFrequencyType;
import org.mifosng.platform.security.PlatformSecurityContext;
import org.mifosng.platform.user.domain.AppUser;
import org.springframework.beans.factory.annotation.Autowired;
@@ -80,24 +84,21 @@ public class LoanProductReadPlatformServiceImpl implements LoanProductReadPlatfo
LoanProductData productData = new LoanProductData();
productData.setAmortizationType(LoanEnumerations.amortizationType(AmortizationMethod.EQUAL_INSTALLMENTS));
productData.setInterestType(LoanEnumerations.interestType(InterestMethod.DECLINING_BALANCE));
productData.setRepaymentFrequencyType(LoanEnumerations.repaymentFrequencyType(PeriodFrequencyType.MONTHS));
productData.setInterestRateFrequencyType(LoanEnumerations.interestRateFrequencyType(PeriodFrequencyType.MONTHS));
productData.setInterestCalculationPeriodType(LoanEnumerations.interestCalculationPeriodType(InterestCalculationPeriodMethod.SAME_AS_REPAYMENT_PERIOD));
populateProductDataWithDropdownOptions(productData);
if (productData.getPossibleCurrencies().size() >= 1) {
CurrencyData currency = productData.getPossibleCurrencies().get(0);
if (productData.getCurrencyOptions().size() >= 1) {
CurrencyData currency = productData.getCurrencyOptions().get(0);
MoneyData zero = MoneyData.zero(currency);
productData.setPrincipalMoney(zero);
productData.setPrincipal(zero);
productData.setInArrearsTolerance(zero);
}
productData.setAmortizationMethod(Integer.valueOf(1));
productData.setInterestMethod(Integer.valueOf(0));
productData.setRepaymentPeriodFrequency(2);
productData.setInterestRatePeriod(2);
productData.setInterestRateCalculatedInPeriod(1);
productData.setRepaidEvery(1);
productData.setNumberOfRepayments(0);
return productData;
}
@@ -142,26 +143,32 @@ public class LoanProductReadPlatformServiceImpl implements LoanProductReadPlatfo
MoneyData principalMoney = MoneyData.of(currencyData, principal);
MoneyData toleranceMoney = MoneyData.of(currencyData, tolerance);
BigDecimal interestRatePerPeriod = rs.getBigDecimal("interestRatePerPeriod");
int interestRatePeriod = JdbcSupport.getInteger(rs, "interestRatePerPeriodFreq");
BigDecimal annualInterestRate = rs.getBigDecimal("annualInterestRate");
int interestMethod = JdbcSupport.getInteger(rs, "interestMethod");
int interestCalculationInPeriodMethod = JdbcSupport.getInteger(rs, "interestCalculationInPeriodMethod");
Integer repaidEvery = JdbcSupport.getInteger(rs, "repaidEvery");
int repaymentFrequency = JdbcSupport.getInteger(rs, "repaymentPeriodFrequency");
Integer numberOfRepayments = JdbcSupport.getInteger(rs, "numberOfRepayments");
int amortizationMethod = JdbcSupport.getInteger(rs, "amortizationMethod");
Integer repaymentEvery = JdbcSupport.getInteger(rs, "repaidEvery");
BigDecimal interestRatePerPeriod = rs.getBigDecimal("interestRatePerPeriod");
BigDecimal annualInterestRate = rs.getBigDecimal("annualInterestRate");
int repaymentFrequencyTypeId = JdbcSupport.getInteger(rs, "repaymentPeriodFrequency");
EnumOptionData repaymentFrequencyType = LoanEnumerations.repaymentFrequencyType(repaymentFrequencyTypeId);
int amortizationTypeId = JdbcSupport.getInteger(rs, "amortizationMethod");
EnumOptionData amortizationType = LoanEnumerations.amortizationType(amortizationTypeId);
int interestRateFrequencyTypeId = JdbcSupport.getInteger(rs, "interestRatePerPeriodFreq");
EnumOptionData interestRateFrequencyType = LoanEnumerations.interestRateFrequencyType(interestRateFrequencyTypeId);
int interestTypeId = JdbcSupport.getInteger(rs, "interestMethod");
EnumOptionData interestType = LoanEnumerations.interestType(interestTypeId);
int interestCalculationPeriodTypeId = JdbcSupport.getInteger(rs, "interestCalculationInPeriodMethod");
EnumOptionData interestCalculationPeriodType = LoanEnumerations.interestCalculationPeriodType(interestCalculationPeriodTypeId);
DateTime createdOn = JdbcSupport.getDateTime(rs, "createdon");
DateTime lastModifedOn = JdbcSupport.getDateTime(rs, "modifiedon");
return new LoanProductData(id, name, description, principalMoney,
interestRatePerPeriod, interestRatePeriod,
annualInterestRate, interestMethod, interestCalculationInPeriodMethod,
repaidEvery,
repaymentFrequency, numberOfRepayments, amortizationMethod,
toleranceMoney, createdOn, lastModifedOn);
return new LoanProductData(createdOn, lastModifedOn, id, name, description, principalMoney, toleranceMoney,
numberOfRepayments, repaymentEvery, interestRatePerPeriod, annualInterestRate,
repaymentFrequencyType, interestRateFrequencyType, amortizationType, interestType, interestCalculationPeriodType);
}
private CurrencyData findCurrencyByCode(String currencyCode, List<CurrencyData> allowedCurrencies) {
@@ -178,19 +185,19 @@ public class LoanProductReadPlatformServiceImpl implements LoanProductReadPlatfo
private void populateProductDataWithDropdownOptions(LoanProductData productData) {
List<CurrencyData> possibleCurrencies = currencyReadPlatformService.retrieveAllowedCurrencies();
List<CurrencyData> currencyOptions = currencyReadPlatformService.retrieveAllowedCurrencies();
List<EnumOptionData> amortizationTypeOptions = dropdownReadPlatformService.retrieveLoanAmortizationTypeOptions();
List<EnumOptionData> interestTypeOptions = dropdownReadPlatformService.retrieveLoanInterestTypeOptions();
List<EnumOptionData> interestCalculationPeriodTypeOptions = dropdownReadPlatformService.retrieveLoanInterestRateCalculatedInPeriodOptions();
List<EnumOptionData> repaymentFrequencyTypeOptions = dropdownReadPlatformService.retrieveRepaymentFrequencyTypeOptions();
List<EnumOptionData> interestRateFrequencyTypeOptions = dropdownReadPlatformService.retrieveInterestRateFrequencyTypeOptions();
List<EnumOptionData> possibleAmortizationOptions = dropdownReadPlatformService.retrieveLoanAmortizationMethodOptions();
List<EnumOptionData> possibleInterestOptions = dropdownReadPlatformService.retrieveLoanInterestMethodOptions();
List<EnumOptionData> possibleInterestRateCalculatedInPeriodOptions = dropdownReadPlatformService.retrieveLoanInterestRateCalculatedInPeriodOptions();
List<EnumOptionData> repaymentFrequencyOptions = dropdownReadPlatformService.retrieveRepaymentFrequencyOptions();
List<EnumOptionData> interestFrequencyOptions = dropdownReadPlatformService.retrieveInterestFrequencyOptions();
productData.setPossibleCurrencies(possibleCurrencies);
productData.setPossibleAmortizationOptions(possibleAmortizationOptions);
productData.setPossibleInterestOptions(possibleInterestOptions);
productData.setPossibleInterestRateCalculatedInPeriodOptions(possibleInterestRateCalculatedInPeriodOptions);
productData.setRepaymentFrequencyOptions(repaymentFrequencyOptions);
productData.setInterestFrequencyOptions(interestFrequencyOptions);
productData.setCurrencyOptions(currencyOptions);
productData.setAmortizationTypeOptions(amortizationTypeOptions);
productData.setInterestTypeOptions(interestTypeOptions);
productData.setInterestCalculationPeriodTypeOptions(interestCalculationPeriodTypeOptions);
productData.setRepaymentFrequencyTypeOptions(repaymentFrequencyTypeOptions);
productData.setInterestRateFrequencyTypeOptions(interestRateFrequencyTypeOptions);
}
}
@@ -3,8 +3,8 @@ package org.mifosng.platform.organisation.service;
import java.util.Collection;
import java.util.List;
import org.mifosng.data.OfficeData;
import org.mifosng.data.OfficeLookup;
import org.mifosng.platform.api.data.OfficeData;
import org.mifosng.platform.api.data.OfficeLookup;
public interface OfficeReadPlatformService {
@@ -9,8 +9,8 @@ import java.util.List;
import javax.sql.DataSource;
import org.joda.time.LocalDate;
import org.mifosng.data.OfficeData;
import org.mifosng.data.OfficeLookup;
import org.mifosng.platform.api.data.OfficeData;
import org.mifosng.platform.api.data.OfficeLookup;
import org.mifosng.platform.exceptions.OfficeNotFoundException;
import org.mifosng.platform.infrastructure.JdbcSupport;
import org.mifosng.platform.security.PlatformSecurityContext;
@@ -102,8 +102,7 @@ public class LoanOpenResource {
JSONObject object = new JSONObject();
object.put("amount", money.getAmount());
object.put("currencyCode", money.getCurrencyCode());
object.put("currencyDigitsAfterDecimal",
money.getCurrencyDigitsAfterDecimal());
object.put("currencyDigitsAfterDecimal", money.getDigitsAfterDecimal());
return object;
}
@@ -8,7 +8,7 @@ import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.mifosng.data.PermissionData;
import org.mifosng.platform.api.data.PermissionData;
import org.mifosng.platform.organisation.domain.Organisation;
import org.springframework.data.jpa.domain.AbstractPersistable;
@@ -15,8 +15,8 @@ import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.mifosng.data.PermissionData;
import org.mifosng.data.RoleData;
import org.mifosng.platform.api.data.PermissionData;
import org.mifosng.platform.api.data.RoleData;
import org.mifosng.platform.infrastructure.AbstractAuditableCustom;
import org.mifosng.platform.organisation.domain.Organisation;
@@ -2,7 +2,7 @@ package org.mifosng.platform.user.service;
import java.util.Collection;
import org.mifosng.data.AppUserData;
import org.mifosng.platform.api.data.AppUserData;
public interface AppUserReadPlatformService {
@@ -11,10 +11,10 @@ import java.util.Set;
import javax.sql.DataSource;
import org.mifosng.data.AppUserData;
import org.mifosng.data.OfficeData;
import org.mifosng.data.OfficeLookup;
import org.mifosng.data.RoleData;
import org.mifosng.platform.api.data.AppUserData;
import org.mifosng.platform.api.data.OfficeData;
import org.mifosng.platform.api.data.OfficeLookup;
import org.mifosng.platform.api.data.RoleData;
import org.mifosng.platform.exceptions.UserNotFoundException;
import org.mifosng.platform.infrastructure.JdbcSupport;
import org.mifosng.platform.organisation.service.OfficeReadPlatformService;
@@ -2,7 +2,7 @@ package org.mifosng.platform.user.service;
import java.util.Collection;
import org.mifosng.data.PermissionData;
import org.mifosng.platform.api.data.PermissionData;
public interface PermissionReadPlatformService {
@@ -6,7 +6,7 @@ import java.util.Collection;
import javax.sql.DataSource;
import org.mifosng.data.PermissionData;
import org.mifosng.platform.api.data.PermissionData;
import org.mifosng.platform.infrastructure.JdbcSupport;
import org.mifosng.platform.security.PlatformSecurityContext;
import org.mifosng.platform.user.domain.AppUser;
@@ -2,7 +2,7 @@ package org.mifosng.platform.user.service;
import java.util.Collection;
import org.mifosng.data.RoleData;
import org.mifosng.platform.api.data.RoleData;
public interface RoleReadPlatformService {
@@ -8,7 +8,7 @@ import java.util.Collection;
import javax.sql.DataSource;
import org.mifosng.data.RoleData;
import org.mifosng.platform.api.data.RoleData;
import org.mifosng.platform.exceptions.RoleNotFoundException;
import org.mifosng.platform.infrastructure.JdbcSupport;
import org.mifosng.platform.security.PlatformSecurityContext;