updates for payment details
This commit is contained in:
+13
-5
@@ -7,6 +7,7 @@ package org.mifosplatform.portfolio.loanaccount.api;
|
|||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
import javax.ws.rs.Consumes;
|
||||||
@@ -26,12 +27,15 @@ import org.mifosplatform.commands.service.CommandWrapperBuilder;
|
|||||||
import org.mifosplatform.commands.service.PortfolioCommandSourceWritePlatformService;
|
import org.mifosplatform.commands.service.PortfolioCommandSourceWritePlatformService;
|
||||||
import org.mifosplatform.infrastructure.core.api.ApiRequestParameterHelper;
|
import org.mifosplatform.infrastructure.core.api.ApiRequestParameterHelper;
|
||||||
import org.mifosplatform.infrastructure.core.data.CommandProcessingResult;
|
import org.mifosplatform.infrastructure.core.data.CommandProcessingResult;
|
||||||
|
import org.mifosplatform.infrastructure.core.data.EnumOptionData;
|
||||||
import org.mifosplatform.infrastructure.core.exception.UnrecognizedQueryParamException;
|
import org.mifosplatform.infrastructure.core.exception.UnrecognizedQueryParamException;
|
||||||
import org.mifosplatform.infrastructure.core.serialization.ApiRequestJsonSerializationSettings;
|
import org.mifosplatform.infrastructure.core.serialization.ApiRequestJsonSerializationSettings;
|
||||||
import org.mifosplatform.infrastructure.core.serialization.DefaultToApiJsonSerializer;
|
import org.mifosplatform.infrastructure.core.serialization.DefaultToApiJsonSerializer;
|
||||||
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
||||||
import org.mifosplatform.portfolio.loanaccount.data.LoanTransactionData;
|
import org.mifosplatform.portfolio.loanaccount.data.LoanTransactionData;
|
||||||
|
import org.mifosplatform.portfolio.loanaccount.domain.PaymentType;
|
||||||
import org.mifosplatform.portfolio.loanaccount.service.LoanReadPlatformService;
|
import org.mifosplatform.portfolio.loanaccount.service.LoanReadPlatformService;
|
||||||
|
import org.mifosplatform.portfolio.loanproduct.service.LoanEnumerations;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -104,9 +108,13 @@ public class LoanTransactionsApiResource {
|
|||||||
|
|
||||||
context.authenticatedUser().validateHasReadPermission(resourceNameForPermissions);
|
context.authenticatedUser().validateHasReadPermission(resourceNameForPermissions);
|
||||||
|
|
||||||
final LoanTransactionData transactionData = this.loanReadPlatformService.retrieveLoanTransaction(loanId, transactionId);
|
LoanTransactionData transactionData = this.loanReadPlatformService.retrieveLoanTransaction(loanId, transactionId);
|
||||||
|
|
||||||
final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
final ApiRequestJsonSerializationSettings settings = apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||||
|
if (settings.isTemplate()) {
|
||||||
|
final List<EnumOptionData> paymentTypeOptions = LoanEnumerations.paymentTypes(PaymentType.values());
|
||||||
|
transactionData = LoanTransactionData.templateOnTop(transactionData, paymentTypeOptions);
|
||||||
|
}
|
||||||
|
|
||||||
return this.toApiJsonSerializer.serialize(settings, transactionData, RESPONSE_DATA_PARAMETERS);
|
return this.toApiJsonSerializer.serialize(settings, transactionData, RESPONSE_DATA_PARAMETERS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,10 +158,10 @@ public class LoanTransactionsApiResource {
|
|||||||
|
|
||||||
CommandWrapperBuilder builder = new CommandWrapperBuilder().withJson(apiRequestBodyAsJson);
|
CommandWrapperBuilder builder = new CommandWrapperBuilder().withJson(apiRequestBodyAsJson);
|
||||||
final CommandWrapper commandRequest = builder.adjustTransaction(loanId, transactionId).build();
|
final CommandWrapper commandRequest = builder.adjustTransaction(loanId, transactionId).build();
|
||||||
|
|
||||||
final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
|
final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest);
|
||||||
|
|
||||||
return this.toApiJsonSerializer.serialize(result);
|
return this.toApiJsonSerializer.serialize(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+21
-8
@@ -6,8 +6,10 @@
|
|||||||
package org.mifosplatform.portfolio.loanaccount.data;
|
package org.mifosplatform.portfolio.loanaccount.data;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.joda.time.LocalDate;
|
import org.joda.time.LocalDate;
|
||||||
|
import org.mifosplatform.infrastructure.core.data.EnumOptionData;
|
||||||
import org.mifosplatform.organisation.monetary.data.CurrencyData;
|
import org.mifosplatform.organisation.monetary.data.CurrencyData;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -15,32 +17,42 @@ import org.mifosplatform.organisation.monetary.data.CurrencyData;
|
|||||||
*/
|
*/
|
||||||
public class LoanTransactionData {
|
public class LoanTransactionData {
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private final Long id;
|
private final Long id;
|
||||||
|
|
||||||
private final LoanTransactionEnumData type;
|
private final LoanTransactionEnumData type;
|
||||||
|
|
||||||
private final LocalDate date;
|
private final LocalDate date;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private final CurrencyData currency;
|
private final CurrencyData currency;
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private final PaymentDetailData paymentDetailData;
|
private final PaymentDetailData paymentDetailData;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private final BigDecimal amount;
|
private final BigDecimal amount;
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private final BigDecimal principalPortion;
|
private final BigDecimal principalPortion;
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private final BigDecimal interestPortion;
|
private final BigDecimal interestPortion;
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private final BigDecimal feeChargesPortion;
|
private final BigDecimal feeChargesPortion;
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private final BigDecimal penaltyChargesPortion;
|
private final BigDecimal penaltyChargesPortion;
|
||||||
|
|
||||||
|
// templates
|
||||||
|
final List<EnumOptionData> paymentTypeOptions;
|
||||||
|
|
||||||
|
public static LoanTransactionData templateOnTop(LoanTransactionData loanTransactionData, List<EnumOptionData> paymentTypeOptions) {
|
||||||
|
return new LoanTransactionData(loanTransactionData.id, loanTransactionData.type, loanTransactionData.paymentDetailData,
|
||||||
|
loanTransactionData.currency, loanTransactionData.date, loanTransactionData.amount, loanTransactionData.principalPortion,
|
||||||
|
loanTransactionData.interestPortion, loanTransactionData.feeChargesPortion, loanTransactionData.penaltyChargesPortion,
|
||||||
|
paymentTypeOptions);
|
||||||
|
}
|
||||||
|
|
||||||
public LoanTransactionData(final Long id, final LoanTransactionEnumData transactionType, final PaymentDetailData paymentDetailData,
|
public LoanTransactionData(final Long id, final LoanTransactionEnumData transactionType, final PaymentDetailData paymentDetailData,
|
||||||
final CurrencyData currency, final LocalDate date, final BigDecimal amount, final BigDecimal principalPortion,
|
final CurrencyData currency, final LocalDate date, final BigDecimal amount, final BigDecimal principalPortion,
|
||||||
final BigDecimal interestPortion, final BigDecimal feeChargesPortion, final BigDecimal penaltyChargesPortion) {
|
final BigDecimal interestPortion, final BigDecimal feeChargesPortion, final BigDecimal penaltyChargesPortion) {
|
||||||
|
this(id, transactionType, paymentDetailData, currency, date, amount, principalPortion, interestPortion, feeChargesPortion,
|
||||||
|
penaltyChargesPortion, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public LoanTransactionData(final Long id, final LoanTransactionEnumData transactionType, final PaymentDetailData paymentDetailData,
|
||||||
|
final CurrencyData currency, final LocalDate date, final BigDecimal amount, final BigDecimal principalPortion,
|
||||||
|
final BigDecimal interestPortion, final BigDecimal feeChargesPortion, final BigDecimal penaltyChargesPortion,
|
||||||
|
final List<EnumOptionData> paymentTypeOptions) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.type = transactionType;
|
this.type = transactionType;
|
||||||
this.paymentDetailData = paymentDetailData;
|
this.paymentDetailData = paymentDetailData;
|
||||||
@@ -51,6 +63,7 @@ public class LoanTransactionData {
|
|||||||
this.interestPortion = interestPortion;
|
this.interestPortion = interestPortion;
|
||||||
this.feeChargesPortion = feeChargesPortion;
|
this.feeChargesPortion = feeChargesPortion;
|
||||||
this.penaltyChargesPortion = penaltyChargesPortion;
|
this.penaltyChargesPortion = penaltyChargesPortion;
|
||||||
|
this.paymentTypeOptions = paymentTypeOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LocalDate dateOf() {
|
public LocalDate dateOf() {
|
||||||
|
|||||||
+8
-2
@@ -10,6 +10,7 @@ import java.sql.ResultSet;
|
|||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.joda.time.Days;
|
import org.joda.time.Days;
|
||||||
import org.joda.time.LocalDate;
|
import org.joda.time.LocalDate;
|
||||||
@@ -47,6 +48,7 @@ import org.mifosplatform.portfolio.loanaccount.exception.LoanTransactionNotFound
|
|||||||
import org.mifosplatform.portfolio.loanaccount.loanschedule.data.LoanScheduleData;
|
import org.mifosplatform.portfolio.loanaccount.loanschedule.data.LoanScheduleData;
|
||||||
import org.mifosplatform.portfolio.loanaccount.loanschedule.data.LoanSchedulePeriodData;
|
import org.mifosplatform.portfolio.loanaccount.loanschedule.data.LoanSchedulePeriodData;
|
||||||
import org.mifosplatform.portfolio.loanproduct.data.LoanProductData;
|
import org.mifosplatform.portfolio.loanproduct.data.LoanProductData;
|
||||||
|
import org.mifosplatform.portfolio.loanproduct.service.LoanDropdownReadPlatformService;
|
||||||
import org.mifosplatform.portfolio.loanproduct.service.LoanEnumerations;
|
import org.mifosplatform.portfolio.loanproduct.service.LoanEnumerations;
|
||||||
import org.mifosplatform.portfolio.loanproduct.service.LoanProductReadPlatformService;
|
import org.mifosplatform.portfolio.loanproduct.service.LoanProductReadPlatformService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -68,13 +70,15 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
|
|||||||
private final ClientReadPlatformService clientReadPlatformService;
|
private final ClientReadPlatformService clientReadPlatformService;
|
||||||
private final GroupReadPlatformService groupReadPlatformService;
|
private final GroupReadPlatformService groupReadPlatformService;
|
||||||
private final LoanTransactionRepository loanTransactionRepository;
|
private final LoanTransactionRepository loanTransactionRepository;
|
||||||
|
private final LoanDropdownReadPlatformService loanDropdownReadPlatformService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public LoanReadPlatformServiceImpl(final PlatformSecurityContext context, final LoanRepository loanRepository,
|
public LoanReadPlatformServiceImpl(final PlatformSecurityContext context, final LoanRepository loanRepository,
|
||||||
final LoanTransactionRepository loanTransactionRepository,
|
final LoanTransactionRepository loanTransactionRepository,
|
||||||
final ApplicationCurrencyRepositoryWrapper applicationCurrencyRepository,
|
final ApplicationCurrencyRepositoryWrapper applicationCurrencyRepository,
|
||||||
final LoanProductReadPlatformService loanProductReadPlatformService, final ClientReadPlatformService clientReadPlatformService,
|
final LoanProductReadPlatformService loanProductReadPlatformService, final ClientReadPlatformService clientReadPlatformService,
|
||||||
final GroupReadPlatformService groupReadPlatformService, final TenantAwareRoutingDataSource dataSource) {
|
final GroupReadPlatformService groupReadPlatformService, final LoanDropdownReadPlatformService loanDropdownReadPlatformService,
|
||||||
|
final TenantAwareRoutingDataSource dataSource) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.loanRepository = loanRepository;
|
this.loanRepository = loanRepository;
|
||||||
this.loanTransactionRepository = loanTransactionRepository;
|
this.loanTransactionRepository = loanTransactionRepository;
|
||||||
@@ -82,6 +86,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
|
|||||||
this.loanProductReadPlatformService = loanProductReadPlatformService;
|
this.loanProductReadPlatformService = loanProductReadPlatformService;
|
||||||
this.clientReadPlatformService = clientReadPlatformService;
|
this.clientReadPlatformService = clientReadPlatformService;
|
||||||
this.groupReadPlatformService = groupReadPlatformService;
|
this.groupReadPlatformService = groupReadPlatformService;
|
||||||
|
this.loanDropdownReadPlatformService = loanDropdownReadPlatformService;
|
||||||
this.jdbcTemplate = new JdbcTemplate(dataSource);
|
this.jdbcTemplate = new JdbcTemplate(dataSource);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -210,8 +215,9 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService {
|
|||||||
|
|
||||||
final Money possibleNextRepaymentAmount = loan.possibleNextRepaymentAmount();
|
final Money possibleNextRepaymentAmount = loan.possibleNextRepaymentAmount();
|
||||||
final LoanTransactionEnumData transactionType = LoanEnumerations.transactionType(LoanTransactionType.REPAYMENT);
|
final LoanTransactionEnumData transactionType = LoanEnumerations.transactionType(LoanTransactionType.REPAYMENT);
|
||||||
|
final List<EnumOptionData> paymentOptions = loanDropdownReadPlatformService.retrievePaymentTypeOptions();
|
||||||
return new LoanTransactionData(null, transactionType, null, currencyData, earliestUnpaidInstallmentDate,
|
return new LoanTransactionData(null, transactionType, null, currencyData, earliestUnpaidInstallmentDate,
|
||||||
possibleNextRepaymentAmount.getAmount(), null, null, null, null);
|
possibleNextRepaymentAmount.getAmount(), null, null, null, null, paymentOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+13
-11
@@ -13,19 +13,21 @@ import org.mifosplatform.portfolio.loanproduct.data.TransactionProcessingStrateg
|
|||||||
|
|
||||||
public interface LoanDropdownReadPlatformService {
|
public interface LoanDropdownReadPlatformService {
|
||||||
|
|
||||||
List<EnumOptionData> retrieveLoanAmortizationTypeOptions();
|
List<EnumOptionData> retrieveLoanAmortizationTypeOptions();
|
||||||
|
|
||||||
List<EnumOptionData> retrieveLoanInterestTypeOptions();
|
List<EnumOptionData> retrieveLoanInterestTypeOptions();
|
||||||
|
|
||||||
List<EnumOptionData> retrieveLoanInterestRateCalculatedInPeriodOptions();
|
|
||||||
|
|
||||||
List<EnumOptionData> retrieveLoanTermFrequencyTypeOptions();
|
List<EnumOptionData> retrieveLoanInterestRateCalculatedInPeriodOptions();
|
||||||
|
|
||||||
List<EnumOptionData> retrieveRepaymentFrequencyTypeOptions();
|
|
||||||
|
|
||||||
List<EnumOptionData> retrieveInterestRateFrequencyTypeOptions();
|
List<EnumOptionData> retrieveLoanTermFrequencyTypeOptions();
|
||||||
|
|
||||||
Collection<TransactionProcessingStrategyData> retreiveTransactionProcessingStrategies();
|
List<EnumOptionData> retrieveRepaymentFrequencyTypeOptions();
|
||||||
|
|
||||||
List<EnumOptionData> retrieveAccountingRuleTypeOptions();
|
List<EnumOptionData> retrieveInterestRateFrequencyTypeOptions();
|
||||||
|
|
||||||
|
Collection<TransactionProcessingStrategyData> retreiveTransactionProcessingStrategies();
|
||||||
|
|
||||||
|
List<EnumOptionData> retrieveAccountingRuleTypeOptions();
|
||||||
|
|
||||||
|
List<EnumOptionData> retrievePaymentTypeOptions();
|
||||||
}
|
}
|
||||||
+64
-66
@@ -20,6 +20,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import org.mifosplatform.infrastructure.core.data.EnumOptionData;
|
import org.mifosplatform.infrastructure.core.data.EnumOptionData;
|
||||||
import org.mifosplatform.portfolio.loanaccount.domain.LoanTransactionProcessingStrategyRepository;
|
import org.mifosplatform.portfolio.loanaccount.domain.LoanTransactionProcessingStrategyRepository;
|
||||||
|
import org.mifosplatform.portfolio.loanaccount.domain.PaymentType;
|
||||||
import org.mifosplatform.portfolio.loanproduct.data.TransactionProcessingStrategyData;
|
import org.mifosplatform.portfolio.loanproduct.data.TransactionProcessingStrategyData;
|
||||||
import org.mifosplatform.portfolio.loanproduct.domain.AccountingRuleType;
|
import org.mifosplatform.portfolio.loanproduct.domain.AccountingRuleType;
|
||||||
import org.mifosplatform.portfolio.loanproduct.domain.AmortizationMethod;
|
import org.mifosplatform.portfolio.loanproduct.domain.AmortizationMethod;
|
||||||
@@ -33,88 +34,85 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
public class LoanDropdownReadPlatformServiceImpl implements LoanDropdownReadPlatformService {
|
public class LoanDropdownReadPlatformServiceImpl implements LoanDropdownReadPlatformService {
|
||||||
|
|
||||||
private final LoanTransactionProcessingStrategyRepository loanTransactionProcessingStrategyRepository;
|
private final LoanTransactionProcessingStrategyRepository loanTransactionProcessingStrategyRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public LoanDropdownReadPlatformServiceImpl(final LoanTransactionProcessingStrategyRepository loanTransactionProcessingStrategyRepository) {
|
public LoanDropdownReadPlatformServiceImpl(final LoanTransactionProcessingStrategyRepository loanTransactionProcessingStrategyRepository) {
|
||||||
this.loanTransactionProcessingStrategyRepository = loanTransactionProcessingStrategyRepository;
|
this.loanTransactionProcessingStrategyRepository = loanTransactionProcessingStrategyRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<EnumOptionData> retrieveLoanAmortizationTypeOptions() {
|
|
||||||
|
|
||||||
List<EnumOptionData> allowedAmortizationMethods = Arrays.asList(
|
@Override
|
||||||
amortizationType(AmortizationMethod.EQUAL_INSTALLMENTS),
|
public List<EnumOptionData> retrieveLoanAmortizationTypeOptions() {
|
||||||
amortizationType(AmortizationMethod.EQUAL_PRINCIPAL));
|
|
||||||
|
|
||||||
return allowedAmortizationMethods;
|
List<EnumOptionData> allowedAmortizationMethods = Arrays.asList(amortizationType(AmortizationMethod.EQUAL_INSTALLMENTS),
|
||||||
}
|
amortizationType(AmortizationMethod.EQUAL_PRINCIPAL));
|
||||||
|
|
||||||
@Override
|
return allowedAmortizationMethods;
|
||||||
public List<EnumOptionData> retrieveLoanInterestTypeOptions() {
|
}
|
||||||
List<EnumOptionData> allowedRepaymentScheduleCalculationMethods = Arrays
|
|
||||||
.asList(interestType(InterestMethod.FLAT),
|
|
||||||
interestType(InterestMethod.DECLINING_BALANCE));
|
|
||||||
|
|
||||||
return allowedRepaymentScheduleCalculationMethods;
|
@Override
|
||||||
}
|
public List<EnumOptionData> retrieveLoanInterestTypeOptions() {
|
||||||
|
List<EnumOptionData> allowedRepaymentScheduleCalculationMethods = Arrays.asList(interestType(InterestMethod.FLAT),
|
||||||
|
interestType(InterestMethod.DECLINING_BALANCE));
|
||||||
|
|
||||||
@Override
|
return allowedRepaymentScheduleCalculationMethods;
|
||||||
public List<EnumOptionData> retrieveLoanInterestRateCalculatedInPeriodOptions() {
|
}
|
||||||
|
|
||||||
List<EnumOptionData> allowedOptions = Arrays
|
@Override
|
||||||
.asList(interestCalculationPeriodType(InterestCalculationPeriodMethod.DAILY),
|
public List<EnumOptionData> retrieveLoanInterestRateCalculatedInPeriodOptions() {
|
||||||
interestCalculationPeriodType(InterestCalculationPeriodMethod.SAME_AS_REPAYMENT_PERIOD));
|
|
||||||
|
|
||||||
return allowedOptions;
|
List<EnumOptionData> allowedOptions = Arrays.asList(interestCalculationPeriodType(InterestCalculationPeriodMethod.DAILY),
|
||||||
}
|
interestCalculationPeriodType(InterestCalculationPeriodMethod.SAME_AS_REPAYMENT_PERIOD));
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<EnumOptionData> retrieveLoanTermFrequencyTypeOptions() {
|
|
||||||
List<EnumOptionData> loanTermFrequencyOptions = Arrays.asList(
|
|
||||||
loanTermFrequencyType(PeriodFrequencyType.DAYS),
|
|
||||||
loanTermFrequencyType(PeriodFrequencyType.WEEKS),
|
|
||||||
loanTermFrequencyType(PeriodFrequencyType.MONTHS),
|
|
||||||
loanTermFrequencyType(PeriodFrequencyType.YEARS));
|
|
||||||
return loanTermFrequencyOptions;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
return allowedOptions;
|
||||||
public List<EnumOptionData> retrieveRepaymentFrequencyTypeOptions() {
|
}
|
||||||
|
|
||||||
List<EnumOptionData> repaymentFrequencyOptions = Arrays.asList(
|
@Override
|
||||||
repaymentFrequencyType(PeriodFrequencyType.DAYS),
|
public List<EnumOptionData> retrieveLoanTermFrequencyTypeOptions() {
|
||||||
repaymentFrequencyType(PeriodFrequencyType.WEEKS),
|
List<EnumOptionData> loanTermFrequencyOptions = Arrays.asList(loanTermFrequencyType(PeriodFrequencyType.DAYS),
|
||||||
repaymentFrequencyType(PeriodFrequencyType.MONTHS));
|
loanTermFrequencyType(PeriodFrequencyType.WEEKS), loanTermFrequencyType(PeriodFrequencyType.MONTHS),
|
||||||
return repaymentFrequencyOptions;
|
loanTermFrequencyType(PeriodFrequencyType.YEARS));
|
||||||
}
|
return loanTermFrequencyOptions;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<EnumOptionData> retrieveInterestRateFrequencyTypeOptions() {
|
public List<EnumOptionData> retrieveRepaymentFrequencyTypeOptions() {
|
||||||
// support for monthly and annual percentage rate (MPR) and (APR)
|
|
||||||
List<EnumOptionData> interestRateFrequencyTypeOptions = Arrays.asList(
|
|
||||||
interestRateFrequencyType(PeriodFrequencyType.MONTHS),
|
|
||||||
interestRateFrequencyType(PeriodFrequencyType.YEARS));
|
|
||||||
return interestRateFrequencyTypeOptions;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
List<EnumOptionData> repaymentFrequencyOptions = Arrays.asList(repaymentFrequencyType(PeriodFrequencyType.DAYS),
|
||||||
public Collection<TransactionProcessingStrategyData> retreiveTransactionProcessingStrategies() {
|
repaymentFrequencyType(PeriodFrequencyType.WEEKS), repaymentFrequencyType(PeriodFrequencyType.MONTHS));
|
||||||
|
return repaymentFrequencyOptions;
|
||||||
Collection<TransactionProcessingStrategyData> strategyOptions = new ArrayList<TransactionProcessingStrategyData>();
|
}
|
||||||
|
|
||||||
List<LoanTransactionProcessingStrategy> strategies = this.loanTransactionProcessingStrategyRepository.findAll();
|
@Override
|
||||||
for (LoanTransactionProcessingStrategy strategy : strategies) {
|
public List<EnumOptionData> retrieveInterestRateFrequencyTypeOptions() {
|
||||||
strategyOptions.add(strategy.toData());
|
// support for monthly and annual percentage rate (MPR) and (APR)
|
||||||
}
|
List<EnumOptionData> interestRateFrequencyTypeOptions = Arrays.asList(interestRateFrequencyType(PeriodFrequencyType.MONTHS),
|
||||||
|
interestRateFrequencyType(PeriodFrequencyType.YEARS));
|
||||||
return strategyOptions;
|
return interestRateFrequencyTypeOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Collection<TransactionProcessingStrategyData> retreiveTransactionProcessingStrategies() {
|
||||||
|
|
||||||
|
Collection<TransactionProcessingStrategyData> strategyOptions = new ArrayList<TransactionProcessingStrategyData>();
|
||||||
|
|
||||||
|
List<LoanTransactionProcessingStrategy> strategies = this.loanTransactionProcessingStrategyRepository.findAll();
|
||||||
|
for (LoanTransactionProcessingStrategy strategy : strategies) {
|
||||||
|
strategyOptions.add(strategy.toData());
|
||||||
|
}
|
||||||
|
|
||||||
|
return strategyOptions;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<EnumOptionData> retrieveAccountingRuleTypeOptions() {
|
public List<EnumOptionData> retrieveAccountingRuleTypeOptions() {
|
||||||
List<EnumOptionData> accountingRuleTypeOptions = Arrays.asList(accountingRuleType(AccountingRuleType.NONE),
|
List<EnumOptionData> accountingRuleTypeOptions = Arrays.asList(accountingRuleType(AccountingRuleType.NONE),
|
||||||
accountingRuleType(AccountingRuleType.CASH_BASED),accountingRuleType(AccountingRuleType.ACCRUAL_BASED));
|
accountingRuleType(AccountingRuleType.CASH_BASED), accountingRuleType(AccountingRuleType.ACCRUAL_BASED));
|
||||||
return accountingRuleTypeOptions;
|
return accountingRuleTypeOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EnumOptionData> retrievePaymentTypeOptions() {
|
||||||
|
return LoanEnumerations.paymentTypes(PaymentType.values());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+17
@@ -5,6 +5,9 @@
|
|||||||
*/
|
*/
|
||||||
package org.mifosplatform.portfolio.loanproduct.service;
|
package org.mifosplatform.portfolio.loanproduct.service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.mifosplatform.infrastructure.core.data.EnumOptionData;
|
import org.mifosplatform.infrastructure.core.data.EnumOptionData;
|
||||||
import org.mifosplatform.portfolio.loanaccount.data.LoanStatusEnumData;
|
import org.mifosplatform.portfolio.loanaccount.data.LoanStatusEnumData;
|
||||||
import org.mifosplatform.portfolio.loanaccount.data.LoanTransactionEnumData;
|
import org.mifosplatform.portfolio.loanaccount.data.LoanTransactionEnumData;
|
||||||
@@ -198,6 +201,20 @@ public class LoanEnumerations {
|
|||||||
return optionData;
|
return optionData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<EnumOptionData> paymentTypes(final PaymentType[] paymentTypes) {
|
||||||
|
final List<EnumOptionData> optionDatas = new ArrayList<EnumOptionData>();
|
||||||
|
for (final PaymentType paymentType : paymentTypes) {
|
||||||
|
optionDatas.add(paymentType(paymentType));
|
||||||
|
}
|
||||||
|
return optionDatas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static EnumOptionData paymentType(final PaymentType paymentType) {
|
||||||
|
final EnumOptionData optionData = new EnumOptionData(paymentType.getValue().longValue(), paymentType.getCode(),
|
||||||
|
paymentType.toString());
|
||||||
|
return optionData;
|
||||||
|
}
|
||||||
|
|
||||||
public static EnumOptionData paymentType(final Integer id) {
|
public static EnumOptionData paymentType(final Integer id) {
|
||||||
PaymentType paymentType = PaymentType.fromInt(id);
|
PaymentType paymentType = PaymentType.fromInt(id);
|
||||||
EnumOptionData enumOptionData = new EnumOptionData(paymentType.getValue().longValue(), paymentType.getCode(), paymentType
|
EnumOptionData enumOptionData = new EnumOptionData(paymentType.getValue().longValue(), paymentType.getCode(), paymentType
|
||||||
|
|||||||
Reference in New Issue
Block a user