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 67e823f926 FINERACT-2354: Second step - charge-off edge case of 
re-aging for Interest bearing loans - Default Behavior, interestRecalculation = 
true, without dueDate change
67e823f926 is described below

commit 67e823f926808ede0ef5faa3b0975b411c1a4f9c
Author: mariiaKraievska <[email protected]>
AuthorDate: Tue Oct 21 10:31:56 2025 +0300

    FINERACT-2354: Second step - charge-off edge case of re-aging for Interest 
bearing loans - Default Behavior, interestRecalculation = true, without dueDate 
change
---
 .../fineract/test/helper/ErrorMessageHelper.java   |   8 +
 .../test/stepdef/loan/LoanReAgingStepDef.java      |  51 ++++
 .../test/resources/features/LoanReAging.feature    | 264 +++++++++++++++++++++
 .../loanproduct/calc/ProgressiveEMICalculator.java |   7 +-
 .../service/reaging/LoanReAgingValidator.java      |  12 +
 5 files changed, 338 insertions(+), 4 deletions(-)

diff --git 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/helper/ErrorMessageHelper.java
 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/helper/ErrorMessageHelper.java
index 5f69aed55b..d86062705e 100644
--- 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/helper/ErrorMessageHelper.java
+++ 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/helper/ErrorMessageHelper.java
@@ -1072,4 +1072,12 @@ public final class ErrorMessageHelper {
                 "Wrong value in 
LoanDetails/availableDisbursementAmountWithOverApplied. %nActual value is: %s 
%nExpected Value is: %s",
                 actual, expected);
     }
+
+    public static String reAgeChargedOffLoanFailure() {
+        return "Loan re-aging is not allowed on charged-off loan.";
+    }
+
+    public static String reAgeContractTerminatedLoanFailure() {
+        return "Loan re-aging is not allowed on contract terminated loan.";
+    }
 }
diff --git 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanReAgingStepDef.java
 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanReAgingStepDef.java
index ff24d6a0eb..ef2774b927 100644
--- 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanReAgingStepDef.java
+++ 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanReAgingStepDef.java
@@ -33,6 +33,8 @@ import org.apache.fineract.client.models.PostLoansResponse;
 import org.apache.fineract.client.services.LoanTransactionsApi;
 import org.apache.fineract.test.factory.LoanRequestFactory;
 import org.apache.fineract.test.helper.ErrorHelper;
+import org.apache.fineract.test.helper.ErrorMessageHelper;
+import org.apache.fineract.test.helper.ErrorResponse;
 import org.apache.fineract.test.messaging.EventAssertion;
 import org.apache.fineract.test.messaging.event.loan.LoanReAgeEvent;
 import org.apache.fineract.test.stepdef.AbstractStepDef;
@@ -146,4 +148,53 @@ public class LoanReAgingStepDef extends AbstractStepDef {
         ErrorHelper.checkFailedApiCall(response, 403);
     }
 
+    @Then("Admin fails to create a Loan re-aging transaction with the 
following data because loan was charged-off:")
+    public void reAgeChargedOffLoanFailure(final DataTable table) throws 
IOException {
+        final Response<PostLoansResponse> loanResponse = 
testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
+        assert loanResponse.body() != null;
+        final long loanId = loanResponse.body().getLoanId();
+
+        final List<String> data = table.asLists().get(1);
+
+        final PostLoansLoanIdTransactionsRequest reAgingRequest = 
LoanRequestFactory//
+                .defaultReAgingRequest()//
+                .frequencyNumber(Integer.parseInt(data.get(0)))//
+                .frequencyType(data.get(1))//
+                .startDate(data.get(2))//
+                .numberOfInstallments(Integer.parseInt(data.get(3)));//
+
+        final Response<PostLoansLoanIdTransactionsResponse> response = 
loanTransactionsApi
+                .executeLoanTransaction(loanId, reAgingRequest, 
"reAge").execute();
+        testContext().set(TestContextKey.LOAN_REAGING_RESPONSE, response);
+        final ErrorResponse errorDetails = ErrorResponse.from(response);
+        final String developerMessage = 
errorDetails.getSingleError().getDeveloperMessage();
+
+        
assertThat(errorDetails.getHttpStatusCode()).as(ErrorMessageHelper.dateFailureErrorCodeMsg()).isEqualTo(403);
+        
assertThat(developerMessage).matches(ErrorMessageHelper.reAgeChargedOffLoanFailure());
+    }
+
+    @Then("Admin fails to create a Loan re-aging transaction with the 
following data because loan was contract terminated:")
+    public void reAgeContractTerminatedLoanFailure(final DataTable table) 
throws IOException {
+        final Response<PostLoansResponse> loanResponse = 
testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
+        assert loanResponse.body() != null;
+        final long loanId = loanResponse.body().getLoanId();
+
+        final List<String> data = table.asLists().get(1);
+
+        final PostLoansLoanIdTransactionsRequest reAgingRequest = 
LoanRequestFactory//
+                .defaultReAgingRequest()//
+                .frequencyNumber(Integer.parseInt(data.get(0)))//
+                .frequencyType(data.get(1))//
+                .startDate(data.get(2))//
+                .numberOfInstallments(Integer.parseInt(data.get(3)));//
+
+        final Response<PostLoansLoanIdTransactionsResponse> response = 
loanTransactionsApi
+                .executeLoanTransaction(loanId, reAgingRequest, 
"reAge").execute();
+        testContext().set(TestContextKey.LOAN_REAGING_RESPONSE, response);
+        final ErrorResponse errorDetails = ErrorResponse.from(response);
+        final String developerMessage = 
errorDetails.getSingleError().getDeveloperMessage();
+
+        
assertThat(errorDetails.getHttpStatusCode()).as(ErrorMessageHelper.dateFailureErrorCodeMsg()).isEqualTo(403);
+        
assertThat(developerMessage).matches(ErrorMessageHelper.reAgeContractTerminatedLoanFailure());
+    }
 }
diff --git 
a/fineract-e2e-tests-runner/src/test/resources/features/LoanReAging.feature 
b/fineract-e2e-tests-runner/src/test/resources/features/LoanReAging.feature
index 8585adb3e1..2ae0780d04 100644
--- a/fineract-e2e-tests-runner/src/test/resources/features/LoanReAging.feature
+++ b/fineract-e2e-tests-runner/src/test/resources/features/LoanReAging.feature
@@ -4059,6 +4059,270 @@ Feature: LoanReAging
       | 01 February 2024 | Repayment        | 17.01  | 16.43     | 0.58     | 
0.0  | 0.0       | 83.57        | false    |
       | 15 March 2024    | Re-age           | 84.28  | 83.57     | 0.71     | 
0.0  | 0.0       | 0.0          | true     |
 
+  @TestRailId:C4089 @AdvancedPaymentAllocation
+  Scenario: Verify that Re-aging is forbidden on charged-off loan, interest 
bearing loan, Interest calculation: Default Behavior, Charge-off scenario (zero 
interest) - UC10
+    When Admin sets the business date to "01 January 2024"
+    When Admin creates a client with random data
+    When Admin set 
"LP2_ADV_CUSTOM_PMT_ALLOC_PROGRESSIVE_LOAN_SCHEDULE_HORIZONTAL" loan product 
"DEFAULT" transaction type to "NEXT_INSTALLMENT" future installment allocation 
rule
+    When Admin creates a fully customized loan with the following data:
+      | LoanProduct                                                            
      | submitted on date | with Principal | ANNUAL interest rate % | interest 
type     | interest calculation period | amortization type  | loanTermFrequency 
| loanTermFrequencyType | repaymentEvery | repaymentFrequencyType | 
numberOfRepayments | graceOnPrincipalPayment | graceOnInterestPayment | 
interest free period | Payment strategy            |
+      | 
LP2_ADV_PYMNT_INTEREST_DAILY_INTEREST_RECALCULATION_ZERO_INTEREST_CHARGE_OFF | 
01 January 2024   | 100            | 7                       | 
DECLINING_BALANCE | DAILY                       | EQUAL_INSTALLMENTS | 6        
         | MONTHS                | 1              | MONTHS                 | 6  
                | 0                       | 0                      | 0          
          | ADVANCED_PAYMENT_ALLOCATION |
+    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.57           | 16.43      
   | 0.58     | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 2  | 29   | 01 March 2024   |           | 67.05           | 16.52      
   | 0.49     | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 3  | 31   | 01 April 2024   |           | 50.43           | 16.62      
   | 0.39     | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 4  | 30   | 01 May 2024     |           | 33.71           | 16.72      
   | 0.29     | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 5  | 31   | 01 June 2024    |           | 16.9            | 16.81      
   | 0.2      | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 6  | 30   | 01 July 2024    |           | 0.0             | 16.9       
   | 0.1      | 0.0  | 0.0       | 17.0  | 0.0  | 0.0        | 0.0  | 17.0      
  |
+    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.05     | 0.0  | 0.0       | 102.05 | 0.0  | 0.0      
  | 0.0  | 102.05      |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted |
+      | 01 January 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    |
+    When Admin sets the business date to "01 February 2024"
+    And Customer makes "AUTOPAY" repayment on "01 February 2024" with 17.01 
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.57           | 
16.43         | 0.58     | 0.0  | 0.0       | 17.01 | 17.01 | 0.0        | 0.0  
| 0.0         |
+      | 2  | 29   | 01 March 2024   |                  | 67.05           | 
16.52         | 0.49     | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 3  | 31   | 01 April 2024   |                  | 50.43           | 
16.62         | 0.39     | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 4  | 30   | 01 May 2024     |                  | 33.71           | 
16.72         | 0.29     | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 5  | 31   | 01 June 2024    |                  | 16.9            | 
16.81         | 0.2      | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 6  | 30   | 01 July 2024    |                  | 0.0             | 
16.9          | 0.1      | 0.0  | 0.0       | 17.0  | 0.0   | 0.0        | 0.0  
| 17.0        |
+    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.05     | 0.0  | 0.0       | 102.05 | 17.01 | 0.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 |
+      | 01 January 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    |
+      | 01 February 2024 | Repayment        | 17.01  | 16.43     | 0.58     | 
0.0  | 0.0       | 83.57        | false    |
+    When Admin sets the business date to "01 March 2024"
+    And Admin does charge-off the loan on "01 March 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.57           | 
16.43         | 0.58     | 0.0  | 0.0       | 17.01 | 17.01 | 0.0        | 0.0  
| 0.0         |
+      | 2  | 29   | 01 March 2024   |                  | 67.05           | 
16.52         | 0.49     | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 3  | 31   | 01 April 2024   |                  | 50.04           | 
17.01         | 0.0      | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 4  | 30   | 01 May 2024     |                  | 33.03           | 
17.01         | 0.0      | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 5  | 31   | 01 June 2024    |                  | 16.02           | 
17.01         | 0.0      | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 6  | 30   | 01 July 2024    |                  | 0.0             | 
16.02         | 0.0      | 0.0  | 0.0       | 16.02 | 0.0   | 0.0        | 0.0  
| 16.02       |
+    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.07     | 0.0  | 0.0       | 101.07 | 17.01 | 0.0     
   | 0.0  | 84.06       |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted |
+      | 01 January 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    |
+      | 01 February 2024 | Repayment        | 17.01  | 16.43     | 0.58     | 
0.0  | 0.0       | 83.57        | false    |
+      | 01 March 2024    | Accrual          | 1.07   | 0.0       | 1.07     | 
0.0  | 0.0       | 0.0          | false    |
+      | 01 March 2024    | Charge-off       | 84.06  | 83.57     | 0.49     | 
0.0  | 0.0       | 0.0          | false    |
+    When Admin sets the business date to "15 March 2024"
+    Then Admin fails to create a Loan re-aging transaction with the following 
data because loan was charged-off:
+      | frequencyNumber | frequencyType | startDate     | numberOfInstallments 
|
+      | 1               | MONTHS        | 01 April 2024 | 6                    
|
+
+  @TestRailId:C4131 @AdvancedPaymentAllocation
+  Scenario: Verify that Re-aging is forbidden on charged-off loan, interest 
bearing loan, Interest calculation: Default Behavior, Charge-off scenario 
(regular) - UC10.1
+    When Admin sets the business date to "01 January 2024"
+    When Admin creates a client with random data
+    When Admin set 
"LP2_ADV_CUSTOM_PMT_ALLOC_PROGRESSIVE_LOAN_SCHEDULE_HORIZONTAL" loan product 
"DEFAULT" transaction type to "NEXT_INSTALLMENT" future installment allocation 
rule
+    When Admin creates a fully customized loan with the following data:
+      | LoanProduct                                                   | 
submitted on date | with Principal | ANNUAL interest rate % | interest type     
| interest calculation period | amortization type  | loanTermFrequency | 
loanTermFrequencyType | repaymentEvery | repaymentFrequencyType | 
numberOfRepayments | graceOnPrincipalPayment | graceOnInterestPayment | 
interest free period | Payment strategy            |
+      | LP2_ADV_CUSTOM_PMT_ALLOC_PROGRESSIVE_LOAN_SCHEDULE_HORIZONTAL | 01 
January 2024   | 100            | 7                       | DECLINING_BALANCE | 
DAILY                       | EQUAL_INSTALLMENTS | 6                 | MONTHS   
             | 1              | MONTHS                 | 6                  | 0 
                      | 0                      | 0                    | 
ADVANCED_PAYMENT_ALLOCATION |
+    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.57           | 16.43      
   | 0.58     | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 2  | 29   | 01 March 2024   |           | 67.05           | 16.52      
   | 0.49     | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 3  | 31   | 01 April 2024   |           | 50.43           | 16.62      
   | 0.39     | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 4  | 30   | 01 May 2024     |           | 33.71           | 16.72      
   | 0.29     | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 5  | 31   | 01 June 2024    |           | 16.9            | 16.81      
   | 0.2      | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 6  | 30   | 01 July 2024    |           | 0.0             | 16.9       
   | 0.1      | 0.0  | 0.0       | 17.0  | 0.0  | 0.0        | 0.0  | 17.0      
  |
+    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.05     | 0.0  | 0.0       | 102.05 | 0.0  | 0.0      
  | 0.0  | 102.05      |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted |
+      | 01 January 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    |
+    When Admin sets the business date to "01 February 2024"
+    And Customer makes "AUTOPAY" repayment on "01 February 2024" with 17.01 
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.57           | 
16.43         | 0.58     | 0.0  | 0.0       | 17.01 | 17.01 | 0.0        | 0.0  
| 0.0         |
+      | 2  | 29   | 01 March 2024   |                  | 67.05           | 
16.52         | 0.49     | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 3  | 31   | 01 April 2024   |                  | 50.43           | 
16.62         | 0.39     | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 4  | 30   | 01 May 2024     |                  | 33.71           | 
16.72         | 0.29     | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 5  | 31   | 01 June 2024    |                  | 16.9            | 
16.81         | 0.2      | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 6  | 30   | 01 July 2024    |                  | 0.0             | 
16.9          | 0.1      | 0.0  | 0.0       | 17.0  | 0.0   | 0.0        | 0.0  
| 17.0        |
+    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.05     | 0.0  | 0.0       | 102.05 | 17.01 | 0.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 |
+      | 01 January 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    |
+      | 01 February 2024 | Repayment        | 17.01  | 16.43     | 0.58     | 
0.0  | 0.0       | 83.57        | false    |
+    When Admin sets the business date to "01 March 2024"
+    And Admin does charge-off the loan on "01 March 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.57           | 
16.43         | 0.58     | 0.0  | 0.0       | 17.01 | 17.01 | 0.0        | 0.0  
| 0.0         |
+      | 2  | 29   | 01 March 2024   |                  | 67.05           | 
16.52         | 0.49     | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 3  | 31   | 01 April 2024   |                  | 50.43           | 
16.62         | 0.39     | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 4  | 30   | 01 May 2024     |                  | 33.71           | 
16.72         | 0.29     | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 5  | 31   | 01 June 2024    |                  | 16.9            | 
16.81         | 0.2      | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 6  | 30   | 01 July 2024    |                  | 0.0             | 
16.9          | 0.1      | 0.0  | 0.0       | 17.0  | 0.0   | 0.0        | 0.0  
| 17.0        |
+    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.05     | 0.0  | 0.0       | 102.05 | 17.01 | 0.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 |
+      | 01 January 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    |
+      | 01 February 2024 | Repayment        | 17.01  | 16.43     | 0.58     | 
0.0  | 0.0       | 83.57        | false    |
+      | 01 March 2024    | Accrual          | 1.07   | 0.0       | 1.07     | 
0.0  | 0.0       | 0.0          | false    |
+      | 01 March 2024    | Charge-off       | 85.04  | 83.57     | 1.47     | 
0.0  | 0.0       | 0.0          | false    |
+    When Admin sets the business date to "15 March 2024"
+    Then Admin fails to create a Loan re-aging transaction with the following 
data because loan was charged-off:
+      | frequencyNumber | frequencyType | startDate     | numberOfInstallments 
|
+      | 1               | MONTHS        | 01 April 2024 | 6                    
|
+
+  @TestRailId:C4132 @AdvancedPaymentAllocation
+  Scenario: Verify that Re-aging is forbidden on contract terminated loan, 
interest bearing loan, Interest calculation: Default Behavior - UC10.2
+    When Admin sets the business date to "01 January 2024"
+    When Admin creates a client with random data
+    When Admin set 
"LP2_ADV_CUSTOM_PMT_ALLOC_PROGRESSIVE_LOAN_SCHEDULE_HORIZONTAL" loan product 
"DEFAULT" transaction type to "NEXT_INSTALLMENT" future installment allocation 
rule
+    When Admin creates a fully customized loan with the following data:
+      | LoanProduct                                                            
  | submitted on date | with Principal | ANNUAL interest rate % | interest type 
    | interest calculation period | amortization type  | loanTermFrequency | 
loanTermFrequencyType | repaymentEvery | repaymentFrequencyType | 
numberOfRepayments | graceOnPrincipalPayment | graceOnInterestPayment | 
interest free period | Payment strategy            |
+      | 
LP2_ADV_PYMNT_INTEREST_DAILY_INTEREST_RECALCULATION_CONTRACT_TERMINATION | 01 
January 2024   | 100            | 7                       | DECLINING_BALANCE | 
DAILY                       | EQUAL_INSTALLMENTS | 6                 | MONTHS   
             | 1              | MONTHS                 | 6                  | 0 
                      | 0                      | 0                    | 
ADVANCED_PAYMENT_ALLOCATION |
+    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.57           | 16.43      
   | 0.58     | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 2  | 29   | 01 March 2024   |           | 67.05           | 16.52      
   | 0.49     | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 3  | 31   | 01 April 2024   |           | 50.43           | 16.62      
   | 0.39     | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 4  | 30   | 01 May 2024     |           | 33.71           | 16.72      
   | 0.29     | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 5  | 31   | 01 June 2024    |           | 16.9            | 16.81      
   | 0.2      | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 6  | 30   | 01 July 2024    |           | 0.0             | 16.9       
   | 0.1      | 0.0  | 0.0       | 17.0  | 0.0  | 0.0        | 0.0  | 17.0      
  |
+    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.05     | 0.0  | 0.0       | 102.05 | 0.0  | 0.0      
  | 0.0  | 102.05      |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted |
+      | 01 January 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    |
+    When Admin sets the business date to "01 February 2024"
+    And Customer makes "AUTOPAY" repayment on "01 February 2024" with 17.01 
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.57           | 
16.43         | 0.58     | 0.0  | 0.0       | 17.01 | 17.01 | 0.0        | 0.0  
| 0.0         |
+      | 2  | 29   | 01 March 2024   |                  | 67.05           | 
16.52         | 0.49     | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 3  | 31   | 01 April 2024   |                  | 50.43           | 
16.62         | 0.39     | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 4  | 30   | 01 May 2024     |                  | 33.71           | 
16.72         | 0.29     | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 5  | 31   | 01 June 2024    |                  | 16.9            | 
16.81         | 0.2      | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 6  | 30   | 01 July 2024    |                  | 0.0             | 
16.9          | 0.1      | 0.0  | 0.0       | 17.0  | 0.0   | 0.0        | 0.0  
| 17.0        |
+    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.05     | 0.0  | 0.0       | 102.05 | 17.01 | 0.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 |
+      | 01 January 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    |
+      | 01 February 2024 | Repayment        | 17.01  | 16.43     | 0.58     | 
0.0  | 0.0       | 83.57        | false    |
+    When Admin sets the business date to "1 March 2024"
+    And Admin successfully terminates loan contract
+    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.57           | 
16.43         | 0.58     | 0.0  | 0.0       | 17.01 | 17.01 | 0.0        | 0.0  
| 0.0         |
+      | 2  | 29   | 01 March 2024    |                  | 0.0             | 
83.57         | 0.49     | 0.0  | 0.0       | 84.06 | 0.0   | 0.0        | 0.0  
| 84.06       |
+    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.07     | 0.0  | 0.0       | 101.07 | 17.01 | 0.0     
   | 0.0  | 84.06       |
+    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.01  | 16.43     | 0.58    
 | 0.0  | 0.0       | 83.57        | false    | false    |
+      | 01 March 2024    | Accrual              | 1.07   | 0.0       | 1.07    
 | 0.0  | 0.0       | 0.0          | false    | false    |
+      | 01 March 2024    | Contract Termination | 84.06  | 83.57     | 0.49    
 | 0.0  | 0.0       | 0.0          | false    | false    |
+    When Admin sets the business date to "15 April 2024"
+    Then Admin fails to create a Loan re-aging transaction with the following 
data because loan was contract terminated:
+      | frequencyNumber | frequencyType | startDate   | numberOfInstallments |
+      | 1               | MONTHS        | 01 May 2024 | 6                    |
+
+  @TestRailId:C4090 @AdvancedPaymentAllocation
+  Scenario: Verify that Re-aging is forbidden on charged-off loan, interest 
bearing loan, Interest calculation: Default Behavior, Charge-off scenario 
(accelerate maturity) - UC11
+    When Admin sets the business date to "01 January 2024"
+    When Admin creates a client with random data
+    When Admin set 
"LP2_ADV_CUSTOM_PMT_ALLOC_PROGRESSIVE_LOAN_SCHEDULE_HORIZONTAL" loan product 
"DEFAULT" transaction type to "NEXT_INSTALLMENT" future installment allocation 
rule
+    When Admin creates a fully customized loan with the following data:
+      | LoanProduct                                                            
                      | submitted on date | with Principal | ANNUAL interest 
rate % | interest type     | interest calculation period | amortization type  | 
loanTermFrequency | loanTermFrequencyType | repaymentEvery | 
repaymentFrequencyType | numberOfRepayments | graceOnPrincipalPayment | 
graceOnInterestPayment | interest free period | Payment strategy            |
+      | 
LP2_ADV_PYMNT_INTEREST_DAILY_INTEREST_RECALCULATION_ACCELERATE_MATURITY_CHARGE_OFF_BEHAVIOUR
 | 01 January 2024   | 100            | 7                       | 
DECLINING_BALANCE | DAILY                       | EQUAL_INSTALLMENTS | 6        
         | MONTHS                | 1              | MONTHS                 | 6  
                | 0                       | 0                      | 0          
          | ADVANCED_PAYMENT_ALLOCATION |
+    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.57           | 16.43      
   | 0.58     | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 2  | 29   | 01 March 2024   |           | 67.05           | 16.52      
   | 0.49     | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 3  | 31   | 01 April 2024   |           | 50.43           | 16.62      
   | 0.39     | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 4  | 30   | 01 May 2024     |           | 33.71           | 16.72      
   | 0.29     | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 5  | 31   | 01 June 2024    |           | 16.9            | 16.81      
   | 0.2      | 0.0  | 0.0       | 17.01 | 0.0  | 0.0        | 0.0  | 17.01     
  |
+      | 6  | 30   | 01 July 2024    |           | 0.0             | 16.9       
   | 0.1      | 0.0  | 0.0       | 17.0  | 0.0  | 0.0        | 0.0  | 17.0      
  |
+    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.05     | 0.0  | 0.0       | 102.05 | 0.0  | 0.0      
  | 0.0  | 102.05      |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted |
+      | 01 January 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    |
+    When Admin sets the business date to "01 February 2024"
+    And Customer makes "AUTOPAY" repayment on "01 February 2024" with 17.01 
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.57           | 
16.43         | 0.58     | 0.0  | 0.0       | 17.01 | 17.01 | 0.0        | 0.0  
| 0.0         |
+      | 2  | 29   | 01 March 2024   |                  | 67.05           | 
16.52         | 0.49     | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 3  | 31   | 01 April 2024   |                  | 50.43           | 
16.62         | 0.39     | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 4  | 30   | 01 May 2024     |                  | 33.71           | 
16.72         | 0.29     | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 5  | 31   | 01 June 2024    |                  | 16.9            | 
16.81         | 0.2      | 0.0  | 0.0       | 17.01 | 0.0   | 0.0        | 0.0  
| 17.01       |
+      | 6  | 30   | 01 July 2024    |                  | 0.0             | 
16.9          | 0.1      | 0.0  | 0.0       | 17.0  | 0.0   | 0.0        | 0.0  
| 17.0        |
+    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.05     | 0.0  | 0.0       | 102.05 | 17.01 | 0.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 |
+      | 01 January 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    |
+      | 01 February 2024 | Repayment        | 17.01  | 16.43     | 0.58     | 
0.0  | 0.0       | 83.57        | false    |
+    When Admin sets the business date to "01 March 2024"
+    And Admin does charge-off the loan on "01 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.57           | 
16.43         | 0.58     | 0.0  | 0.0       | 17.01 | 17.01 | 0.0        | 0.0  
| 0.0         |
+      | 2  | 29   | 01 March 2024   |                  | 0.0             | 
83.57         | 0.49     | 0.0  | 0.0       | 84.06 | 0.0   | 0.0        | 0.0  
| 84.06       |
+    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.07     | 0.0  | 0.0       | 101.07 | 17.01 | 0.0     
   | 0.0  | 84.06       |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted |
+      | 01 January 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    |
+      | 01 February 2024 | Repayment        | 17.01  | 16.43     | 0.58     | 
0.0  | 0.0       | 83.57        | false    |
+      | 01 March 2024    | Accrual          | 1.07   | 0.0       | 1.07     | 
0.0  | 0.0       | 0.0          | false    |
+      | 01 March 2024    | Charge-off       | 84.06  | 83.57     | 0.49     | 
0.0  | 0.0       | 0.0          | false    |
+    When Admin sets the business date to "15 March 2024"
+    Then Admin fails to create a Loan re-aging transaction with the following 
data because loan was charged-off:
+      | frequencyNumber | frequencyType | startDate     | numberOfInstallments 
|
+      | 1               | MONTHS        | 01 April 2024 | 6                    
|
+
   @TestRailId:C4091 @AdvancedPaymentAllocation
   Scenario: Verify allowing Re-aging on interest bearing loan - Interest 
calculation: Default Behavior - Fees and Interest Split after re-aging - UC12
     When Admin sets the business date to "01 January 2024"
diff --git 
a/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/calc/ProgressiveEMICalculator.java
 
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/calc/ProgressiveEMICalculator.java
index b5900db715..5da7a6fa76 100644
--- 
a/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/calc/ProgressiveEMICalculator.java
+++ 
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/calc/ProgressiveEMICalculator.java
@@ -571,7 +571,6 @@ public final class ProgressiveEMICalculator implements 
EMICalculator {
             final LoanTransaction loanTransaction, final LoanApplicationTerms 
loanApplicationTerms, final MathContext mc) {
         final LoanReAgeParameter loanReAgeParameter = 
loanTransaction.getLoanReAgeParameter();
         final LocalDate reAgingStartDate = loanReAgeParameter.getStartDate();
-        final LocalDate transactionDate = loanTransaction.getTransactionDate();
         final List<RepaymentPeriod> existingRepaymentPeriods = 
scheduleModel.repaymentPeriods();
 
         
moveOutstandingAmountsFromPeriodsBeforeReAging(existingRepaymentPeriods, 
reAgingStartDate);
@@ -579,7 +578,7 @@ public final class ProgressiveEMICalculator implements 
EMICalculator {
         final LocalDate periodStartDate = 
calculateFirstReAgedPeriodStartDate(loanReAgeParameter);
 
         final ProgressiveLoanInterestScheduleModel 
temporaryReAgedScheduleModel = 
generateTemporaryReAgedScheduleModel(loanApplicationTerms,
-                mc, periodStartDate, transactionDate);
+                mc, periodStartDate);
 
         mergeNewInterestScheduleModelWithExistingOne(scheduleModel, 
temporaryReAgedScheduleModel, loanTransaction);
     }
@@ -644,14 +643,14 @@ public final class ProgressiveEMICalculator implements 
EMICalculator {
      */
     @NotNull
     private ProgressiveLoanInterestScheduleModel 
generateTemporaryReAgedScheduleModel(final LoanApplicationTerms 
loanApplicationTerms,
-            final MathContext mc, final LocalDate periodStartDate, final 
LocalDate transactionDate) {
+            final MathContext mc, final LocalDate periodStartDate) {
         final List<LoanScheduleModelRepaymentPeriod> expectedRepaymentPeriods 
= scheduledDateGenerator.generateRepaymentPeriods(mc,
                 periodStartDate, loanApplicationTerms, null);
         final ProgressiveLoanInterestScheduleModel 
temporaryReAgedScheduleModel = generatePeriodInterestScheduleModel(
                 expectedRepaymentPeriods, 
loanApplicationTerms.toLoanProductRelatedDetailMinimumData(), null,
                 loanApplicationTerms.getInstallmentAmountInMultiplesOf(), mc);
 
-        addDisbursement(temporaryReAgedScheduleModel, 
EmiChangeOperation.disburse(transactionDate, 
loanApplicationTerms.getPrincipal()));
+        addDisbursement(temporaryReAgedScheduleModel, 
EmiChangeOperation.disburse(periodStartDate, 
loanApplicationTerms.getPrincipal()));
         return temporaryReAgedScheduleModel;
     }
 
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/reaging/LoanReAgingValidator.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/reaging/LoanReAgingValidator.java
index 4d9f75142f..a4797adb1e 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/reaging/LoanReAgingValidator.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/reaging/LoanReAgingValidator.java
@@ -132,6 +132,18 @@ public class LoanReAgingValidator {
             throw new 
GeneralPlatformDomainRuleException("error.msg.loan.reage.reage.transaction.already.present.for.today",
                     "Loan reaging can only be done once a day. There has 
already been a reaging done for today", loan.getId());
         }
+
+        // validate loan is not charged-off
+        if (loan.isChargedOff()) {
+            throw new 
GeneralPlatformDomainRuleException("error.msg.loan.reage.not.allowed.on.charged.off",
+                    "Loan re-aging is not allowed on charged-off loan.", 
loan.getId());
+        }
+
+        // validate loan is not contract terminated
+        if (loan.isContractTermination()) {
+            throw new 
GeneralPlatformDomainRuleException("error.msg.loan.reage.not.allowed.on.contract.terminated",
+                    "Loan re-aging is not allowed on contract terminated 
loan.", loan.getId());
+        }
     }
 
     public void validateUndoReAge(Loan loan, JsonCommand command) {


Reply via email to