This is an automated email from the ASF dual-hosted git repository.
adamsaghy 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 771b48b07 FINERACT-2235: Accelerate maturity to charge-off date when
interest recalculation is disabled.
771b48b07 is described below
commit 771b48b0783693f7aa09e5901702489eb04c744d
Author: mariiaKraievska <[email protected]>
AuthorDate: Mon Jan 20 19:35:15 2025 +0200
FINERACT-2235: Accelerate maturity to charge-off date when interest
recalculation is disabled.
---
.../test/data/loanproduct/DefaultLoanProduct.java | 1 +
.../global/LoanProductGlobalInitializerStep.java | 50 +-
.../fineract/test/stepdef/loan/LoanStepDef.java | 20 +-
.../fineract/test/support/TestContextKey.java | 2 +
.../test/resources/features/LoanChargeOff.feature | 557 +++++++++++++++++++++
...dvancedPaymentScheduleTransactionProcessor.java | 9 +-
.../LoanWritePlatformServiceJpaRepositoryImpl.java | 8 +-
7 files changed, 629 insertions(+), 18 deletions(-)
diff --git
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/data/loanproduct/DefaultLoanProduct.java
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/data/loanproduct/DefaultLoanProduct.java
index 88cf7d808..3b302b38d 100644
---
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/data/loanproduct/DefaultLoanProduct.java
+++
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/data/loanproduct/DefaultLoanProduct.java
@@ -77,6 +77,7 @@ public enum DefaultLoanProduct implements LoanProduct {
LP2_ADV_PYMNT_ZERO_INTEREST_CHARGE_OFF_BEHAVIOUR, //
LP2_ADV_PYMNT_INTEREST_DAILY_INTEREST_RECALCULATION_ACCELERATE_MATURITY_CHARGE_OFF_BEHAVIOUR,
//
LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_ACCRUAL_ACTIVITY, //
+ LP2_ADV_PYMNT_ACCELERATE_MATURITY_CHARGE_OFF_BEHAVIOUR, //
;
@Override
diff --git
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/global/LoanProductGlobalInitializerStep.java
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/global/LoanProductGlobalInitializerStep.java
index f0307994a..d2ff0db38 100644
---
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/global/LoanProductGlobalInitializerStep.java
+++
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/global/LoanProductGlobalInitializerStep.java
@@ -1151,7 +1151,7 @@ public class LoanProductGlobalInitializerStep implements
FineractGlobalInitializ
final String name53 =
DefaultLoanProduct.LP2_ADV_PYMNT_INTEREST_DAILY_INTEREST_RECALCULATION_ACCELERATE_MATURITY_CHARGE_OFF_BEHAVIOUR
.getName();
- final PostLoanProductsRequest
loanProductsRequestAdvCustomAccelerateMaturityChargeOffBehaviourProgressiveLoanSchedule
= loanProductsRequestFactory
+ final PostLoanProductsRequest
loanProductsRequestAdvCustomInterestRecalculationAccelerateMaturityChargeOffBehaviourProgressiveLoanSchedule
= loanProductsRequestFactory
.defaultLoanProductsRequestLP2InterestDailyRecalculation()//
.name(name53)//
.paymentAllocation(List.of(//
@@ -1172,11 +1172,13 @@ public class LoanProductGlobalInitializerStep
implements FineractGlobalInitializ
createPaymentAllocation("MERCHANT_ISSUED_REFUND",
"REAMORTIZATION"), //
createPaymentAllocation("PAYOUT_REFUND",
"NEXT_INSTALLMENT"))) //
.chargeOffBehaviour("ACCELERATE_MATURITY");//
- final Response<PostLoanProductsResponse>
responseLoanProductsRequestAdvCustomAccelerateMaturityChargeOffBehaviourProgressiveLoanSchedule
= loanProductsApi
-
.createLoanProduct(loanProductsRequestAdvCustomAccelerateMaturityChargeOffBehaviourProgressiveLoanSchedule).execute();
+ final Response<PostLoanProductsResponse>
responseLoanProductsRequestAdvCustomInterestRecalculationAccelerateMaturityChargeOffBehaviourProgressiveLoanSchedule
= loanProductsApi
+ .createLoanProduct(
+
loanProductsRequestAdvCustomInterestRecalculationAccelerateMaturityChargeOffBehaviourProgressiveLoanSchedule)
+ .execute();
TestContext.INSTANCE.set(
-
TestContextKey.DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADV_PYMNT_INTEREST_DAILY_INTEREST_RECALCULATION_ZERO_INTEREST_CHARGE_OFF_BEHAVIOUR,
-
responseLoanProductsRequestAdvCustomAccelerateMaturityChargeOffBehaviourProgressiveLoanSchedule);
+
TestContextKey.DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADV_PYMNT_INTEREST_DAILY_INTEREST_RECALCULATION_ACCELERATE_MATURITY_CHARGE_OFF_BEHAVIOUR,
+
responseLoanProductsRequestAdvCustomInterestRecalculationAccelerateMaturityChargeOffBehaviourProgressiveLoanSchedule);
// LP2 with progressive loan schedule + horizontal + interest EMI +
360/30 + accrual activity
String name54 =
DefaultLoanProduct.LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_ACCRUAL_ACTIVITY.getName();
@@ -1202,6 +1204,44 @@ public class LoanProductGlobalInitializerStep implements
FineractGlobalInitializ
TestContext.INSTANCE.set(
TestContextKey.DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_ACCRUAL_ACTIVITY,
responseLoanProductsRequestLP2AdvancedPaymentInterestEmi36030AccrualActivity);
+
+ // LP2 with progressive loan schedule + horizontal +
accelerate-maturity chargeOff behaviour
+ // (LP2_ADV_PYMNT_ACCELERATE_MATURITY_CHARGE_OFF_BEHAVIOUR)
+ final String name55 =
DefaultLoanProduct.LP2_ADV_PYMNT_ACCELERATE_MATURITY_CHARGE_OFF_BEHAVIOUR.getName();
+
+ final PostLoanProductsRequest
loanProductsRequestAdvCustomAccelerateMaturityChargeOffBehaviourProgressiveLoanSchedule
= loanProductsRequestFactory
+ .defaultLoanProductsRequestLP2()//
+ .name(name55)//
+ .enableDownPayment(false)//
+ .enableAutoRepaymentForDownPayment(null)//
+ .disbursedAmountPercentageForDownPayment(null)//
+
.transactionProcessingStrategyCode(ADVANCED_PAYMENT_ALLOCATION.getValue())//
+ .loanScheduleType("PROGRESSIVE") //
+ .loanScheduleProcessingType("HORIZONTAL")//
+ .interestRateFrequencyType(3)//
+ .maxInterestRatePerPeriod(10.0)//
+ .paymentAllocation(List.of(//
+ createPaymentAllocation("DEFAULT", "NEXT_INSTALLMENT",
+
LoanProductPaymentAllocationRule.AllocationTypesEnum.PAST_DUE_PENALTY, //
+
LoanProductPaymentAllocationRule.AllocationTypesEnum.PAST_DUE_FEE, //
+
LoanProductPaymentAllocationRule.AllocationTypesEnum.PAST_DUE_INTEREST, //
+
LoanProductPaymentAllocationRule.AllocationTypesEnum.PAST_DUE_PRINCIPAL, //
+
LoanProductPaymentAllocationRule.AllocationTypesEnum.DUE_PENALTY, //
+
LoanProductPaymentAllocationRule.AllocationTypesEnum.DUE_FEE, //
+
LoanProductPaymentAllocationRule.AllocationTypesEnum.DUE_INTEREST, //
+
LoanProductPaymentAllocationRule.AllocationTypesEnum.DUE_PRINCIPAL, //
+
LoanProductPaymentAllocationRule.AllocationTypesEnum.IN_ADVANCE_PENALTY, //
+
LoanProductPaymentAllocationRule.AllocationTypesEnum.IN_ADVANCE_FEE, //
+
LoanProductPaymentAllocationRule.AllocationTypesEnum.IN_ADVANCE_INTEREST, //
+
LoanProductPaymentAllocationRule.AllocationTypesEnum.IN_ADVANCE_PRINCIPAL), //
+ createPaymentAllocation("GOODWILL_CREDIT",
"LAST_INSTALLMENT"), //
+ createPaymentAllocation("MERCHANT_ISSUED_REFUND",
"REAMORTIZATION"), //
+ createPaymentAllocation("PAYOUT_REFUND",
"NEXT_INSTALLMENT")))//
+ .chargeOffBehaviour("ACCELERATE_MATURITY");//
+ final Response<PostLoanProductsResponse>
responseLoanProductsRequestAdvCustomAccelerateMaturityChargeOffBehaviourProgressiveLoanSchedule
= loanProductsApi
+
.createLoanProduct(loanProductsRequestAdvCustomAccelerateMaturityChargeOffBehaviourProgressiveLoanSchedule).execute();
+
TestContext.INSTANCE.set(TestContextKey.DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADV_PYMNT_ACCELERATE_MATURITY_CHARGE_OFF_BEHAVIOUR,
+
responseLoanProductsRequestAdvCustomAccelerateMaturityChargeOffBehaviourProgressiveLoanSchedule);
}
public static AdvancedPaymentData createPaymentAllocation(String
transactionType, String futureInstallmentAllocationRule,
diff --git
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java
index 44fecd812..5a0f8bbb8 100644
---
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java
+++
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java
@@ -19,6 +19,7 @@
package org.apache.fineract.test.stepdef.loan;
import static
org.apache.fineract.test.data.TransactionProcessingStrategyCode.ADVANCED_PAYMENT_ALLOCATION;
+import static
org.apache.fineract.test.data.loanproduct.DefaultLoanProduct.LP2_ADV_PYMNT_ACCELERATE_MATURITY_CHARGE_OFF_BEHAVIOUR;
import static
org.apache.fineract.test.data.loanproduct.DefaultLoanProduct.LP2_ADV_PYMNT_INTEREST_DAILY_INTEREST_RECALCULATION_ZERO_INTEREST_CHARGE_OFF_BEHAVIOUR;
import static
org.apache.fineract.test.data.loanproduct.DefaultLoanProduct.LP2_ADV_PYMNT_ZERO_INTEREST_CHARGE_OFF_BEHAVIOUR;
import static org.assertj.core.api.Assertions.assertThat;
@@ -2770,23 +2771,26 @@ public class LoanStepDef extends AbstractStepDef {
@When("Admin creates a new zero charge-off Loan with interest
recalculation and date: {string}")
public void
createLoanWithInterestRecalculationAndZeroChargeOffBehaviour(final String date)
throws IOException {
- createLoanWithZeroChargeOffBehaviour(date, true);
+ createLoanWithLoanBehaviour(date, true, DefaultLoanProduct
+
.valueOf(LP2_ADV_PYMNT_INTEREST_DAILY_INTEREST_RECALCULATION_ZERO_INTEREST_CHARGE_OFF_BEHAVIOUR.getName()));
}
@When("Admin creates a new zero charge-off Loan without interest
recalculation and with date: {string}")
public void
createLoanWithoutInterestRecalculationAndZeroChargeOffBehaviour(final String
date) throws IOException {
- createLoanWithZeroChargeOffBehaviour(date, false);
+ createLoanWithLoanBehaviour(date, false,
DefaultLoanProduct.valueOf(LP2_ADV_PYMNT_ZERO_INTEREST_CHARGE_OFF_BEHAVIOUR.getName()));
}
- private void createLoanWithZeroChargeOffBehaviour(final String date, final
boolean isInterestRecalculation) throws IOException {
+ @When("Admin creates a new accelerate maturity charge-off Loan without
interest recalculation and with date: {string}")
+ public void
createLoanWithoutInterestRecalculationAndAccelerateMaturityChargeOffBehaviour(final
String date) throws IOException {
+ createLoanWithLoanBehaviour(date, false,
+
DefaultLoanProduct.valueOf(LP2_ADV_PYMNT_ACCELERATE_MATURITY_CHARGE_OFF_BEHAVIOUR.getName()));
+ }
+
+ private void createLoanWithLoanBehaviour(final String date, final boolean
isInterestRecalculation, final DefaultLoanProduct product)
+ throws IOException {
final Response<PostClientsResponse> clientResponse =
testContext().get(TestContextKey.CLIENT_CREATE_RESPONSE);
final Long clientId = clientResponse.body().getClientId();
- final DefaultLoanProduct product = isInterestRecalculation
- ? DefaultLoanProduct
-
.valueOf(LP2_ADV_PYMNT_INTEREST_DAILY_INTEREST_RECALCULATION_ZERO_INTEREST_CHARGE_OFF_BEHAVIOUR.getName())
- :
DefaultLoanProduct.valueOf(LP2_ADV_PYMNT_ZERO_INTEREST_CHARGE_OFF_BEHAVIOUR.getName());
-
final Long loanProductId = loanProductResolver.resolve(product);
final PostLoansRequest loansRequest =
loanRequestFactory.defaultLoansRequest(clientId).productId(loanProductId)
diff --git
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/support/TestContextKey.java
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/support/TestContextKey.java
index 7fa9c8372..dd6830551 100644
---
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/support/TestContextKey.java
+++
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/support/TestContextKey.java
@@ -107,6 +107,8 @@ public abstract class TestContextKey {
public static final String
DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADV_PYMNT_INTEREST_DAILY_EMI_ACTUAL_ACTUAL_INTEREST_REFUND_INTEREST_RECALCULATION
=
"loanProductCreateResponseLP2AdvancedPaymentInterestDailyEmiActualActualInterestRefundFInterestRecalculation";
public static final String
DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADV_PYMNT_INTEREST_DAILY_INTEREST_RECALCULATION_ZERO_INTEREST_CHARGE_OFF_BEHAVIOUR
=
"loanProductCreateResponseLP2AdvancedPaymentInterestDailyInterestRecalculationZeroInterestChargeOffBehaviour";
public static final String
DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADV_PYMNT_ZERO_INTEREST_CHARGE_OFF_BEHAVIOUR
= "loanProductCreateResponseLP2AdvancedPaymentZeroInterestChargeOffBehaviour";
+ public static final String
DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADV_PYMNT_INTEREST_DAILY_INTEREST_RECALCULATION_ACCELERATE_MATURITY_CHARGE_OFF_BEHAVIOUR
=
"loanProductCreateResponseLP2AdvancedPaymentInterestDailyInterestRecalculationAccelerateMaturityChargeOffBehaviour";
+ public static final String
DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADV_PYMNT_ACCELERATE_MATURITY_CHARGE_OFF_BEHAVIOUR
=
"loanProductCreateResponseLP2AdvancedPaymentAccelerateMaturityChargeOffBehaviour";
public static final String CHARGE_FOR_LOAN_PERCENT_LATE_CREATE_RESPONSE =
"ChargeForLoanPercentLateCreateResponse";
public static final String
CHARGE_FOR_LOAN_PERCENT_LATE_AMOUNT_PLUS_INTEREST_CREATE_RESPONSE =
"ChargeForLoanPercentLateAmountPlusInterestCreateResponse";
public static final String
CHARGE_FOR_LOAN_PERCENT_PROCESSING_CREATE_RESPONSE =
"ChargeForLoanPercentProcessingCreateResponse";
diff --git
a/fineract-e2e-tests-runner/src/test/resources/features/LoanChargeOff.feature
b/fineract-e2e-tests-runner/src/test/resources/features/LoanChargeOff.feature
index 8f58e6957..468ee4267 100644
---
a/fineract-e2e-tests-runner/src/test/resources/features/LoanChargeOff.feature
+++
b/fineract-e2e-tests-runner/src/test/resources/features/LoanChargeOff.feature
@@ -3641,3 +3641,560 @@ Feature: Charge-off
| 01 March 2024 | Repayment | 17.01 | 16.52 | 0.49 |
0.0 | 0.0 | 67.05 | false | false |
| 31 March 2024 | Charge-off | 67.43 | 67.05 | 0.38 |
0.0 | 0.0 | 0.0 | false | true |
And Global configuration
"is-principal-compounding-disabled-for-overdue-loans" is disabled
+
+ @TestRailId:C3352 @AdvancedPaymentAllocation
+ Scenario: Verify accelerate maturity to charge-off date when interest
recalculation is disabled - case when charge-off occurs on due date
+ When Admin sets the business date to "01 January 2024"
+ When Admin creates a client with random data
+ When Admin creates a new accelerate maturity charge-off Loan without
interest recalculation and with date: "1 January 2024"
+ And Admin successfully approves the loan on "01 January 2024" with "100"
amount and expected disbursement date on "01 January 2024"
+ When Admin successfully disburse the loan on "01 January 2024" with "100"
EUR transaction amount
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan | Principal
due | Interest | Fees | Penalties | Due | Paid | In advance | Late |
Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | | 83.59 | 16.41
| 0.59 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 2 | 29 | 01 March 2024 | | 67.05 | 16.54
| 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 3 | 31 | 01 April 2024 | | 50.45 | 16.6
| 0.4 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 4 | 30 | 01 May 2024 | | 33.74 | 16.71
| 0.29 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 5 | 31 | 01 June 2024 | | 16.94 | 16.8
| 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 6 | 30 | 01 July 2024 | | 0.0 | 16.94
| 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 | 0.0 | 17.04
|
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.04 | 0 | 0 | 102.04 | 0 | 0
| 0 | 102.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ When Admin sets the business date to "01 February 2024"
+ And Customer makes "AUTOPAY" repayment on "01 February 2024" with 17.00
EUR transaction amount
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance |
Late | Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | |
| |
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 |
0.0 | 0.0 |
+ | 2 | 29 | 01 March 2024 | | 67.05 |
16.54 | 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 3 | 31 | 01 April 2024 | | 50.45 |
16.6 | 0.4 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 4 | 30 | 01 May 2024 | | 33.74 |
16.71 | 0.29 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 5 | 31 | 01 June 2024 | | 16.94 |
16.8 | 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0
| 0.0 | 17.0 |
+ | 6 | 30 | 01 July 2024 | | 0.0 |
16.94 | 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 |
0.0 | 17.04 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.04 | 0 | 0 | 102.04 | 17.0 | 0
| 0 | 85.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ When Admin sets the business date to "1 March 2024"
+ And Admin does charge-off the loan on "1 March 2024"
+ Then Loan Repayment schedule has 2 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late
| Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 | 0.0
| 0.0 |
+ | 2 | 29 | 01 March 2024 | | 0.0 |
83.59 | 0.46 | 0.0 | 0.0 | 84.05 | 0.0 | 0.0 | 0.0
| 84.05 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100.0 | 1.05 | 0.0 | 0.0 | 101.05 | 17.0 | 0.0
| 0.0 | 84.05 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ | 01 March 2024 | Charge-off | 84.05 | 83.59 | 0.46 |
0.0 | 0.0 | 0.0 | false | false |
+ When Admin sets the business date to "1 March 2024"
+ And Admin does a charge-off undo the loan
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance |
Late | Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | |
| |
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 |
0.0 | 0.0 |
+ | 2 | 29 | 01 March 2024 | | 67.05 |
16.54 | 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 3 | 31 | 01 April 2024 | | 50.45 |
16.6 | 0.4 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 4 | 30 | 01 May 2024 | | 33.74 |
16.71 | 0.29 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 5 | 31 | 01 June 2024 | | 16.94 |
16.8 | 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0
| 0.0 | 17.0 |
+ | 6 | 30 | 01 July 2024 | | 0.0 |
16.94 | 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 |
0.0 | 17.04 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.04 | 0 | 0 | 102.04 | 17.0 | 0
| 0 | 85.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ | 01 March 2024 | Charge-off | 84.05 | 83.59 | 0.46 |
0.0 | 0.0 | 0.0 | true | false |
+
+ @TestRailId:C3353 @AdvancedPaymentAllocation
+ Scenario: Verify accelerate maturity to charge-off date when interest
recalculation is disabled - case when charge-off occurs before installment date
+ When Admin sets the business date to "01 January 2024"
+ When Admin creates a client with random data
+ When Admin creates a new accelerate maturity charge-off Loan without
interest recalculation and with date: "1 January 2024"
+ And Admin successfully approves the loan on "01 January 2024" with "100"
amount and expected disbursement date on "01 January 2024"
+ When Admin successfully disburse the loan on "01 January 2024" with "100"
EUR transaction amount
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan | Principal
due | Interest | Fees | Penalties | Due | Paid | In advance | Late |
Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | | 83.59 | 16.41
| 0.59 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 2 | 29 | 01 March 2024 | | 67.05 | 16.54
| 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 3 | 31 | 01 April 2024 | | 50.45 | 16.6
| 0.4 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 4 | 30 | 01 May 2024 | | 33.74 | 16.71
| 0.29 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 5 | 31 | 01 June 2024 | | 16.94 | 16.8
| 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 6 | 30 | 01 July 2024 | | 0.0 | 16.94
| 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 | 0.0 | 17.04
|
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.04 | 0 | 0 | 102.04 | 0 | 0
| 0 | 102.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ When Admin sets the business date to "01 February 2024"
+ And Customer makes "AUTOPAY" repayment on "01 February 2024" with 17.00
EUR transaction amount
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance |
Late | Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | |
| |
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 |
0.0 | 0.0 |
+ | 2 | 29 | 01 March 2024 | | 67.05 |
16.54 | 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 3 | 31 | 01 April 2024 | | 50.45 |
16.6 | 0.4 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 4 | 30 | 01 May 2024 | | 33.74 |
16.71 | 0.29 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 5 | 31 | 01 June 2024 | | 16.94 |
16.8 | 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0
| 0.0 | 17.0 |
+ | 6 | 30 | 01 July 2024 | | 0.0 |
16.94 | 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 |
0.0 | 17.04 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.04 | 0 | 0 | 102.04 | 17.0 | 0
| 0 | 85.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ When Admin sets the business date to "29 February 2024"
+ And Admin does charge-off the loan on "29 February 2024"
+ Then Loan Repayment schedule has 2 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late
| Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 | 0.0
| 0.0 |
+ | 2 | 28 | 29 February 2024 | | 0.0 |
83.59 | 0.44 | 0.0 | 0.0 | 84.03 | 0.0 | 0.0 | 0.0
| 84.03 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100.0 | 1.03 | 0.0 | 0.0 | 101.03 | 17.0 | 0.0
| 0.0 | 84.03 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ | 29 February 2024 | Charge-off | 84.03 | 83.59 | 0.44 |
0.0 | 0.0 | 0.0 | false | false |
+
+ @TestRailId:C3354 @AdvancedPaymentAllocation
+ Scenario: Verify accelerate maturity to charge-off date when interest
recalculation is disabled - case when charge-off occurs in the middle of
installment period
+ When Admin sets the business date to "01 January 2024"
+ When Admin creates a client with random data
+ When Admin creates a new accelerate maturity charge-off Loan without
interest recalculation and with date: "1 January 2024"
+ And Admin successfully approves the loan on "01 January 2024" with "100"
amount and expected disbursement date on "01 January 2024"
+ When Admin successfully disburse the loan on "01 January 2024" with "100"
EUR transaction amount
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan | Principal
due | Interest | Fees | Penalties | Due | Paid | In advance | Late |
Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | | 83.59 | 16.41
| 0.59 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 2 | 29 | 01 March 2024 | | 67.05 | 16.54
| 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 3 | 31 | 01 April 2024 | | 50.45 | 16.6
| 0.4 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 4 | 30 | 01 May 2024 | | 33.74 | 16.71
| 0.29 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 5 | 31 | 01 June 2024 | | 16.94 | 16.8
| 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 6 | 30 | 01 July 2024 | | 0.0 | 16.94
| 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 | 0.0 | 17.04
|
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.04 | 0 | 0 | 102.04 | 0 | 0
| 0 | 102.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ When Admin sets the business date to "01 February 2024"
+ And Customer makes "AUTOPAY" repayment on "01 February 2024" with 17.00
EUR transaction amount
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance |
Late | Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | |
| |
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 |
0.0 | 0.0 |
+ | 2 | 29 | 01 March 2024 | | 67.05 |
16.54 | 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 3 | 31 | 01 April 2024 | | 50.45 |
16.6 | 0.4 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 4 | 30 | 01 May 2024 | | 33.74 |
16.71 | 0.29 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 5 | 31 | 01 June 2024 | | 16.94 |
16.8 | 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0
| 0.0 | 17.0 |
+ | 6 | 30 | 01 July 2024 | | 0.0 |
16.94 | 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 |
0.0 | 17.04 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.04 | 0 | 0 | 102.04 | 17.0 | 0
| 0 | 85.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ When Admin sets the business date to "14 February 2024"
+ And Admin does charge-off the loan on "14 February 2024"
+ Then Loan Repayment schedule has 2 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late
| Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 | 0.0
| 0.0 |
+ | 2 | 13 | 14 February 2024 | | 0.0 |
83.59 | 0.21 | 0.0 | 0.0 | 83.8 | 0.0 | 0.0 | 0.0
| 83.8 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100.0 | 0.8 | 0.0 | 0.0 | 100.8 | 17.0 | 0.0
| 0.0 | 83.8 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ | 14 February 2024 | Charge-off | 83.8 | 83.59 | 0.21 |
0.0 | 0.0 | 0.0 | false | false |
+
+ @TestRailId:C3355 @AdvancedPaymentAllocation
+ Scenario: Verify accelerate maturity to charge-off date when interest
recalculation is disabled - case when charge-off occurs after maturity date
+ Given Global configuration
"is-principal-compounding-disabled-for-overdue-loans" is enabled
+ When Admin sets the business date to "01 January 2024"
+ When Admin creates a client with random data
+ When Admin creates a new accelerate maturity charge-off Loan without
interest recalculation and with date: "1 January 2024"
+ And Admin successfully approves the loan on "01 January 2024" with "100"
amount and expected disbursement date on "01 January 2024"
+ When Admin successfully disburse the loan on "01 January 2024" with "100"
EUR transaction amount
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan | Principal
due | Interest | Fees | Penalties | Due | Paid | In advance | Late |
Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | | 83.59 | 16.41
| 0.59 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 2 | 29 | 01 March 2024 | | 67.05 | 16.54
| 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 3 | 31 | 01 April 2024 | | 50.45 | 16.6
| 0.4 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 4 | 30 | 01 May 2024 | | 33.74 | 16.71
| 0.29 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 5 | 31 | 01 June 2024 | | 16.94 | 16.8
| 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 6 | 30 | 01 July 2024 | | 0.0 | 16.94
| 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 | 0.0 | 17.04
|
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.04 | 0 | 0 | 102.04 | 0 | 0
| 0 | 102.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ When Admin sets the business date to "01 February 2024"
+ And Customer makes "AUTOPAY" repayment on "01 February 2024" with 17.00
EUR transaction amount
+ When Admin sets the business date to "01 March 2024"
+ And Customer makes "AUTOPAY" repayment on "01 March 2024" with 17.00 EUR
transaction amount
+ When Admin sets the business date to "01 April 2024"
+ And Customer makes "AUTOPAY" repayment on "01 April 2024" with 17.00 EUR
transaction amount
+ When Admin sets the business date to "01 May 2024"
+ And Customer makes "AUTOPAY" repayment on "01 May 2024" with 17.00 EUR
transaction amount
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late
| Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 | 0.0
| 0.0 |
+ | 2 | 29 | 01 March 2024 | 01 March 2024 | 67.05 |
16.54 | 0.46 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 | 0.0
| 0.0 |
+ | 3 | 31 | 01 April 2024 | 01 April 2024 | 50.45 |
16.6 | 0.4 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 | 0.0
| 0.0 |
+ | 4 | 30 | 01 May 2024 | 01 May 2024 | 33.74 |
16.71 | 0.29 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 |
0.0 | 0.0 |
+ | 5 | 31 | 01 June 2024 | | 16.94 |
16.8 | 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0
| 17.0 |
+ | 6 | 30 | 01 July 2024 | | 0.0 |
16.94 | 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 | 0.0
| 17.04 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100.0 | 2.04 | 0.0 | 0.0 | 102.04 | 68.0 | 0.0
| 0.0 | 34.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ | 01 March 2024 | Repayment | 17.0 | 16.54 | 0.46 |
0.0 | 0.0 | 67.05 | false | false |
+ | 01 April 2024 | Repayment | 17.0 | 16.6 | 0.4 |
0.0 | 0.0 | 50.45 | false | false |
+ | 01 May 2024 | Repayment | 17.0 | 16.71 | 0.29 |
0.0 | 0.0 | 33.74 | false | false |
+ When Admin sets the business date to "15 July 2024"
+ And Admin does charge-off the loan on "15 July 2024"
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late
| Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 | 0.0
| 0.0 |
+ | 2 | 29 | 01 March 2024 | 01 March 2024 | 67.05 |
16.54 | 0.46 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 | 0.0
| 0.0 |
+ | 3 | 31 | 01 April 2024 | 01 April 2024 | 50.45 |
16.6 | 0.4 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 | 0.0
| 0.0 |
+ | 4 | 30 | 01 May 2024 | 01 May 2024 | 33.74 |
16.71 | 0.29 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 |
0.0 | 0.0 |
+ | 5 | 31 | 01 June 2024 | | 16.94 |
16.8 | 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0
| 17.0 |
+ | 6 | 30 | 01 July 2024 | | 0.0 |
16.94 | 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 | 0.0
| 17.04 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100.0 | 2.04 | 0.0 | 0.0 | 102.04 | 68.0 | 0.0
| 0.0 | 34.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ | 01 March 2024 | Repayment | 17.0 | 16.54 | 0.46 |
0.0 | 0.0 | 67.05 | false | false |
+ | 01 April 2024 | Repayment | 17.0 | 16.6 | 0.4 |
0.0 | 0.0 | 50.45 | false | false |
+ | 01 May 2024 | Repayment | 17.0 | 16.71 | 0.29 |
0.0 | 0.0 | 33.74 | false | false |
+ | 15 July 2024 | Charge-off | 34.04 | 33.74 | 0.3 |
0.0 | 0.0 | 0.0 | false | false |
+ Given Global configuration
"is-principal-compounding-disabled-for-overdue-loans" is disabled
+
+ @TestRailId:C3356 @AdvancedPaymentAllocation
+ Scenario: Verify accelerate maturity to charge-off date when interest
recalculation is disabled - case when charge-off occurs after one installment
is overdue
+ When Admin sets the business date to "01 January 2024"
+ When Admin creates a client with random data
+ When Admin creates a new accelerate maturity charge-off Loan without
interest recalculation and with date: "1 January 2024"
+ And Admin successfully approves the loan on "01 January 2024" with "100"
amount and expected disbursement date on "01 January 2024"
+ When Admin successfully disburse the loan on "01 January 2024" with "100"
EUR transaction amount
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan | Principal
due | Interest | Fees | Penalties | Due | Paid | In advance | Late |
Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | | 83.59 | 16.41
| 0.59 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 2 | 29 | 01 March 2024 | | 67.05 | 16.54
| 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 3 | 31 | 01 April 2024 | | 50.45 | 16.6
| 0.4 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 4 | 30 | 01 May 2024 | | 33.74 | 16.71
| 0.29 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 5 | 31 | 01 June 2024 | | 16.94 | 16.8
| 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 6 | 30 | 01 July 2024 | | 0.0 | 16.94
| 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 | 0.0 | 17.04
|
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.04 | 0 | 0 | 102.04 | 0 | 0
| 0 | 102.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ When Admin sets the business date to "01 February 2024"
+ And Customer makes "AUTOPAY" repayment on "01 February 2024" with 17.00
EUR transaction amount
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance |
Late | Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | |
| |
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 |
0.0 | 0.0 |
+ | 2 | 29 | 01 March 2024 | | 67.05 |
16.54 | 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 3 | 31 | 01 April 2024 | | 50.45 |
16.6 | 0.4 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 4 | 30 | 01 May 2024 | | 33.74 |
16.71 | 0.29 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 5 | 31 | 01 June 2024 | | 16.94 |
16.8 | 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0
| 0.0 | 17.0 |
+ | 6 | 30 | 01 July 2024 | | 0.0 |
16.94 | 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 |
0.0 | 17.04 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.04 | 0 | 0 | 102.04 | 17.0 | 0
| 0 | 85.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ When Admin sets the business date to "31 March 2024"
+ And Admin does charge-off the loan on "31 March 2024"
+ Then Loan Repayment schedule has 3 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late
| Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 | 0.0
| 0.0 |
+ | 2 | 29 | 01 March 2024 | | 67.05 |
16.54 | 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0
| 17.0 |
+ | 3 | 30 | 31 March 2024 | | 0.0 |
67.05 | 0.39 | 0.0 | 0.0 | 67.44 | 0.0 | 0.0 | 0.0
| 67.44 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100.0 | 1.44 | 0.0 | 0.0 | 101.44 | 17.0 | 0.0
| 0.0 | 84.44 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ | 31 March 2024 | Charge-off | 84.44 | 83.59 | 0.85 |
0.0 | 0.0 | 0.0 | false | false |
+ When Admin sets the business date to "02 April 2024"
+ When Admin runs inline COB job for Loan
+ Then Loan has 17.0 total overdue amount
+ Then Loan Repayment schedule has 3 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late
| Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 | 0.0
| 0.0 |
+ | 2 | 29 | 01 March 2024 | | 67.05 |
16.54 | 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0
| 17.0 |
+ | 3 | 30 | 31 March 2024 | | 0.0 |
67.05 | 0.39 | 0.0 | 0.0 | 67.44 | 0.0 | 0.0 | 0.0
| 67.44 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100.0 | 1.44 | 0.0 | 0.0 | 101.44 | 17.0 | 0.0
| 0.0 | 84.44 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ | 31 March 2024 | Charge-off | 84.44 | 83.59 | 0.85 |
0.0 | 0.0 | 0.0 | false | false |
+
+ @TestRailId:C3359 @AdvancedPaymentAllocation
+ Scenario: Verify accelerate maturity to charge-off date when interest
recalculation is disabled - case when repayment occurs after charge-off
+ Given Global configuration
"is-principal-compounding-disabled-for-overdue-loans" is enabled
+ When Admin sets the business date to "01 January 2024"
+ When Admin creates a client with random data
+ When Admin creates a new accelerate maturity charge-off Loan without
interest recalculation and with date: "1 January 2024"
+ And Admin successfully approves the loan on "01 January 2024" with "100"
amount and expected disbursement date on "01 January 2024"
+ When Admin successfully disburse the loan on "01 January 2024" with "100"
EUR transaction amount
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan | Principal
due | Interest | Fees | Penalties | Due | Paid | In advance | Late |
Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | | 83.59 | 16.41
| 0.59 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 2 | 29 | 01 March 2024 | | 67.05 | 16.54
| 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 3 | 31 | 01 April 2024 | | 50.45 | 16.6
| 0.4 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 4 | 30 | 01 May 2024 | | 33.74 | 16.71
| 0.29 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 5 | 31 | 01 June 2024 | | 16.94 | 16.8
| 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 6 | 30 | 01 July 2024 | | 0.0 | 16.94
| 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 | 0.0 | 17.04
|
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.04 | 0 | 0 | 102.04 | 0 | 0
| 0 | 102.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ When Admin sets the business date to "01 February 2024"
+ And Customer makes "AUTOPAY" repayment on "01 February 2024" with 17.00
EUR transaction amount
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance |
Late | Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | |
| |
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 |
0.0 | 0.0 |
+ | 2 | 29 | 01 March 2024 | | 67.05 |
16.54 | 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 3 | 31 | 01 April 2024 | | 50.45 |
16.6 | 0.4 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 4 | 30 | 01 May 2024 | | 33.74 |
16.71 | 0.29 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 5 | 31 | 01 June 2024 | | 16.94 |
16.8 | 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0
| 0.0 | 17.0 |
+ | 6 | 30 | 01 July 2024 | | 0.0 |
16.94 | 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 |
0.0 | 17.04 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.04 | 0 | 0 | 102.04 | 17.0 | 0
| 0 | 85.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ When Admin sets the business date to "29 February 2024"
+ And Admin does charge-off the loan on "29 February 2024"
+ Then Loan Repayment schedule has 2 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late
| Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 | 0.0
| 0.0 |
+ | 2 | 28 | 29 February 2024 | | 0.0 |
83.59 | 0.44 | 0.0 | 0.0 | 84.03 | 0.0 | 0.0 | 0.0
| 84.03 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100.0 | 1.03 | 0.0 | 0.0 | 101.03 | 17.0 | 0.0
| 0.0 | 84.03 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ | 29 February 2024 | Charge-off | 84.03 | 83.59 | 0.44 |
0.0 | 0.0 | 0.0 | false | false |
+ When Admin sets the business date to "01 March 2024"
+ And Customer makes "AUTOPAY" repayment on "01 March 2024" with 17.0 EUR
transaction amount
+ Then Loan Repayment schedule has 2 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late
| Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 | 0.0
| 0.0 |
+ | 2 | 28 | 29 February 2024 | | 0.0 |
83.59 | 0.44 | 0.0 | 0.0 | 84.03 | 17.0 | 0.0 | 17.0
| 67.03 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100.0 | 1.03 | 0.0 | 0.0 | 101.03 | 34.0 | 0.0
| 17.0 | 67.03 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ | 29 February 2024 | Charge-off | 84.03 | 83.59 | 0.44 |
0.0 | 0.0 | 0.0 | false | false |
+ | 01 March 2024 | Repayment | 17.0 | 16.56 | 0.44 |
0.0 | 0.0 | 67.03 | false | false |
+ And Global configuration
"is-principal-compounding-disabled-for-overdue-loans" is disabled
+
+ @TestRailId:C3358 @AdvancedPaymentAllocation
+ Scenario: Verify accelerate maturity to charge-off date when interest
recalculation is disabled - case when repayment reversal occurs after charge-off
+ Given Global configuration
"is-principal-compounding-disabled-for-overdue-loans" is enabled
+ When Admin sets the business date to "01 January 2024"
+ When Admin creates a client with random data
+ When Admin creates a new accelerate maturity charge-off Loan without
interest recalculation and with date: "1 January 2024"
+ And Admin successfully approves the loan on "01 January 2024" with "100"
amount and expected disbursement date on "01 January 2024"
+ When Admin successfully disburse the loan on "01 January 2024" with "100"
EUR transaction amount
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan | Principal
due | Interest | Fees | Penalties | Due | Paid | In advance | Late |
Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | | 83.59 | 16.41
| 0.59 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 2 | 29 | 01 March 2024 | | 67.05 | 16.54
| 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 3 | 31 | 01 April 2024 | | 50.45 | 16.6
| 0.4 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 4 | 30 | 01 May 2024 | | 33.74 | 16.71
| 0.29 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 5 | 31 | 01 June 2024 | | 16.94 | 16.8
| 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 6 | 30 | 01 July 2024 | | 0.0 | 16.94
| 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 | 0.0 | 17.04
|
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.04 | 0 | 0 | 102.04 | 0 | 0
| 0 | 102.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ When Admin sets the business date to "01 February 2024"
+ And Customer makes "AUTOPAY" repayment on "01 February 2024" with 17.00
EUR transaction amount
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance |
Late | Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | |
| |
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 |
0.0 | 0.0 |
+ | 2 | 29 | 01 March 2024 | | 67.05 |
16.54 | 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 3 | 31 | 01 April 2024 | | 50.45 |
16.6 | 0.4 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 4 | 30 | 01 May 2024 | | 33.74 |
16.71 | 0.29 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 5 | 31 | 01 June 2024 | | 16.94 |
16.8 | 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0
| 0.0 | 17.0 |
+ | 6 | 30 | 01 July 2024 | | 0.0 |
16.94 | 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 |
0.0 | 17.04 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.04 | 0 | 0 | 102.04 | 17.0 | 0
| 0 | 85.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ When Admin sets the business date to "29 February 2024"
+ And Admin does charge-off the loan on "29 February 2024"
+ Then Loan Repayment schedule has 2 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late
| Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 | 0.0
| 0.0 |
+ | 2 | 28 | 29 February 2024 | | 0.0 |
83.59 | 0.44 | 0.0 | 0.0 | 84.03 | 0.0 | 0.0 | 0.0
| 84.03 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100.0 | 1.03 | 0.0 | 0.0 | 101.03 | 17.0 | 0.0
| 0.0 | 84.03 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ | 29 February 2024 | Charge-off | 84.03 | 83.59 | 0.44 |
0.0 | 0.0 | 0.0 | false | false |
+ When Customer undo "1"th repayment on "01 February 2024"
+ Then Loan Repayment schedule has 2 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late
| Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0
| 17.0 |
+ | 2 | 28 | 29 February 2024 | | 0.0 |
83.59 | 0.44 | 0.0 | 0.0 | 84.03 | 0.0 | 0.0 | 0.0
| 84.03 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100.0 | 1.03 | 0.0 | 0.0 | 101.03 | 0.0 | 0.0
| 0.0 | 101.03 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | true | false |
+ | 29 February 2024 | Charge-off | 101.03 | 100.0 | 1.03 |
0.0 | 0.0 | 0.0 | false | true |
+ And Global configuration
"is-principal-compounding-disabled-for-overdue-loans" is disabled
+
+ @TestRailId:C3357 @AdvancedPaymentAllocation
+ Scenario: Verify accelerate maturity to charge-off date when interest
recalculation is disabled - case when backdated repayment occurs after
charge-off
+ Given Global configuration
"is-principal-compounding-disabled-for-overdue-loans" is enabled
+ When Admin sets the business date to "01 January 2024"
+ When Admin creates a client with random data
+ When Admin creates a new accelerate maturity charge-off Loan without
interest recalculation and with date: "1 January 2024"
+ And Admin successfully approves the loan on "01 January 2024" with "100"
amount and expected disbursement date on "01 January 2024"
+ When Admin successfully disburse the loan on "01 January 2024" with "100"
EUR transaction amount
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan | Principal
due | Interest | Fees | Penalties | Due | Paid | In advance | Late |
Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | | 83.59 | 16.41
| 0.59 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 2 | 29 | 01 March 2024 | | 67.05 | 16.54
| 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 3 | 31 | 01 April 2024 | | 50.45 | 16.6
| 0.4 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 4 | 30 | 01 May 2024 | | 33.74 | 16.71
| 0.29 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 5 | 31 | 01 June 2024 | | 16.94 | 16.8
| 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ | 6 | 30 | 01 July 2024 | | 0.0 | 16.94
| 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 | 0.0 | 17.04
|
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.04 | 0 | 0 | 102.04 | 0 | 0
| 0 | 102.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ When Admin sets the business date to "01 February 2024"
+ And Customer makes "AUTOPAY" repayment on "01 February 2024" with 17.00
EUR transaction amount
+ Then Loan Repayment schedule has 6 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance |
Late | Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | |
| |
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 |
0.0 | 0.0 |
+ | 2 | 29 | 01 March 2024 | | 67.05 |
16.54 | 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 3 | 31 | 01 April 2024 | | 50.45 |
16.6 | 0.4 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 4 | 30 | 01 May 2024 | | 33.74 |
16.71 | 0.29 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 |
0.0 | 17.0 |
+ | 5 | 31 | 01 June 2024 | | 16.94 |
16.8 | 0.2 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0
| 0.0 | 17.0 |
+ | 6 | 30 | 01 July 2024 | | 0.0 |
16.94 | 0.1 | 0.0 | 0.0 | 17.04 | 0.0 | 0.0 |
0.0 | 17.04 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.04 | 0 | 0 | 102.04 | 17.0 | 0
| 0 | 85.04 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ When Admin sets the business date to "31 March 2024"
+ And Admin does charge-off the loan on "31 March 2024"
+ Then Loan Repayment schedule has 3 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late
| Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 | 0.0
| 0.0 |
+ | 2 | 29 | 01 March 2024 | | 67.05 |
16.54 | 0.46 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0
| 17.0 |
+ | 3 | 30 | 31 March 2024 | | 0.0 |
67.05 | 0.39 | 0.0 | 0.0 | 67.44 | 0.0 | 0.0 | 0.0
| 67.44 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100.0 | 1.44 | 0.0 | 0.0 | 101.44 | 17.0 | 0.0
| 0.0 | 84.44 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ | 31 March 2024 | Charge-off | 84.44 | 83.59 | 0.85 |
0.0 | 0.0 | 0.0 | false | false |
+# --- Backdated repayment ---
+ And Customer makes "AUTOPAY" repayment on "01 March 2024" with 17.0 EUR
transaction amount
+ Then Loan Repayment schedule has 3 periods, with the following data for
periods:
+ | Nr | Days | Date | Paid date | Balance of loan |
Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late
| Outstanding |
+ | | | 01 January 2024 | | 100.0 |
| | 0.0 | | 0.0 | 0.0 | | |
|
+ | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.59 |
16.41 | 0.59 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 | 0.0
| 0.0 |
+ | 2 | 29 | 01 March 2024 | 01 March 2024 | 67.05 |
16.54 | 0.46 | 0.0 | 0.0 | 17.0 | 17.0 | 0.0 | 0.0
| 0.0 |
+ | 3 | 30 | 31 March 2024 | | 0.0 |
67.05 | 0.39 | 0.0 | 0.0 | 67.44 | 0.0 | 0.0 | 0.0
| 67.44 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100.0 | 1.44 | 0.0 | 0.0 | 101.44 | 34.0 | 0.0
| 0.0 | 67.44 |
+ Then Loan Transactions tab has the following data:
+ | Transaction date | Transaction Type | Amount | Principal | Interest |
Fees | Penalties | Loan Balance | Reverted | Replayed |
+ | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 |
0.0 | 0.0 | 100.0 | false | false |
+ | 01 February 2024 | Repayment | 17.0 | 16.41 | 0.59 |
0.0 | 0.0 | 83.59 | false | false |
+ | 01 March 2024 | Repayment | 17.0 | 16.54 | 0.46 |
0.0 | 0.0 | 67.05 | false | false |
+ | 31 March 2024 | Charge-off | 67.44 | 67.05 | 0.39 |
0.0 | 0.0 | 0.0 | false | true |
+ And Global configuration
"is-principal-compounding-disabled-for-overdue-loans" is disabled
diff --git
a/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java
index a9a70e4b7..57b50552b 100644
---
a/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java
+++
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java
@@ -1220,11 +1220,12 @@ public class
AdvancedPaymentScheduleTransactionProcessor extends AbstractLoanRep
final long totalDaysInPeriod =
ChronoUnit.DAYS.between(currentInstallment.getFromDate(),
currentInstallment.getDueDate());
final long daysTillChargeOff =
ChronoUnit.DAYS.between(currentInstallment.getFromDate(), transactionDate);
- final BigDecimal interestTillChargeOff = totalInterest
- .divide(BigDecimal.valueOf(totalDaysInPeriod),
MoneyHelper.getMathContext())
- .multiply(BigDecimal.valueOf(daysTillChargeOff));
+ final MathContext mc = MoneyHelper.getMathContext();
+ final Money interestTillChargeOff =
Money.of(transactionCtx.getCurrency(),
+
totalInterest.divide(BigDecimal.valueOf(totalDaysInPeriod),
mc).multiply(BigDecimal.valueOf(daysTillChargeOff), mc),
+ mc);
-
currentInstallment.updateInterestCharged(interestTillChargeOff);
+
currentInstallment.updateInterestCharged(interestTillChargeOff.getAmount());
}
currentInstallment.updateDueDate(transactionDate);
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
index 010a8e409..91fc7aaf4 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
@@ -3296,7 +3296,13 @@ public class LoanWritePlatformServiceJpaRepositoryImpl
implements LoanWritePlatf
loanTransactionRepository.saveAndFlush(chargedOffTransaction);
if (loan.isProgressiveSchedule()) {
final ScheduleGeneratorDTO scheduleGeneratorDTO =
this.loanUtilService.buildScheduleGeneratorDTO(loan, null, null);
-
loanScheduleService.regenerateRepaymentScheduleWithInterestRecalculation(loan,
scheduleGeneratorDTO);
+
+ if (loan.isInterestRecalculationEnabled()) {
+
loanScheduleService.regenerateRepaymentScheduleWithInterestRecalculation(loan,
scheduleGeneratorDTO);
+ } else {
+ loanScheduleService.regenerateRepaymentSchedule(loan,
scheduleGeneratorDTO);
+ }
+
ChangedTransactionDetail changedTransactionDetail =
loan.reprocessTransactions();
if (changedTransactionDetail != null) {
for (final Map.Entry<Long, LoanTransaction> mapEntry :
changedTransactionDetail.getNewTransactionMappings().entrySet()) {