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()) {

Reply via email to