FINERACT-1968: Enhance Loan product template with advanced payment allocation
This commit is contained in:
+18
-3
@@ -18,8 +18,23 @@
|
||||
*/
|
||||
package org.apache.fineract.portfolio.loanproduct.domain;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum FutureInstallmentAllocationRule {
|
||||
NEXT_INSTALLMENT, //
|
||||
LAST_INSTALLMENT, //
|
||||
REAMORTIZATION //
|
||||
|
||||
NEXT_INSTALLMENT("Next installment"), //
|
||||
LAST_INSTALLMENT("Last installment"), //
|
||||
REAMORTIZATION("Reamortization"); //
|
||||
|
||||
private final String humanReadableName;
|
||||
|
||||
public static List<EnumOptionData> getValuesAsEnumOptionDataList() {
|
||||
return Arrays.stream(values()).map(v -> new EnumOptionData((long) (v.ordinal() + 1), v.name(), v.getHumanReadableName())).toList();
|
||||
}
|
||||
}
|
||||
|
||||
+17
-10
@@ -18,24 +18,31 @@
|
||||
*/
|
||||
package org.apache.fineract.portfolio.loanproduct.domain;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionType;
|
||||
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum PaymentAllocationTransactionType {
|
||||
|
||||
DEFAULT(null), //
|
||||
REPAYMENT(LoanTransactionType.REPAYMENT), //
|
||||
DOWN_PAYMENT(LoanTransactionType.DOWN_PAYMENT), //
|
||||
MERCHANT_ISSUED_REFUND(LoanTransactionType.MERCHANT_ISSUED_REFUND), //
|
||||
PAYOUT_REFUND(LoanTransactionType.PAYOUT_REFUND), //
|
||||
GOODWILL_CREDIT(LoanTransactionType.GOODWILL_CREDIT), //
|
||||
CHARGE_REFUND(LoanTransactionType.CHARGE_REFUND), //
|
||||
CHARGE_ADJUSTMENT(LoanTransactionType.CHARGE_ADJUSTMENT), //
|
||||
WAIVE_INTEREST(LoanTransactionType.WAIVE_INTEREST),//
|
||||
; //
|
||||
DEFAULT(null, "Default"), //
|
||||
REPAYMENT(LoanTransactionType.REPAYMENT, "Repayment"), //
|
||||
DOWN_PAYMENT(LoanTransactionType.DOWN_PAYMENT, "Down payment"), //
|
||||
MERCHANT_ISSUED_REFUND(LoanTransactionType.MERCHANT_ISSUED_REFUND, "Merchant issued refund"), //
|
||||
PAYOUT_REFUND(LoanTransactionType.PAYOUT_REFUND, "Payout refund"), //
|
||||
GOODWILL_CREDIT(LoanTransactionType.GOODWILL_CREDIT, "Goodwill credit"), //
|
||||
CHARGE_REFUND(LoanTransactionType.CHARGE_REFUND, "Charge refund"), //
|
||||
CHARGE_ADJUSTMENT(LoanTransactionType.CHARGE_ADJUSTMENT, "Charge adjustment"), //
|
||||
WAIVE_INTEREST(LoanTransactionType.WAIVE_INTEREST, "Waive interest");//
|
||||
|
||||
private final LoanTransactionType loanTransactionType;
|
||||
private final String humanReadableName;
|
||||
|
||||
public static List<EnumOptionData> getValuesAsEnumOptionDataList() {
|
||||
return Arrays.stream(values()).map(v -> new EnumOptionData((long) (v.ordinal() + 1), v.name(), v.getHumanReadableName())).toList();
|
||||
}
|
||||
}
|
||||
|
||||
+20
-12
@@ -26,27 +26,35 @@ import static org.apache.fineract.portfolio.loanproduct.domain.DueType.DUE;
|
||||
import static org.apache.fineract.portfolio.loanproduct.domain.DueType.IN_ADVANCE;
|
||||
import static org.apache.fineract.portfolio.loanproduct.domain.DueType.PAST_DUE;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
|
||||
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum PaymentAllocationType {
|
||||
|
||||
PAST_DUE_PENALTY(PAST_DUE, PENALTY), //
|
||||
PAST_DUE_FEE(PAST_DUE, FEE), //
|
||||
PAST_DUE_PRINCIPAL(PAST_DUE, PRINCIPAL), //
|
||||
PAST_DUE_INTEREST(PAST_DUE, INTEREST), //
|
||||
DUE_PENALTY(DUE, PENALTY), //
|
||||
DUE_FEE(DUE, FEE), //
|
||||
DUE_PRINCIPAL(DUE, PRINCIPAL), //
|
||||
DUE_INTEREST(DUE, INTEREST), //
|
||||
IN_ADVANCE_PENALTY(IN_ADVANCE, PENALTY), //
|
||||
IN_ADVANCE_FEE(IN_ADVANCE, FEE), //
|
||||
IN_ADVANCE_PRINCIPAL(IN_ADVANCE, PRINCIPAL), //
|
||||
IN_ADVANCE_INTEREST(IN_ADVANCE, INTEREST); //
|
||||
PAST_DUE_PENALTY(PAST_DUE, PENALTY, "Past due penalty"), //
|
||||
PAST_DUE_FEE(PAST_DUE, FEE, "Past due fee"), //
|
||||
PAST_DUE_PRINCIPAL(PAST_DUE, PRINCIPAL, "Past due principal"), //
|
||||
PAST_DUE_INTEREST(PAST_DUE, INTEREST, "Past due interest"), //
|
||||
DUE_PENALTY(DUE, PENALTY, "Due penalty"), //
|
||||
DUE_FEE(DUE, FEE, "Due fee"), //
|
||||
DUE_PRINCIPAL(DUE, PRINCIPAL, "Due principal"), //
|
||||
DUE_INTEREST(DUE, INTEREST, "Due interest"), //
|
||||
IN_ADVANCE_PENALTY(IN_ADVANCE, PENALTY, "In advance penalty"), //
|
||||
IN_ADVANCE_FEE(IN_ADVANCE, FEE, "In advance fee"), //
|
||||
IN_ADVANCE_PRINCIPAL(IN_ADVANCE, PRINCIPAL, "In advance principal"), //
|
||||
IN_ADVANCE_INTEREST(IN_ADVANCE, INTEREST, "In advanced interest"); //
|
||||
|
||||
private final DueType dueType;
|
||||
private final AllocationType allocationType;
|
||||
private final String humanReadableName;
|
||||
|
||||
public static List<EnumOptionData> getValuesAsEnumOptionDataList() {
|
||||
return Arrays.stream(values()).map(v -> new EnumOptionData((long) (v.ordinal() + 1), v.name(), v.getHumanReadableName())).toList();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user