This is an automated email from the ASF dual-hosted git repository.
aleks pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new 48f7e3156 FINERACT-1724: Swagger fixes
48f7e3156 is described below
commit 48f7e3156745e605e3ad3f6860547492acb6fc51
Author: Arnold Galovics <[email protected]>
AuthorDate: Tue Mar 14 14:03:45 2023 +0100
FINERACT-1724: Swagger fixes
---
.../service/ProductToGLAccountMappingHelper.java | 12 +-
.../api/LoanProductsApiResourceSwagger.java | 241 ++++++++++++++++++++-
2 files changed, 245 insertions(+), 8 deletions(-)
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java
b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java
index 930b27369..3ae49657e 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java
@@ -83,12 +83,12 @@ public class ProductToGLAccountMappingHelper {
portfolioProductType.getValue(), accountTypeId);
if (accountMapping == null) {
ArrayList<String> optionalProductToGLAccountMappingEntries =
new ArrayList<String>();
-
optionalProductToGLAccountMappingEntries.add("goodwillCreditAccountId");
-
optionalProductToGLAccountMappingEntries.add("incomeFromChargeOffInterestAccountId");
-
optionalProductToGLAccountMappingEntries.add("incomeFromChargeOffFeesAccountId");
-
optionalProductToGLAccountMappingEntries.add("chargeOffAccountId");
-
optionalProductToGLAccountMappingEntries.add("chargeOffFraudAccountId");
-
optionalProductToGLAccountMappingEntries.add("incomeFromChargeOffPenaltyAccountId");
+
optionalProductToGLAccountMappingEntries.add(LoanProductAccountingParams.GOODWILL_CREDIT.getValue());
+
optionalProductToGLAccountMappingEntries.add(LoanProductAccountingParams.INCOME_FROM_CHARGE_OFF_INTEREST.getValue());
+
optionalProductToGLAccountMappingEntries.add(LoanProductAccountingParams.INCOME_FROM_CHARGE_OFF_FEES.getValue());
+
optionalProductToGLAccountMappingEntries.add(LoanProductAccountingParams.CHARGE_OFF_EXPENSE.getValue());
+
optionalProductToGLAccountMappingEntries.add(LoanProductAccountingParams.CHARGE_OFF_FRAUD_EXPENSE.getValue());
+
optionalProductToGLAccountMappingEntries.add(LoanProductAccountingParams.INCOME_FROM_CHARGE_OFF_PENALTY.getValue());
optionalProductToGLAccountMappingEntries.add("incomeFromGoodwillCreditInterestAccountId");
optionalProductToGLAccountMappingEntries.add("incomeFromGoodwillCreditFeesAccountId");
optionalProductToGLAccountMappingEntries.add("incomeFromGoodwillCreditPenaltyAccountId");
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/api/LoanProductsApiResourceSwagger.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/api/LoanProductsApiResourceSwagger.java
index a2ff44867..bd0627f21 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/api/LoanProductsApiResourceSwagger.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/api/LoanProductsApiResourceSwagger.java
@@ -1198,10 +1198,247 @@ final class LoanProductsApiResourceSwagger {
private PutLoanProductsProductIdRequest() {}
+ @Schema(example = "LP Accrual Accounting")
+ public String name;
+ @Schema(example = "LPAA")
+ public String shortName;
+ @Schema(example = "non-interest bearing product")
+ public String description;
+ @Schema(example = "10 July 2022")
+ public String startDate;
+ @Schema(example = "10 July 2022")
+ public String closeDate;
+ @Schema(example = "3")
+ public Long fundId;
+
+ @Schema(example = "USD")
+ public String currencyCode;
+ @Schema(example = "2")
+ public Integer digitsAfterDecimal;
+ @Schema(example = "1")
+ public Integer installmentAmountInMultiplesOf;
+ @Schema(example = "1")
+ public Integer inMultiplesOf;
+
+ // Terms
+ @Schema(example = "5000.00")
+ public Double minPrincipal;
+ @Schema(example = "10000.00")
+ public Double principal;
+ @Schema(example = "15000.00")
+ public Double maxPrincipal;
+
+ @Schema(example = "1")
+ public Integer minNumberOfRepayments;
+ @Schema(example = "1")
+ public Integer maxNumberOfRepayments;
+ @Schema(example = "12")
+ public Integer numberOfRepayments;
+ @Schema(example = "[]")
+ public List<Integer> principalVariationsForBorrowerCycle;
+ @Schema(example = "[]")
+ public List<Integer> interestRateVariationsForBorrowerCycle;
+ @Schema(example = "[]")
+ public List<Integer> numberOfRepaymentVariationsForBorrowerCycle;
+ @Schema(example = "0")
+ public Double minInterestRatePerPeriod;
+ @Schema(example = "1.75")
+ public Double interestRatePerPeriod;
+ @Schema(example = "23.4")
+ public Double maxInterestRatePerPeriod;
+ @Schema(example = "1")
+ public Integer repaymentEvery;
+ @Schema(example = "5.5")
+ public BigDecimal fixedPrincipalPercentagePerInstallment;
+ @Schema(example = "true")
+ public Boolean canDefineInstallmentAmount;
+
+ // Settings
+ @Schema(example = "false")
+ public Boolean includeInBorrowerCycle;
+ @Schema(example = "false")
+ public Boolean useBorrowerCycle;
+ @Schema(example = "2")
+ public Integer repaymentFrequencyType;
+ @Schema(example = "2")
+ public Integer interestRateFrequencyType;
+ @Schema(example = "1")
+ public Integer amortizationType;
+ @Schema(example = "0")
+ public Integer interestType;
+ @Schema(example = "1")
+ public Integer interestCalculationPeriodType;
+ @Schema(example = "mifos-standard-strategy")
+ public String transactionProcessingStrategyCode;
+ @Schema(example = "false")
+ public Boolean isLinkedToFloatingInterestRates;
+ @Schema(example = "false")
+ public Boolean allowVariableInstallments;
+ @Schema(example = "30")
+ public Integer minimumDaysBetweenDisbursalAndFirstRepayment;
+ @Schema(example = "true")
+ public Boolean allowApprovedDisbursedAmountsOverApplied;
+ @Schema(example = "percentage")
+ public String overAppliedCalculationType;
+ @Schema(example = "50")
+ public Integer overAppliedNumber;
+ @Schema(example = "1")
+ public Integer daysInMonthType;
+ @Schema(example = "1")
+ public Integer daysInYearType;
+ @Schema(example = "true")
+ public Boolean allowPartialPeriodInterestCalcualtion;
+ @Schema(example = "179")
+ public Integer overdueDaysForNPA;
+ @Schema(example = "3")
+ public Integer graceOnPrincipalPayment;
+ @Schema(example = "3")
+ public Integer graceOnInterestPayment;
+ @Schema(example = "90")
+ public Integer inArrearsTolerance;
+ @Schema(example = "3")
+ public Integer graceOnArrearsAgeing;
+ @Schema(example = "false")
+ public Boolean accountMovesOutOfNPAOnlyOnArrearsCompletion;
+ @Schema(example = "false")
+ public Boolean isEqualAmortization;
+ @Schema(example = "false")
+ public Boolean canUseForTopup;
+ @Schema(example = "false")
+ public Boolean holdGuaranteeFunds;
+ @Schema(example = "1")
+ public Long delinquencyBucketId;
+
+ // Interest Recalculation
+ @Schema(example = "false")
+ public Boolean isInterestRecalculationEnabled;
+ @Schema(example = "1")
+ public Integer interestRecalculationCompoundingMethod;
+ @Schema(example = "2")
+ public Integer rescheduleStrategyMethod;
+ @Schema(example = "1")
+ public Integer preClosureInterestCalculationStrategy;
+ @Schema(example = "1")
+ public Integer recalculationCompoundingFrequencyType;
+ @Schema(example = "50")
+ public Integer recalculationRestFrequencyType;
+ @Schema(example = "1")
+ public Integer recalculationRestFrequencyInterval;
+ @Schema(example = "1")
+ public Integer recalculationCompoundingFrequencyInterval;
+ @Schema(example = "1")
+ public Integer recalculationCompoundingFrequencyOnDayType;
+
+ // Accounting
+ @Schema(example = "3")
+ public Integer accountingRule;
+ @Schema(example = "4")
+ public Long fundSourceAccountId;
+ @Schema(example = "8")
+ public Long loanPortfolioAccountId;
+ @Schema(example = "9")
+ public Long receivableInterestAccountId;
+ @Schema(example = "11")
+ public Long receivableFeeAccountId;
+ @Schema(example = "10")
+ public Long receivablePenaltyAccountId;
+ @Schema(example = "34")
+ public Long interestOnLoanAccountId;
+ @Schema(example = "37")
+ public Long incomeFromFeeAccountId;
+ @Schema(example = "35")
+ public Long incomeFromPenaltyAccountId;
+ @Schema(example = "2")
+ public Long overpaymentLiabilityAccountId;
+ @Schema(example = "41")
+ public Long writeOffAccountId;
+ @Schema(example = "5")
+ public Long transfersInSuspenseAccountId;
+ @Schema(example = "15")
+ public Long incomeFromRecoveryAccountId;
+ @Schema(example = "48")
+ public Long goodwillCreditAccountId;
+ @Schema(example = "20")
+ public Long incomeFromChargeOffInterestAccountId;
+ @Schema(example = "11")
+ public Long incomeFromChargeOffFeesAccountId;
+ @Schema(example = "12")
+ public Long chargeOffExpenseAccountId;
+ @Schema(example = "13")
+ public Long chargeOffFraudExpenseAccountId;
+ @Schema(example = "11")
+ public Long incomeFromChargeOffPenaltyAccountId;
+ public
List<GetLoanProductsProductIdResponse.GetLoanPaymentChannelToFundSourceMappings>
paymentChannelToFundSourceMappings;
+ public
List<GetLoanProductsProductIdResponse.GetLoanFeeToIncomeAccountMappings>
feeToIncomeAccountMappings;
+ public List<ChargeToGLAccountMapper> penaltyToIncomeAccountMappings;
+
+ // Multi Disburse
+ @Schema(example = "true")
+ public Boolean multiDisburseLoan;
+ @Schema(example = "50")
+ public Integer principalThresholdForLastInstallment;
+ @Schema(example = "true")
+ public Boolean disallowExpectedDisbursements;
+ @Schema(example = "3")
+ public Integer maxTrancheCount;
+ @Schema(example = "36000.00")
+ public Double outstandingLoanBalance;
+
+ public List<PostLoanProductsRequest.ChargeData> charges;
@Schema(example = "en_GB")
public String locale;
- @Schema(example = "70,000.00")
- public Double principal;
+ @Schema(example = "dd MMMM yyyy")
+ public String dateFormat;
+
+ public PostLoanProductsRequest.AllowAttributeOverrides
allowAttributeOverrides;
+ public List<PostLoanProductsRequest.RateData> rates;
+
+ static final class AllowAttributeOverrides {
+
+ private AllowAttributeOverrides() {}
+
+ @Schema(example = "true")
+ public boolean amortizationType;
+ @Schema(example = "true")
+ public boolean interestType;
+ @Schema(example = "true")
+ public boolean transactionProcessingStrategyCode;
+ @Schema(example = "true")
+ public boolean interestCalculationPeriodType;
+ @Schema(example = "true")
+ public boolean inArrearsTolerance;
+ @Schema(example = "true")
+ public boolean repaymentEvery;
+ @Schema(example = "true")
+ public boolean graceOnPrincipalAndInterestPayment;
+ @Schema(example = "true")
+ public boolean graceOnArrearsAgeing;
+ }
+
+ static final class ChargeData {
+
+ private ChargeData() {}
+
+ @Schema(example = "1")
+ public Long id;
+ }
+
+ static final class RateData {
+
+ private RateData() {}
+
+ @Schema(example = "1")
+ public Long id;
+ @Schema(example = "some name")
+ public String name;
+ @Schema(example = "20")
+ public BigDecimal percentage;
+ @Schema(description = "Apply specific product using its id, code,
and value.")
+ public EnumOptionData productApply;
+ @Schema(example = "false")
+ public boolean active;
+ }
+
}
@Schema(description = "PutLoanProductsProductIdResponse")