MIFOSX-53 Extended loans template api.
This commit is contained in:
@@ -130,7 +130,8 @@ public class LoansApiResource {
|
|||||||
boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
|
boolean prettyPrint = ApiParameterHelper.prettyPrint(uriInfo.getQueryParameters());
|
||||||
|
|
||||||
responseParameters.addAll(Arrays.asList("productOptions", "amortizationTypeOptions", "interestTypeOptions", "interestCalculationPeriodTypeOptions",
|
responseParameters.addAll(Arrays.asList("productOptions", "amortizationTypeOptions", "interestTypeOptions", "interestCalculationPeriodTypeOptions",
|
||||||
"repaymentFrequencyTypeOptions", "interestRateFrequencyTypeOptions", "fundOptions", "transactionProcessingStrategyOptions", "chargeOptions"));
|
"repaymentFrequencyTypeOptions", "interestRateFrequencyTypeOptions", "fundOptions", "transactionProcessingStrategyOptions", "chargeOptions",
|
||||||
|
"chargeTemplate"));
|
||||||
|
|
||||||
// tempate related
|
// tempate related
|
||||||
Collection<LoanProductLookup> productOptions = this.loanProductReadPlatformService.retrieveAllLoanProductsForLookup();
|
Collection<LoanProductLookup> productOptions = this.loanProductReadPlatformService.retrieveAllLoanProductsForLookup();
|
||||||
@@ -146,6 +147,7 @@ public class LoansApiResource {
|
|||||||
Collection<TransactionProcessingStrategyData> transactionProcessingStrategyOptions = this.dropdownReadPlatformService.retreiveTransactionProcessingStrategies();
|
Collection<TransactionProcessingStrategyData> transactionProcessingStrategyOptions = this.dropdownReadPlatformService.retreiveTransactionProcessingStrategies();
|
||||||
|
|
||||||
Collection<ChargeData> chargeOptions = this.chargeReadPlatformService.retrieveLoanApplicableCharges();
|
Collection<ChargeData> chargeOptions = this.chargeReadPlatformService.retrieveLoanApplicableCharges();
|
||||||
|
ChargeData chargeTemplate = this.chargeReadPlatformService.retrieveLoanChargeTemplate();
|
||||||
|
|
||||||
LoanBasicDetailsData loanBasicDetails = this.loanReadPlatformService.retrieveClientAndProductDetails(clientId, productId);
|
LoanBasicDetailsData loanBasicDetails = this.loanReadPlatformService.retrieveClientAndProductDetails(clientId, productId);
|
||||||
if (loanBasicDetails.getCharges() != null) {
|
if (loanBasicDetails.getCharges() != null) {
|
||||||
@@ -166,7 +168,7 @@ public class LoansApiResource {
|
|||||||
final LoanAccountData newLoanAccount = new LoanAccountData(loanBasicDetails, convenienceDataRequired, null, null, null, null, charges,
|
final LoanAccountData newLoanAccount = new LoanAccountData(loanBasicDetails, convenienceDataRequired, null, null, null, null, charges,
|
||||||
productOptions, loanTermFrequencyTypeOptions, repaymentFrequencyTypeOptions,
|
productOptions, loanTermFrequencyTypeOptions, repaymentFrequencyTypeOptions,
|
||||||
transactionProcessingStrategyOptions, interestRateFrequencyTypeOptions,
|
transactionProcessingStrategyOptions, interestRateFrequencyTypeOptions,
|
||||||
amortizationTypeOptions, interestTypeOptions, interestCalculationPeriodTypeOptions, fundOptions, chargeOptions, allowedLoanOfficers);
|
amortizationTypeOptions, interestTypeOptions, interestCalculationPeriodTypeOptions, fundOptions, chargeOptions, chargeTemplate, allowedLoanOfficers);
|
||||||
|
|
||||||
return this.apiJsonSerializerService.serialzieLoanAccountDataToJson(prettyPrint, responseParameters, newLoanAccount);
|
return this.apiJsonSerializerService.serialzieLoanAccountDataToJson(prettyPrint, responseParameters, newLoanAccount);
|
||||||
}
|
}
|
||||||
@@ -240,7 +242,8 @@ public class LoansApiResource {
|
|||||||
Collection<EnumOptionData> interestCalculationPeriodTypeOptions = new ArrayList<EnumOptionData>();
|
Collection<EnumOptionData> interestCalculationPeriodTypeOptions = new ArrayList<EnumOptionData>();
|
||||||
Collection<FundData> fundOptions = new ArrayList<FundData>();
|
Collection<FundData> fundOptions = new ArrayList<FundData>();
|
||||||
Collection<ChargeData> chargeOptions = null;
|
Collection<ChargeData> chargeOptions = null;
|
||||||
|
ChargeData chargeTemplate = null;
|
||||||
|
|
||||||
final boolean template = ApiParameterHelper.template(uriInfo.getQueryParameters());
|
final boolean template = ApiParameterHelper.template(uriInfo.getQueryParameters());
|
||||||
if(template) {
|
if(template) {
|
||||||
responseParameters.addAll(Arrays.asList("productOptions", "amortizationTypeOptions", "interestTypeOptions", "interestCalculationPeriodTypeOptions",
|
responseParameters.addAll(Arrays.asList("productOptions", "amortizationTypeOptions", "interestTypeOptions", "interestCalculationPeriodTypeOptions",
|
||||||
@@ -274,7 +277,7 @@ public class LoansApiResource {
|
|||||||
final LoanAccountData loanAccount = new LoanAccountData(loanBasicDetails, convenienceDataRequired, summary, repaymentSchedule, loanRepayments, permissions, charges,
|
final LoanAccountData loanAccount = new LoanAccountData(loanBasicDetails, convenienceDataRequired, summary, repaymentSchedule, loanRepayments, permissions, charges,
|
||||||
productOptions, loanTermFrequencyTypeOptions, repaymentFrequencyTypeOptions,
|
productOptions, loanTermFrequencyTypeOptions, repaymentFrequencyTypeOptions,
|
||||||
transactionProcessingStrategyOptions, interestRateFrequencyTypeOptions,
|
transactionProcessingStrategyOptions, interestRateFrequencyTypeOptions,
|
||||||
amortizationTypeOptions, interestTypeOptions, interestCalculationPeriodTypeOptions, fundOptions, chargeOptions, allowedLoanOfficers);
|
amortizationTypeOptions, interestTypeOptions, interestCalculationPeriodTypeOptions, fundOptions, chargeOptions, chargeTemplate, allowedLoanOfficers);
|
||||||
|
|
||||||
return this.apiJsonSerializerService.serialzieLoanAccountDataToJson(prettyPrint, responseParameters, loanAccount);
|
return this.apiJsonSerializerService.serialzieLoanAccountDataToJson(prettyPrint, responseParameters, loanAccount);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ public class LoanAccountData {
|
|||||||
private final Collection<EnumOptionData> interestCalculationPeriodTypeOptions;
|
private final Collection<EnumOptionData> interestCalculationPeriodTypeOptions;
|
||||||
private final Collection<FundData> fundOptions;
|
private final Collection<FundData> fundOptions;
|
||||||
private final Collection<ChargeData> chargeOptions;
|
private final Collection<ChargeData> chargeOptions;
|
||||||
|
private final ChargeData chargeTemplate;
|
||||||
private final Collection<StaffData> loanOfficerOptions;
|
private final Collection<StaffData> loanOfficerOptions;
|
||||||
|
|
||||||
public LoanAccountData(
|
public LoanAccountData(
|
||||||
@@ -88,6 +89,7 @@ public class LoanAccountData {
|
|||||||
final Collection<EnumOptionData> interestCalculationPeriodTypeOptions,
|
final Collection<EnumOptionData> interestCalculationPeriodTypeOptions,
|
||||||
final Collection<FundData> fundOptions,
|
final Collection<FundData> fundOptions,
|
||||||
final Collection<ChargeData> chargeOptions,
|
final Collection<ChargeData> chargeOptions,
|
||||||
|
final ChargeData chargeTemplate,
|
||||||
final Collection<StaffData> loanOfficerOptions) {
|
final Collection<StaffData> loanOfficerOptions) {
|
||||||
this.summary = summary;
|
this.summary = summary;
|
||||||
this.repaymentSchedule = repaymentSchedule;
|
this.repaymentSchedule = repaymentSchedule;
|
||||||
@@ -104,6 +106,7 @@ public class LoanAccountData {
|
|||||||
this.interestCalculationPeriodTypeOptions = interestCalculationPeriodTypeOptions;
|
this.interestCalculationPeriodTypeOptions = interestCalculationPeriodTypeOptions;
|
||||||
this.fundOptions = fundOptions;
|
this.fundOptions = fundOptions;
|
||||||
this.chargeOptions = chargeOptions;
|
this.chargeOptions = chargeOptions;
|
||||||
|
this.chargeTemplate = chargeTemplate;
|
||||||
this.loanOfficerOptions = loanOfficerOptions;
|
this.loanOfficerOptions = loanOfficerOptions;
|
||||||
|
|
||||||
if (convenienceDataRequired) {
|
if (convenienceDataRequired) {
|
||||||
|
|||||||
+1
-1
@@ -151,7 +151,7 @@ public class GoogleGsonApiJsonSerializerService implements ApiJsonSerializerServ
|
|||||||
"loanRepayments", "permissions", "convenienceData", "charges",
|
"loanRepayments", "permissions", "convenienceData", "charges",
|
||||||
"productOptions", "amortizationTypeOptions", "interestTypeOptions", "interestCalculationPeriodTypeOptions",
|
"productOptions", "amortizationTypeOptions", "interestTypeOptions", "interestCalculationPeriodTypeOptions",
|
||||||
"repaymentFrequencyTypeOptions", "interestRateFrequencyTypeOptions", "fundOptions", "transactionProcessingStrategyOptions", "chargeOptions",
|
"repaymentFrequencyTypeOptions", "interestRateFrequencyTypeOptions", "fundOptions", "transactionProcessingStrategyOptions", "chargeOptions",
|
||||||
"loanOfficerId", "loanOfficerName", "loanOfficerOptions"));
|
"loanOfficerId", "loanOfficerName", "loanOfficerOptions", "chargeTemplate"));
|
||||||
|
|
||||||
private static final Set<String> LOAN_TRANSACTION_DATA_PARAMETERS = new HashSet<String>(
|
private static final Set<String> LOAN_TRANSACTION_DATA_PARAMETERS = new HashSet<String>(
|
||||||
Arrays.asList("id", "transactionType", "date", "principal",
|
Arrays.asList("id", "transactionType", "date", "principal",
|
||||||
|
|||||||
+2
@@ -17,4 +17,6 @@ public interface ChargeReadPlatformService {
|
|||||||
Collection<ChargeData> retrieveLoanProductCharges(Long loanProductId);
|
Collection<ChargeData> retrieveLoanProductCharges(Long loanProductId);
|
||||||
|
|
||||||
Collection<ChargeData> retrieveLoanCharges(Long loanId);
|
Collection<ChargeData> retrieveLoanCharges(Long loanId);
|
||||||
|
|
||||||
|
ChargeData retrieveLoanChargeTemplate();
|
||||||
}
|
}
|
||||||
|
|||||||
+17
@@ -127,6 +127,23 @@ public class ChargeReadPlatformServiceImpl implements ChargeReadPlatformService
|
|||||||
return this.jdbcTemplate.query(sql, rm, new Object[] {ChargeAppliesTo.LOAN.getValue()});
|
return this.jdbcTemplate.query(sql, rm, new Object[] {ChargeAppliesTo.LOAN.getValue()});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ChargeData retrieveLoanChargeTemplate() {
|
||||||
|
this.context.authenticatedUser();
|
||||||
|
|
||||||
|
List<EnumOptionData> allowedChargeCalculationTypeOptions = Arrays.asList(
|
||||||
|
chargeCalculationType(ChargeCalculationType.FLAT),
|
||||||
|
chargeCalculationType(ChargeCalculationType.PERCENT_OF_AMOUNT),
|
||||||
|
chargeCalculationType(ChargeCalculationType.PERCENT_OF_AMOUNT_AND_INTEREST),
|
||||||
|
chargeCalculationType(ChargeCalculationType.PERCENT_OF_INTEREST)
|
||||||
|
);
|
||||||
|
|
||||||
|
List<EnumOptionData> allowedChargeTimeOptions = Arrays.asList(chargeTimeType(ChargeTimeType.DISBURSEMENT));
|
||||||
|
|
||||||
|
return ChargeData.template(null, allowedChargeCalculationTypeOptions,
|
||||||
|
null, allowedChargeTimeOptions);
|
||||||
|
}
|
||||||
|
|
||||||
private static final class ChargeMapper implements RowMapper<ChargeData> {
|
private static final class ChargeMapper implements RowMapper<ChargeData> {
|
||||||
|
|
||||||
public String chargeSchema(){
|
public String chargeSchema(){
|
||||||
|
|||||||
Reference in New Issue
Block a user